From e4825da8f3e492a8e6ad562935ed7795891ae4e4 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Mon, 3 Aug 2020 21:38:43 +0800 Subject: [PATCH 001/651] Cleanup and safely update dependencies Clearly it is not the best practice to leave thousands of security vulnerabilities in the wild, especially when there are two "critical" ones with "Remote Arbitrary Code Execution" capability. This change updates dependencies safely and fixes all vulnerabilities above "low" severity. test.js and its dependencies are removed as there is no test and it seems that there will never be one. It can be added back later if tests *are* implemented. All functions in "npm run" are tested. At the first glance, there is no issue. Signed-off-by: Jesse Chan --- .eslintrc.js | 10 + client/scripts/test.js | 28 - client/scripts/typed-css-modules-loader.js | 2 +- package-lock.json | 22686 ++++++++----------- package.json | 94 +- 5 files changed, 9423 insertions(+), 13397 deletions(-) delete mode 100644 client/scripts/test.js diff --git a/.eslintrc.js b/.eslintrc.js index 3d49eef6b..7aea9c87f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,6 +7,16 @@ module.exports = { 'class-methods-use-this': 0, 'consistent-return': 0, 'implicit-arrow-linebreak': 0, + 'import/extensions': [ + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } + ], 'import/no-extraneous-dependencies': 0, 'import/prefer-default-export': 0, 'max-len': [ diff --git a/client/scripts/test.js b/client/scripts/test.js deleted file mode 100644 index 91d8551e7..000000000 --- a/client/scripts/test.js +++ /dev/null @@ -1,28 +0,0 @@ -console.log('There are no tests yet.'); -process.exit(0); - -// Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'test'; -process.env.NODE_ENV = 'test'; -process.env.BASE_URI = ''; - -// Makes the script crash on unhandled rejections instead of silently -// ignoring them. In the future, promise rejections that are not handled will -// terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { - throw err; -}); - -// Ensure environment variables are read. -require('../config/env'); - -const jest = require('jest'); - -const argv = process.argv.slice(2); - -// Watch unless on CI or in coverage mode -if (!process.env.CI && argv.indexOf('--coverage') < 0) { - argv.push('--watch'); -} - -jest.run(argv); diff --git a/client/scripts/typed-css-modules-loader.js b/client/scripts/typed-css-modules-loader.js index 08e216e0d..73494ed77 100644 --- a/client/scripts/typed-css-modules-loader.js +++ b/client/scripts/typed-css-modules-loader.js @@ -1,5 +1,5 @@ const chalk = require('chalk'); -const DtsCreator = require('typed-css-modules'); +const DtsCreator = require('typed-css-modules').default; const prettier = require('../../scripts/prettier'); const creator = new DtsCreator(); diff --git a/package-lock.json b/package-lock.json index 2d6722df4..9b69dccab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,111 +12,55 @@ "@babel/highlight": "^7.0.0" } }, + "@babel/compat-data": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", + "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.0.tgz", + "integrity": "sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/highlight": "^7.10.4" } }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "convert-source-map": { @@ -138,1055 +82,254 @@ } }, "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", "requires": { - "@babel/types": "^7.4.4", + "@babel/types": "^7.11.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-builder-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", - "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", "requires": { - "@babel/types": "^7.7.4", - "esutils": "^2.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", + "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", - "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", "requires": { - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.11.0" } }, "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-module-transforms": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", - "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", "requires": { - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", + "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "requires": { + "@babel/types": "^7.11.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.11.0" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", - "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/highlight": { @@ -1200,667 +343,699 @@ } }, "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==" + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.0.tgz", + "integrity": "sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", - "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==", - "dev": true, + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", + "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", + "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", + "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-typescript": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.7.4.tgz", - "integrity": "sha512-77blgY18Hud4NM1ggTA8xVT/dBENQf17OpiToSa2jSmEY3fWXD2jwrdVlO4kq5yzUTeF15WSQ6b4fByNvJcjpQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz", + "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", - "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", - "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.10.4" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - }, - "dependencies": { - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", - "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", - "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", "requires": { - "@babel/helper-builder-react-jsx": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", - "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", - "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", + "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", - "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", + "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typescript": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.7.4.tgz", - "integrity": "sha512-X8e3tcPEKnwwPVG+vP/vSqEShkwODOEeyQGod82qrIuidwIrfnsGn11qPM1jBLF4MqguTXXYzm58d0dY+/wdpg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz", + "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-typescript": "^7.7.4" + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/preset-env": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", - "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.4", - "@babel/plugin-transform-modules-commonjs": "^7.7.4", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.4", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.1", "semver": "^5.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } } }, - "@babel/preset-react": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", - "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==", + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.7.4", - "@babel/plugin-transform-react-jsx": "^7.7.4", - "@babel/plugin-transform-react-jsx-self": "^7.7.4", - "@babel/plugin-transform-react-jsx-source": "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" } }, "@babel/preset-typescript": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.7.4.tgz", - "integrity": "sha512-rqrjxfdiHPsnuPur0jKrIIGQCIgoTWMTjlbWE69G4QJ6TIOVnnRnIJhUxNTL/VwDmEAVX08Tq3B1nirer5341w==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz", + "integrity": "sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.10.4" } }, "@babel/runtime": { @@ -1878,33 +1053,89 @@ } } }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "@babel/runtime-corejs3": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.0.tgz", + "integrity": "sha512-K0ioacsw8JgzDSPpUiGWokMvLzGvnZPXLrTsJfyHPrFsnp4yoKn+Ap/8NNZgWKZG9o5+qotH8tAa8AXn8gTN5A==", + "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } } }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "debug": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", @@ -1915,12 +1146,12 @@ } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1948,25 +1179,37 @@ "safe-buffer": "^5.1.2" } }, - "@types/babel-types": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true }, - "@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, "requires": { - "@types/babel-types": "*" + "defer-to-connect": "^1.0.1" } }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" + }, "@types/classnames": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.9.tgz", - "integrity": "sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A==", + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz", + "integrity": "sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==", "dev": true }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, "@types/css-modules-loader-core": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@types/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", @@ -1976,9 +1219,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -2003,21 +1246,15 @@ "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", "dev": true }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } @@ -2028,15 +1265,20 @@ "integrity": "sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==", "dev": true }, + "@types/html-minifier-terser": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz", + "integrity": "sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==" + }, "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==" + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" }, - "@types/keymirror": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@types/keymirror/-/keymirror-0.1.1.tgz", - "integrity": "sha1-H+SObl4qlpyv7PDyRIWuI8cqvTA=", + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/minimatch": { @@ -2046,10 +1288,9 @@ "dev": true }, "@types/node": { - "version": "11.15.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.2.tgz", - "integrity": "sha512-BqCU9uIFkUH9Sgo2uLYbmIiFB1T+VBiM8AI/El3LIAI5KzwtckeSG+3WOYZr9aMoX4UIvRFBWBeSaOu6hFue2Q==", - "dev": true + "version": "11.15.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.20.tgz", + "integrity": "sha512-DY2QwdrBqNlsxdMehwzUtSsWHgYYPLVCAuXvOcu3wkzYmchbRunQ7OEZFOrmFoBLfA1ysz2Ypr6vtNP9WQkUaQ==" }, "@types/prop-types": { "version": "15.7.3", @@ -2057,18 +1298,18 @@ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" }, "@types/react": { - "version": "16.9.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.13.tgz", - "integrity": "sha512-LikzRslbiufJYHyzbHSW0GrAiff8QYLMBFeZmSxzCYGXKxi8m/1PHX+rsVOwhr7mJNq+VIu2Dhf7U6mjFERK6w==", + "version": "16.9.44", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.44.tgz", + "integrity": "sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ==", "requires": { "@types/prop-types": "*", - "csstype": "^2.2.0" + "csstype": "^3.0.2" } }, "@types/react-dom": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", - "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", + "version": "16.9.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", + "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", "requires": { "@types/react": "*" } @@ -2099,13 +1340,66 @@ "@types/react-router": "*" } }, - "@types/react-transition-group": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.2.tgz", - "integrity": "sha512-5Fv2DQNO+GpdPZcxp2x/OQG/H19A01WlmpjVD9cKvVFmoVLOZ9LvBgSWG6pSXIU4og5fgbvGPaCV5+VGkWAEHA==", - "dev": true, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" + }, + "@types/uglify-js": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz", + "integrity": "sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==", "requires": { - "@types/react": "*" + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@types/webpack": { + "version": "4.41.21", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz", + "integrity": "sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==", + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@types/webpack-sources": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz", + "integrity": "sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==", + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } } }, "@typescript-eslint/eslint-plugin": { @@ -2125,6 +1419,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "dev": true, "requires": { "@types/json-schema": "^7.0.3", "@typescript-eslint/typescript-estree": "1.13.0", @@ -2135,6 +1430,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz", "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", + "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", "@typescript-eslint/experimental-utils": "1.13.0", @@ -2146,6 +1442,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, "requires": { "lodash.unescape": "4.0.1", "semver": "5.5.0" @@ -2154,183 +1451,183 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true } } }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, @@ -2346,12 +1643,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", - "dev": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2367,35 +1658,15 @@ } }, "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "add-px-to-style": { @@ -2423,41 +1694,32 @@ "ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true }, "ajv-keywords": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==" }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "is-fullwidth-code-point": { @@ -2467,22 +1729,23 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } @@ -2785,9 +2048,9 @@ "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "micromatch": { @@ -2824,15 +2087,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" - } - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -2866,38 +2120,42 @@ } }, "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-find": { @@ -2917,13 +2175,67 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "array-union": { @@ -2941,64 +2253,185 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "dev": true, "requires": { - "util": "0.10.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" }, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "inherits": "2.0.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "array.prototype.flatmap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", + "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" } } } @@ -3011,7 +2444,8 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, "ast-types-flow": { "version": "0.0.7", @@ -3036,7 +2470,8 @@ "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true }, "async-foreach": { "version": "0.1.3", @@ -3057,7 +2492,8 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, "attr-accept": { "version": "1.1.3", @@ -3104,55 +2540,29 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "axe-core": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", + "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", + "dev": true }, "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - } - }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "follow-redirects": "1.5.10" } }, "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true }, "babel-code-frame": { "version": "6.26.0", @@ -3198,349 +2608,114 @@ } } }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "babel-eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", - "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", "eslint-visitor-keys": "^1.0.0", "resolve": "^1.12.0" }, "dependencies": { "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { "path-parse": "^1.0.6" } } } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-jest": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.3.tgz", - "integrity": "sha512-BgSjmtl3mW3i+VeVHEr9d2zFSAT66G++pJcHQiUjd00pkW+voYXFctIm/indcqOWWXw5a1nUpR1XWszD9fJ1qg==", - "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.1.5", - "babel-preset-jest": "^22.4.3" - } - }, "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", - "dev": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { - "locate-path": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "minimist": "^1.2.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { - "p-try": "^1.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "requires": { - "p-limit": "^1.1.0" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true } } }, - "babel-plugin-jest-hoist": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.4.tgz", - "integrity": "sha512-DUvGfYaAIlkdnygVIEl0O4Av69NtuQWcrjMOv6DODPuhuGLDnbsARz3AwiiI/EkIMMlxQDUcrZ9yoyJvTNjcVQ==", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-preset-jest": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.4.tgz", - "integrity": "sha512-+dxMtOFwnSYWfum0NaEc0O03oSdwBsjx4tMSChRDPGwu/4wSY6Q6ANW3wkjKpJzzguaovRs/DODcT4hbSN8yiA==", - "dev": true, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "requires": { - "babel-plugin-jest-hoist": "^22.4.4", - "babel-plugin-syntax-object-rest-spread": "^6.13.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==", - "dev": true - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - } + "object.assign": "^4.1.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, "bail": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", - "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" }, "balanced-match": { "version": "1.0.0", @@ -3551,6 +2726,7 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -3565,6 +2741,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -3573,6 +2750,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3581,6 +2759,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3589,6 +2768,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3598,12 +2778,13 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "resolved": "", + "dev": true } } }, @@ -3643,7 +2824,8 @@ "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true }, "binary-search-tree": { "version": "0.2.5", @@ -3671,9 +2853,10 @@ } }, "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true }, "bn.js": { "version": "4.11.8", @@ -3741,55 +2924,107 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -3804,14 +3039,11 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "fill-range": "^7.0.1" } }, "brorand": { @@ -3820,29 +3052,6 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -3915,36 +3124,33 @@ } }, "browserslist": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", - "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", "requires": { - "caniuse-lite": "^1.0.30001010", - "electron-to-chromium": "^1.3.306", - "node-releases": "^1.1.40" + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" }, "dependencies": { "caniuse-lite": { - "version": "1.0.30001011", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", - "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==" + "version": "1.0.30001109", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz", + "integrity": "sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ==" }, "electron-to-chromium": { - "version": "1.3.311", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.311.tgz", - "integrity": "sha512-7GH6RKCzziLzJ9ejmbiBEdzHZsc6C3eRpav14dmRfTWMpNgMqpP1ukw/FU/Le2fR+ep642naq7a23xNdmh2s+A==" + "version": "1.3.516", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.516.tgz", + "integrity": "sha512-WDM5AAQdOrvLqSX8g3Zd5AujBXfMxf96oeZkff0U2HF5op3tjShE+on2yay3r1UD4M9I3p0iHpAS4+yV8U8A9A==" + }, + "node-releases": { + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==" } } }, - "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -4046,9 +3252,10 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -4067,15 +3274,11 @@ "y18n": "^4.0.0" }, "dependencies": { - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "requires": { "yallist": "^3.0.2" } @@ -4083,12 +3286,14 @@ "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -4096,6 +3301,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -4111,7 +3317,40 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true } } }, @@ -4162,21 +3401,6 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000963.tgz", "integrity": "sha512-n4HUiullc7Lw0LyzpeLa2ffP8KxFBGdxqD/8G3bSL6oB758hZ2UE2CVK+tQN958tJIi0/tfpjAc67aAtoHgnrQ==" }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", - "dev": true, - "requires": { - "rsvp": "^3.3.3" - } - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, "case-sensitive-paths-webpack-plugin": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", @@ -4196,15 +3420,6 @@ "lodash": "^4.17.14" } }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4216,27 +3431,19 @@ } }, "character-entities": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", - "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" }, "character-entities-legacy": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", - "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==" - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "requires": { - "is-regex": "^1.0.3" - } + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" }, "character-reference-invalid": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", - "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, "chardet": { "version": "0.7.0", @@ -4309,6 +3516,16 @@ "to-regex-range": "^2.1.0" } }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -4369,9 +3586,10 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true }, "chrome-trace-event": { "version": "1.0.2", @@ -4383,9 +3601,9 @@ } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -4407,6 +3625,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -4418,6 +3637,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -4425,7 +3645,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -4434,25 +3655,10 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", "dev": true }, "cli-cursor": { @@ -4471,9 +3677,9 @@ "dev": true }, "clipboard": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", - "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", "requires": { "good-listener": "^1.2.2", "select": "^1.1.2", @@ -4481,42 +3687,75 @@ } }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } }, "code-point-at": { "version": "1.1.0", @@ -4524,14 +3763,15 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collapse-white-space": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", - "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -4556,17 +3796,17 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, "commondir": { "version": "1.0.1", @@ -4576,7 +3816,8 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "compressible": { "version": "2.0.17", @@ -4637,32 +3878,32 @@ } }, "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^4.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "dependencies": { "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -4693,17 +3934,6 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -4729,26 +3959,17 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-parser": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz", - "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz", + "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==", "requires": { - "cookie": "0.3.1", + "cookie": "0.4.0", "cookie-signature": "1.0.6" } }, @@ -4761,6 +3982,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -4773,24 +3995,31 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true }, "core-js-compat": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.2.tgz", - "integrity": "sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "requires": { - "browserslist": "^4.7.3", - "semver": "^6.3.0" + "browserslist": "^4.8.5", + "semver": "7.0.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" } } }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -4820,15 +4049,6 @@ "elliptic": "^6.0.0" } }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -4885,39 +4105,61 @@ } }, "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "css-loader": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.0.tgz", - "integrity": "sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", "requires": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", "icss-utils": "^4.1.1", "loader-utils": "^1.2.3", "normalize-path": "^3.0.0", - "postcss": "^7.0.17", + "postcss": "^7.0.32", "postcss-modules-extract-imports": "^2.0.0", "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.1.0", + "postcss-modules-scope": "^2.2.0", "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.0", - "schema-utils": "^2.0.0" + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" }, "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -4925,9 +4167,24 @@ } }, "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "source-map": { "version": "0.6.1", @@ -5053,48 +4310,12 @@ } }, "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - }, - "dependencies": { - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - } + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" } }, "css-what": { @@ -5107,25 +4328,10 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, - "cssom": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", - "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", - "dev": true - }, - "cssstyle": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz", - "integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, "csstype": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", - "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.2.tgz", + "integrity": "sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==" }, "currently-unhandled": { "version": "0.4.1", @@ -5138,7 +4344,8 @@ "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true }, "d3": { "version": "3.5.17", @@ -5146,9 +4353,9 @@ "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" }, "damerau-levenshtein": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", - "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, "dashdash": { @@ -5159,30 +4366,6 @@ "assert-plus": "^1.0.0" } }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -5205,7 +4388,17 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } }, "deep-equal": { "version": "1.1.1", @@ -5232,11 +4425,6 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=" - }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -5286,14 +4474,11 @@ } } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, "define-properties": { "version": "1.1.3", @@ -5307,6 +4492,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -5316,6 +4502,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5324,6 +4511,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5332,6 +4520,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5341,12 +4530,14 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true } } }, @@ -5423,27 +4614,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", @@ -5508,12 +4678,6 @@ } } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -5603,11 +4767,6 @@ "isarray": "^1.0.0" } }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" - }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -5627,36 +4786,43 @@ } }, "dom-helpers": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz", - "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", "requires": { - "@babel/runtime": "^7.6.3", - "csstype": "^2.6.7" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" }, "dependencies": { "@babel/runtime": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", - "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" } } }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } } }, "domain-browser": { @@ -5670,15 +4836,6 @@ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", @@ -5687,11 +4844,6 @@ "domelementtype": "1" } }, - "domready": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=" - }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -5701,13 +4853,46 @@ "domelementtype": "1" } }, + "dot-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + }, + "dependencies": { + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "requires": { + "tslib": "^1.10.0" + } + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "duplexer": { @@ -5726,6 +4911,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -5768,9 +4954,9 @@ "integrity": "sha512-1o25iFRf/dbgauTWalEzmD1EmRN3a2CzP/K7UVpYLEBduk96LF0FyUdCcf4Ry2mAWJ1VxyblFjC93q6qlLwA2A==" }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -5785,8 +4971,7 @@ "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "emojis-list": { "version": "2.1.0", @@ -5834,14 +5019,15 @@ } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, "requires": { "prr": "~1.0.1" } @@ -5877,6 +5063,17 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -5887,34 +5084,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, "eslint": { "version": "5.16.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", @@ -5996,38 +5165,12 @@ "esutils": "^2.0.2" } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -6071,19 +5214,22 @@ } }, "eslint-config-react-app": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz", - "integrity": "sha512-8QZrKWuHVC57Fmu+SsKAVxnI9LycZl7NFQ4H9L+oeISuCXhYdXqsOOIVSjQFW6JF5MXZLFE+21Syhd7mF1IRZQ==", - "dev": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-4.0.1.tgz", + "integrity": "sha512-ZsaoXUIGsK8FCi/x4lT2bZR5mMkL/Kgj+Lnw690rbvvUr/uiwgFiD8FcfAhkCycm7Xte6O5lYz4EqMx2vX7jgw==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.7" + } }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -6100,6 +5246,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } } } }, @@ -6152,12 +5307,12 @@ } }, "eslint-module-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", - "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { - "debug": "^2.6.8", + "debug": "^2.6.9", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -6240,22 +5395,24 @@ } }, "eslint-plugin-import": { - "version": "2.18.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", - "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", + "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", "contains-path": "^0.1.0", "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", "has": "^1.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.0", + "object.values": "^1.1.1", "read-pkg-up": "^2.0.0", - "resolve": "^1.11.0" + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { "debug": { @@ -6365,9 +5522,9 @@ } }, "resolve": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", - "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -6382,64 +5539,64 @@ } }, "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz", + "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==", "dev": true, "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", + "@babel/runtime": "^7.10.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", + "axe-core": "^3.5.4", + "axobject-query": "^2.1.2", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" + "jsx-ast-utils": "^2.4.1", + "language-tags": "^1.0.5" }, "dependencies": { "@babel/runtime": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.0.tgz", - "integrity": "sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, - "jsx-ast-utils": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", - "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" - } + "emoji-regex": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", + "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==", + "dev": true }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } }, "eslint-plugin-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz", - "integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.5.tgz", + "integrity": "sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0", - "object.values": "^1.1.0", + "jsx-ast-utils": "^2.4.1", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", "prop-types": "^15.7.2", - "resolve": "^1.12.0" + "resolve": "^1.17.0", + "string.prototype.matchall": "^4.0.2" }, "dependencies": { "doctrine": { @@ -6451,10 +5608,72 @@ "esutils": "^2.0.2" } }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + }, "resolve": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", - "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -6462,20 +5681,38 @@ } } }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==", + "dev": true + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -6494,26 +5731,40 @@ }, "dependencies": { "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true } } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } } }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, "requires": { "estraverse": "^4.1.0" } @@ -6521,7 +5772,8 @@ "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, "esutils": { "version": "2.0.2", @@ -6534,9 +5786,9 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", "dev": true }, "events": { @@ -6569,88 +5821,6 @@ "safe-buffer": "^5.1.1" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "requires": { - "merge": "^1.2.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", - "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "jest-diff": "^22.4.3", - "jest-get-type": "^22.4.3", - "jest-matcher-utils": "^22.4.3", - "jest-message-util": "^22.4.3", - "jest-regex-util": "^22.4.3" - } - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -6731,6 +5901,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -6740,6 +5911,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -6757,15 +5929,6 @@ "tmp": "^0.0.33" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -7083,9 +6246,9 @@ "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "micromatch": { @@ -7142,15 +6305,6 @@ "websocket-driver": ">=0.5.1" } }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "dev": true, - "requires": { - "bser": "^2.0.0" - } - }, "fbemitter": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", @@ -7217,9 +6371,10 @@ } }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true }, "figures": { "version": "2.0.0", @@ -7248,22 +6403,6 @@ "schema-utils": "^2.5.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, "filesize": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", @@ -7271,16 +6410,21 @@ "dev": true }, "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "to-regex-range": "^5.0.1" + }, + "dependencies": { + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } } }, "finalhandler": { @@ -7336,78 +6480,218 @@ "locate-path": "^3.0.0" } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "glob": "^7.1.3" } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flood-ui-kit": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/flood-ui-kit/-/flood-ui-kit-0.1.11.tgz", + "integrity": "sha512-mUEna1knrqnFa4bUnXzevvxjMBOgjidO+36uQ1XB4TpIKNdmTjdwbyoIkBhYySPCXgbq1fPdvmg8RVOFjTQS1Q==", + "requires": { + "classnames": "^2.2.6", + "normalize.css": "^7.0.0", + "prop-types": "^15.7.2", + "react": "^16.12.0", + "react-dom": "^16.12.0", + "react-router": "^5.1.2", + "react-router-dom": "^5.1.2", + "react-transition-group": "^4.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", "requires": { - "ms": "2.0.0" + "react-is": "^16.7.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "react-router": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", + "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.3.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "flux": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "requires": { + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" @@ -7578,21 +6862,6 @@ "kind-of": "^6.0.2" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -7620,9 +6889,9 @@ "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "micromatch": { @@ -7654,8915 +6923,4842 @@ } } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "map-cache": "^0.2.2" } }, - "flatted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", - "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", - "dev": true + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "flood-ui-kit": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/flood-ui-kit/-/flood-ui-kit-0.1.11.tgz", - "integrity": "sha512-mUEna1knrqnFa4bUnXzevvxjMBOgjidO+36uQ1XB4TpIKNdmTjdwbyoIkBhYySPCXgbq1fPdvmg8RVOFjTQS1Q==", + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { - "classnames": "^2.2.6", - "normalize.css": "^7.0.0", - "prop-types": "^15.7.2", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "react-router": "^5.1.2", - "react-router-dom": "^5.1.2", - "react-transition-group": "^4.3.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "react-router": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", - "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, + "geoip-country": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/geoip-country/-/geoip-country-3.4.1.tgz", + "integrity": "sha512-/6sIXjgJnOIZhKjpCKJ9eDG+CCGPUcCQOtv9/HGOrBW5c58RhTjDaZOgPcSsbEYCtIFxctuaa0KIyJutiUu6aQ==", + "requires": { + "async": "^2.6.1", + "colors": "^1.4.0", + "glob": "^7.1.5", + "iconv-lite": "^0.5.0", + "ip-address": "^6.1.0", + "lazy": "^1.0.11", + "rimraf": "^2.7.1", + "yauzl": "^2.10.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.3.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "safer-buffer": ">= 2.1.2 < 3" } } } }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "pump": "^3.0.0" } }, - "flux": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", - "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "fbemitter": "^2.0.0", - "fbjs": "^0.8.0" + "assert-plus": "^1.0.0" } }, - "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", - "dev": true, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "debug": "^3.0.0" + "is-glob": "^4.0.1" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { - "for-in": "^1.0.1" + "ini": "^1.3.5" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } }, - "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + } + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + } + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { - "ms": "2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "kind-of": "^3.0.2" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-buffer": "^1.1.5" } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-buffer": "^1.1.5" } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "history": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz", + "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^0.4.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" + }, + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "requires": { - "kind-of": "^6.0.0" + "source-map": "~0.6.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", "requires": { - "kind-of": "^6.0.0" + "tslib": "^1.10.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "lower-case": "^2.0.1", + "tslib": "^1.10.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "html-to-react": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.3.tgz", + "integrity": "sha512-txe09A3vxW8yEZGJXJ1is5gGDfBEVACmZDSgwDyH5EsfRdOubBwBCg63ZThZP0xBn0UE4FyvMXZXmohusCxDcg==", + "requires": { + "domhandler": "^3.0", + "htmlparser2": "^4.1.0", + "lodash.camelcase": "^4.3.0", + "ramda": "^0.27" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, + "domhandler": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", + "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "domelementtype": "^2.0.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "domutils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.1.0.tgz", + "integrity": "sha512-CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg==", + "requires": { + "dom-serializer": "^0.2.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0" + } + }, + "htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } } } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "html-webpack-plugin": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz", + "integrity": "sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==", "requires": { - "map-cache": "^0.2.2" + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.8.tgz", - "integrity": "sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA==", - "optional": true, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "ms": "2.0.0" } }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "minipass": "^2.2.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "minimist": "0.0.8" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "kind-of": "^6.0.0" } }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "kind-of": "^6.0.0" } }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "is-extglob": "^2.1.1" } }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { - "wrappy": "1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { + "ms": { "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "requires": { - "globule": "^1.0.0" - } + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" }, - "geoip-country": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/geoip-country/-/geoip-country-3.3.1.tgz", - "integrity": "sha512-qn4rpbmD1ow2FFW/zkKm2Y2qN3L9z0J3/7thTZtxuBpA6+tV3ZiD5gClvGogpQteHizZZ+pypJ/CgKFomb/cxQ==", + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", "requires": { - "async": "^2.6.1", - "colors": "^1.4.0", - "glob": "^7.1.5", - "iconv-lite": "^0.5.0", - "ip-address": "^6.1.0", - "lazy": "^1.0.11", - "rimraf": "^2.7.1", - "yauzl": "^2.10.0" + "postcss": "^7.0.14" }, "dependencies": { - "iconv-lite": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", - "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" } } } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", + "dev": true }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { - "is-glob": "^2.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "ini": "^1.3.4" + "repeating": "^2.0.0" } }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "global-prefix": "^3.0.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } } } }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } } } }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "intl-format-cache": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" + }, + "intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "intl-messageformat-parser": "1.4.0" } }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" + }, + "intl-relativeformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", "requires": { - "delegate": "^3.1.2" + "intl-messageformat": "^2.0.0" } }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "loose-envify": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "dev": true, + "ip-address": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.3.0.tgz", + "integrity": "sha512-tYN6DnF82jBRA6ZT3C+k4LBtVUKu0Taq7GZN4yldhz6nFKVh3EDg/zRIABsu4fAT2N0iFW9D482Aqkiah1NxTg==", "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "jsbn": "1.1.0", + "lodash.find": "4.6.0", + "lodash.max": "4.0.1", + "lodash.merge": "4.6.2", + "lodash.padstart": "4.6.1", + "lodash.repeat": "4.1.0", + "sprintf-js": "1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + } } }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true }, - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "kind-of": "^3.0.2" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - } + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "binary-extensions": "^1.0.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } + "kind-of": "^3.0.2" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "history": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz", - "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==", + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^2.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^0.4.0" + "number-is-nan": "^1.0.0" } }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "is-extglob": "^2.1.1" } }, - "hoek": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", - "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" - }, - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" }, "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } } } }, - "html-minifier-terser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz", - "integrity": "sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==", + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "camel-case": "^3.0.0", - "clean-css": "^4.2.1", - "commander": "^4.0.0", - "he": "^1.2.0", - "param-case": "^2.1.1", - "relateurl": "^0.2.7", - "terser": "^4.3.9" + "isobject": "^3.0.1" }, "dependencies": { - "commander": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", - "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "html-to-react": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.2.tgz", - "integrity": "sha512-TdTfxd95sRCo6QL8admCkE7mvNNrXtGoVr1dyS+7uvc8XCqAymnf/6ckclvnVbQNUo2Nh21VPwtfEHd0khiV7g==", + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "domhandler": "^3.0", - "htmlparser2": "^4.0", - "lodash.camelcase": "^4.3.0", - "ramda": "^0.26" - }, - "dependencies": { - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" - }, - "domhandler": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", - "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", - "requires": { - "domelementtype": "^2.0.1" - } - }, - "domutils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", - "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", - "requires": { - "dom-serializer": "^0.2.1", - "domelementtype": "^2.0.1", - "domhandler": "^3.0.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "htmlparser2": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.0.0.tgz", - "integrity": "sha512-cChwXn5Vam57fyXajDtPXL1wTYc8JtLbr2TN76FYu05itVVVealxLowe2B3IEznJG4p9HAYn/0tJaRlGuEglFQ==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^3.0.0", - "domutils": "^2.0.0", - "entities": "^2.0.0" - } - } + "has": "^1.0.1" } }, - "html-webpack-plugin": { - "version": "4.0.0-beta.11", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", - "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" + "has-symbols": "^1.0.0" } }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "is-there": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/is-there/-/is-there-4.5.0.tgz", + "integrity": "sha512-ko8s1Ll99F0fxKSGil5gdQCGOgkmOLWIC++OWBi3IvhlELNZzqUF/ydlcNnzMH18hau9wGfE77RjDMBxX1Qw+w==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "punycode": "2.x.x" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", - "dev": true, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "js2xmlparser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", "dev": true, "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "xmlcreate": "^2.0.3" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + }, + "jsdoc": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.5.tgz", + "integrity": "sha512-SbY+i9ONuxSK35cgVHaI8O9senTE4CDYAmGSDJ5l3+sfe62Ff4gy96osy6OW84t4K4A8iGnMrlRrsSItSNp3RQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.8.11", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^0.8.2", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.10.2" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", "dev": true } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { - "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", "dev": true }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } + } }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=" + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", - "dev": true + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } }, - "import-fresh": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", - "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, "requires": { - "repeating": "^2.0.0" + "json-buffer": "3.0.0" } }, - "indexes-of": { + "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "is-buffer": "^1.1.5" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "language-subtag-registry": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz", + "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==", "dev": true }, - "inquirer": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz", - "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==", + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - } + "language-subtag-registry": "~0.3.2" } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "package-json": "^6.3.0" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "intl-format-cache": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", - "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" + "lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", "requires": { - "intl-messageformat-parser": "1.4.0" + "leven": "^3.1.0" + }, + "dependencies": { + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + } } }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" - }, - "intl-relativeformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", - "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, "requires": { - "intl-messageformat": "^2.0.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "requires": { - "loose-envify": "^1.0.0" + "immediate": "~3.0.5" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-address": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.1.0.tgz", - "integrity": "sha512-u9YYtb1p2fWSbzpKmZ/b3QXWA+diRYPxc2c4y5lFB/MMk5WZ7wNZv8S3CFcIGVJ5XtlaCAl/FQy/D3eQ2XtdOA==", + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, "requires": { - "jsbn": "1.1.0", - "lodash": "^4.17.15", - "sprintf-js": "1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - } + "uc.micro": "^1.0.1" } }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "kind-of": "^3.0.2" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, - "is-alphabetical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", - "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==" - }, - "is-alphanumerical": { + "loader-fs-cache": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", - "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", "dev": true, "requires": { - "ci-info": "^1.5.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-decimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", - "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" }, "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "localforage": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz", + "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==", "requires": { - "number-is-nan": "^1.0.0" + "lie": "3.1.1" } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "number-is-nan": "^1.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } + "lodash-es": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", + "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" }, - "is-hexadecimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", - "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==" + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } + "lodash.find": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", + "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - }, - "dependencies": { - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - } - } + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "lodash.max": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", + "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } + "lodash.repeat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", + "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", "dev": true }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "loglevel": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "has-symbols": "^1.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "is-there": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/is-there/-/is-there-4.4.4.tgz", - "integrity": "sha512-WbEGbR5i/vSLJ/cc72kVCoM0RvKWmtmPpRXriNlhsredolym2aSTHZA02IzvDR5ewmwD0V6e9S3s9aHs6Ygw5A==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-whitespace-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", - "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-word-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", - "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "punycode": "2.x.x" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "object-visit": "^1.0.0" } }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, + "markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" } }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "dev": true + }, + "marked": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", - "dev": true, + "mdast-add-list-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", + "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", "requires": { - "handlebars": "^4.0.3" + "unist-util-visit-parents": "1.1.2" } }, - "jest": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-22.4.3.tgz", - "integrity": "sha512-FFCdU/pXOEASfHxFDOWUysI/+FFoqiXJADEIXgDKuZyqSmBD3tZ4BEGH7+M79v7czj7bbkhwtd2LaEDcJiM/GQ==", - "dev": true, - "requires": { - "import-local": "^1.0.0", - "jest-cli": "^22.4.3" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "jest-cli": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.4.tgz", - "integrity": "sha512-I9dsgkeyjVEEZj9wrGrqlH+8OlNob9Iptyl+6L5+ToOLJmHm4JwOPatin1b2Bzp5R5YRQJ+oiedx7o1H7wJzhA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "import-local": "^1.0.0", - "is-ci": "^1.0.10", - "istanbul-api": "^1.1.14", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-instrument": "^1.8.0", - "istanbul-lib-source-maps": "^1.2.1", - "jest-changed-files": "^22.2.0", - "jest-config": "^22.4.4", - "jest-environment-jsdom": "^22.4.1", - "jest-get-type": "^22.1.0", - "jest-haste-map": "^22.4.2", - "jest-message-util": "^22.4.0", - "jest-regex-util": "^22.1.0", - "jest-resolve-dependencies": "^22.1.0", - "jest-runner": "^22.4.4", - "jest-runtime": "^22.4.4", - "jest-snapshot": "^22.4.0", - "jest-util": "^22.4.1", - "jest-validate": "^22.4.4", - "jest-worker": "^22.2.2", - "micromatch": "^2.3.11", - "node-notifier": "^5.2.1", - "realpath-native": "^1.0.0", - "rimraf": "^2.5.4", - "slash": "^1.0.0", - "string-length": "^2.0.0", - "strip-ansi": "^4.0.0", - "which": "^1.2.12", - "yargs": "^10.0.3" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", - "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.1.0" - } - }, - "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true }, - "jest-changed-files": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz", - "integrity": "sha512-83Dh0w1aSkUNFhy5d2dvqWxi/y6weDwVVLU6vmK0cV9VpRxPzhTeGimbsbRDSnEoszhF937M4sDLLeS7Cu/Tmw==", - "dev": true, - "requires": { - "throat": "^4.0.0" - } + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "jest-config": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.4.tgz", - "integrity": "sha512-9CKfo1GC4zrXSoMLcNeDvQBfgtqGTB1uP8iDIZ97oB26RCUb886KkKWhVcpyxVDOUxbhN+uzcBCeFe7w+Iem4A==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^22.4.1", - "jest-environment-node": "^22.4.1", - "jest-get-type": "^22.1.0", - "jest-jasmine2": "^22.4.4", - "jest-regex-util": "^22.1.0", - "jest-resolve": "^22.4.2", - "jest-util": "^22.4.1", - "jest-validate": "^22.4.4", - "pretty-format": "^22.4.0" - } + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true }, - "jest-diff": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz", - "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==", - "dev": true, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "chalk": "^2.0.1", - "diff": "^3.2.0", - "jest-get-type": "^22.4.3", - "pretty-format": "^22.4.3" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, - "jest-docblock": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz", - "integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==", - "dev": true, - "requires": { - "detect-newline": "^2.1.0" - } + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, - "jest-environment-jsdom": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz", - "integrity": "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==", - "dev": true, - "requires": { - "jest-mock": "^22.4.3", - "jest-util": "^22.4.3", - "jsdom": "^11.5.1" - } + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true }, - "jest-environment-node": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz", - "integrity": "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==", - "dev": true, - "requires": { - "jest-mock": "^22.4.3", - "jest-util": "^22.4.3" - } + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "jest-get-type": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", - "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", "dev": true }, - "jest-haste-map": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz", - "integrity": "sha512-4Q9fjzuPVwnaqGKDpIsCSoTSnG3cteyk2oNVjBX12HHOaF1oxql+uUiqZb5Ndu7g/vTZfdNwwy4WwYogLh29DQ==", - "dev": true, - "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-docblock": "^22.4.3", - "jest-serializer": "^22.4.3", - "jest-worker": "^22.4.3", - "micromatch": "^2.3.11", - "sane": "^2.0.0" - } - }, - "jest-jasmine2": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.4.tgz", - "integrity": "sha512-nK3vdUl50MuH7vj/8at7EQVjPGWCi3d5+6aCi7Gxy/XMWdOdbH1qtO/LjKbqD8+8dUAEH+BVVh7HkjpCWC1CSw==", + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^22.4.0", - "graceful-fs": "^4.1.11", - "is-generator-fn": "^1.0.0", - "jest-diff": "^22.4.0", - "jest-matcher-utils": "^22.4.0", - "jest-message-util": "^22.4.0", - "jest-snapshot": "^22.4.0", - "jest-util": "^22.4.1", - "source-map-support": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, - "jest-leak-detector": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz", - "integrity": "sha512-NZpR/Ls7+ndO57LuXROdgCGz2RmUdC541tTImL9bdUtU3WadgFGm0yV+Ok4Fuia/1rLAn5KaJ+i76L6e3zGJYQ==", - "dev": true, - "requires": { - "pretty-format": "^22.4.3" - } + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, - "jest-matcher-utils": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz", - "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.4.3", - "pretty-format": "^22.4.3" - } + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, - "jest-message-util": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz", - "integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==", - "dev": true, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "@babel/code-frame": "^7.0.0-beta.35", - "chalk": "^2.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0", - "stack-utils": "^1.0.1" + "mime-db": "1.40.0" } }, - "jest-mock": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz", - "integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==", + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, - "jest-regex-util": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz", - "integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==", + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "jest-resolve": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz", - "integrity": "sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw==", - "dev": true, - "requires": { - "browser-resolve": "^1.11.2", - "chalk": "^2.0.1" - } + "minami": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minami/-/minami-1.2.3.tgz", + "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", + "dev": true }, - "jest-resolve-dependencies": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz", - "integrity": "sha512-06czCMVToSN8F2U4EvgSB1Bv/56gc7MpCftZ9z9fBgUQM7dzHGCMBsyfVA6dZTx8v0FDcnALf7hupeQxaBCvpA==", - "dev": true, + "mini-create-react-context": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", + "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", "requires": { - "jest-regex-util": "^22.4.3" + "@babel/runtime": "^7.4.0", + "gud": "^1.0.0", + "tiny-warning": "^1.0.2" } }, - "jest-runner": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.4.tgz", - "integrity": "sha512-5S/OpB51igQW9xnkM5Tgd/7ZjiAuIoiJAVtvVTBcEBiXBIFzWM3BAMPBM19FX68gRV0KWyFuGKj0EY3M3aceeQ==", - "dev": true, - "requires": { - "exit": "^0.1.2", - "jest-config": "^22.4.4", - "jest-docblock": "^22.4.0", - "jest-haste-map": "^22.4.2", - "jest-jasmine2": "^22.4.4", - "jest-leak-detector": "^22.4.0", - "jest-message-util": "^22.4.0", - "jest-runtime": "^22.4.4", - "jest-util": "^22.4.1", - "jest-worker": "^22.2.2", - "throat": "^4.0.0" - } + "miniget": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/miniget/-/miniget-1.5.1.tgz", + "integrity": "sha512-KJ3AyIVZ76QuWAq43BWjkK+jLdhxhy3s4tsdg9Je91+cIFkeOSW2VEj2lSeKw50CPu1eCCkSbiQEBKL36mpA5w==" }, - "jest-runtime": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.4.tgz", - "integrity": "sha512-WRTj9m///npte1YjuphCYX7GRY/c2YvJImU9t7qOwFcqHr4YMzmX6evP/3Sehz5DKW2Vi8ONYPCFWe36JVXxfw==", + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^22.4.4", - "babel-plugin-istanbul": "^4.1.5", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "exit": "^0.1.2", - "graceful-fs": "^4.1.11", - "jest-config": "^22.4.4", - "jest-haste-map": "^22.4.2", - "jest-regex-util": "^22.1.0", - "jest-resolve": "^22.4.2", - "jest-util": "^22.4.1", - "jest-validate": "^22.4.4", - "json-stable-stringify": "^1.0.1", - "micromatch": "^2.3.11", - "realpath-native": "^1.0.0", - "slash": "^1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "^2.1.0", - "yargs": "^10.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "babel-jest": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.4.tgz", - "integrity": "sha512-A9NB6/lZhYyypR9ATryOSDcqBaqNdzq4U+CN+/wcMsLcmKkPxQEoTKLajGfd3IkxNyVBT8NewUK2nWyGbSzHEQ==", - "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.1.5", - "babel-preset-jest": "^22.4.4" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", - "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.1.0" - } - }, - "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "is-plain-object": "^2.0.4" } } } }, - "jest-serializer": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", - "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==", - "dev": true - }, - "jest-snapshot": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz", - "integrity": "sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ==", - "dev": true, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "chalk": "^2.0.1", - "jest-diff": "^22.4.3", - "jest-matcher-utils": "^22.4.3", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^22.4.3" + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } } }, - "jest-util": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz", - "integrity": "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==", - "dev": true, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "requires": { - "callsites": "^2.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "jest-message-util": "^22.4.3", - "mkdirp": "^0.5.1", - "source-map": "^0.6.0" + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" }, "dependencies": { - "callsites": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "jest-validate": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.4.tgz", - "integrity": "sha512-dmlf4CIZRGvkaVg3fa0uetepcua44DHtktHm6rcoNVtYlpwe6fEJRkMFsaUVcFHLzbuBJ2cPw9Gl9TKfnzMVwg==", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "chalk": "^2.0.1", - "jest-config": "^22.4.4", - "jest-get-type": "^22.1.0", - "leven": "^2.1.0", - "pretty-format": "^22.4.0" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, - "jest-worker": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz", - "integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==", - "dev": true, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", "requires": { - "merge-stream": "^1.0.1" + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" } }, - "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "requires": { + "glob": "^6.0.1" + } } } }, - "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", - "dev": true, - "requires": { - "xmlcreate": "^2.0.0" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" }, - "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", - "catharsis": "^0.8.11", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", - "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", - "taffydb": "2.6.2", - "underscore": "~1.9.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } - } - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true - }, - "acorn-globals": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", - "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - } - } } } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, + "nedb": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", + "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", "requires": { - "jsonify": "~0.0.0" + "async": "0.2.10", + "binary-search-tree": "0.2.5", + "localforage": "^1.3.0", + "mkdirp": "~0.5.1", + "underscore": "~1.4.4" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + } } }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==" }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "newsemitter": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/newsemitter/-/newsemitter-0.3.1.tgz", + "integrity": "sha512-ZlY1PnxxKqKEBZNJsbE3pUsZ4vVd8Y9HsbXj8rSIEYkUnh+vp/E/aXdo4VQjyRXBMfsp2VOGz/CIYW9TsIvedQ==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "minimist": "^1.2.0" + "lower-case": "^1.1.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "node-addon-api": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz", + "integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "graceful-fs": "^4.1.6" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", "dev": true }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "node-gyp-build": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", + "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true } } }, - "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "node-releases": { + "version": "1.1.41", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", + "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } } }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "nodemon": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", + "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", + "dev": true, "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^4.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "is-buffer": "^1.1.5" + "abbrev": "1" } }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "graceful-fs": "^4.1.9" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "package-json": "^4.0.0" + "remove-trailing-separator": "^1.0.1" } }, - "lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true + "normalize.css": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz", + "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "path-key": "^2.0.0" } }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "immediate": "~3.0.5" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "requires": { - "uc.micro": "^1.0.1" + "boolbase": "~1.0.0" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } } } }, - "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", - "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "isobject": "^3.0.0" }, "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "find-up": "^1.0.0" + "has-symbols": "^1.0.1" } } } }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "isobject": "^3.0.1" }, "dependencies": { - "json5": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "minimist": "^1.2.0" + "has-symbols": "^1.0.1" } } } }, - "localforage": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz", - "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==", + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "lie": "3.1.1" + "ee-first": "1.1.1" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "wrappy": "1" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } }, - "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=" }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=" - }, - "loglevel": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", - "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "p-try": "^2.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "p-limit": "^2.0.0" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "retry": "^0.12.0" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { - "tmpl": "1.0.x" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "requires": { - "object-visit": "^1.0.0" + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } } }, - "markdown-escapes": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", - "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==" - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "callsites": "^3.0.0" } }, - "markdown-it-anchor": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", - "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==", - "dev": true - }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", - "dev": true - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, - "mdast-add-list-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", - "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", - "requires": { - "unist-util-visit-parents": "1.1.2" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", "requires": { - "mimic-fn": "^1.0.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "error-ex": "^1.2.0" } }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", - "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", - "requires": { - "is-plain-obj": "^1.1" - } + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { - "readable-stream": "^2.0.1" + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" } }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { + "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, + "passport": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz", + "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==", "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "passport-strategy": "1.x.x", + "pause": "0.0.1" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "passport-jwt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.0.tgz", + "integrity": "sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==", "requires": { - "mime-db": "1.40.0" + "jsonwebtoken": "^8.2.0", + "passport-strategy": "^1.0.0" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" }, - "minami": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/minami/-/minami-1.2.3.tgz", - "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, - "mini-create-react-context": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", - "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", - "requires": { - "@babel/runtime": "^7.4.0", - "gud": "^1.0.0", - "tiny-warning": "^1.0.2" - } + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, - "miniget": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/miniget/-/miniget-1.5.1.tgz", - "integrity": "sha512-KJ3AyIVZ76QuWAq43BWjkK+jLdhxhy3s4tsdg9Je91+cIFkeOSW2VEj2lSeKw50CPu1eCCkSbiQEBKL36mpA5w==" + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, - "minimalistic-assert": { + "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, - "mitt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=" + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "minimist": "0.0.8" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" }, - "morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "requires": { - "basic-auth": "~2.0.0", - "debug": "2.6.9", - "depd": "~1.1.2", - "on-finished": "~2.3.0", - "on-headers": "~1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" - }, - "nedb": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", - "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", - "requires": { - "async": "0.2.10", - "binary-search-tree": "0.2.5", - "localforage": "^1.3.0", - "mkdirp": "~0.5.1", - "underscore": "~1.4.4" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - } - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==" - }, - "newsemitter": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/newsemitter/-/newsemitter-0.3.1.tgz", - "integrity": "sha512-ZlY1PnxxKqKEBZNJsbE3pUsZ4vVd8Y9HsbXj8rSIEYkUnh+vp/E/aXdo4VQjyRXBMfsp2VOGz/CIYW9TsIvedQ==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-addon-api": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz", - "integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - } - } + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, - "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-notifier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", - "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", - "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "node-releases": { - "version": "1.1.41", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", - "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "node-sass": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", - "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "nodemon": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz", - "integrity": "sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ==", - "dev": true, - "requires": { - "chokidar": "^2.1.8", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^2.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.3.tgz", - "integrity": "sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz", - "integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.15.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - } - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=" - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "passport": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", - "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", - "requires": { - "passport-strategy": "1.x.x", - "pause": "0.0.1" - } - }, - "passport-jwt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.0.tgz", - "integrity": "sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==", - "requires": { - "jsonwebtoken": "^8.2.0", - "passport-strategy": "^1.0.0" - } - }, - "passport-strategy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", - "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "pause": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "requires": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - } - }, - "postcss-loader": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.3.tgz", - "integrity": "sha512-RuBcNE8rjCkIB0IsbmkGFRmQJTeQJfCI88E0VTarPNTvaNSv9OFv1DvTwgtAN/qlzyiELsmmmtX/tEzKp/cdug==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^1.2.0", - "schema-utils": "^0.4.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.16", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-scope": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz", - "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - }, - "dependencies": { - "postcss": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.23.tgz", - "integrity": "sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-prefix-selector": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.7.2.tgz", - "integrity": "sha512-ddmzjWNmGs7E/nyolJ021/Gk6oBLRQLyyXKGV4Mu+Y0gquo+XlXSDP0/Y2J8C/cad/GLyftf2H0XtuDFQZxN3w==", - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "posthtml": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", - "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", - "requires": { - "posthtml-parser": "^0.2.0", - "posthtml-render": "^1.0.5" - } - }, - "posthtml-parser": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", - "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", - "requires": { - "htmlparser2": "^3.8.3", - "isobject": "^2.1.0" - } - }, - "posthtml-rename-id": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.11.tgz", - "integrity": "sha512-8doF8+w+WJT4AZuLVC0feA8Yy7g00IUmZw3YDKn8CKx0uC8FLbCH7JaGMbDOE1ArjyZsJMt1vmyP+IZ8SnNmXw==", - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "posthtml-render": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.1.5.tgz", - "integrity": "sha512-yvt54j0zCBHQVEFAuR+yHld8CZrCa/E1Z/OcFNCV1IEWTLVxT8O7nYnM4IIw1CD4r8kaRd3lc42+0lgCKgm87w==" - }, - "posthtml-svg-mode": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", - "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", - "requires": { - "merge-options": "1.0.1", - "posthtml": "^0.9.2", - "posthtml-parser": "^0.2.1", - "posthtml-render": "^1.0.6" - } - }, - "prefix-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/prefix-style/-/prefix-style-2.0.1.tgz", - "integrity": "sha1-ZrupqHDP2jCKXcIOhekSCTLJWgY=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "prettier": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.2.tgz", - "integrity": "sha512-McHPg0n1pIke+A/4VcaS2en+pTNjy4xF+Uuq86u/5dyDO59/TtFZtQ708QIRkEZ3qwKz3GVkVa6mpxK/CpB8Rg==", - "dev": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz", - "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", - "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", - "requires": { - "asap": "~2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" - }, - "pstree.remy": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", - "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pug": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", - "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", - "requires": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" - } - }, - "pug-attrs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", - "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" - } - }, - "pug-code-gen": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz", - "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==", - "requires": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", - "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==" - }, - "pug-filters": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", - "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "pug-lexer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", - "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } - }, - "pug-linker": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", - "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", - "requires": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } - }, - "pug-load": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", - "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" - } - }, - "pug-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", - "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", - "requires": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" - } - }, - "pug-runtime": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", - "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==" - }, - "pug-strip-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", - "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", - "requires": { - "pug-error": "^1.3.3" - } - }, - "pug-walk": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", - "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==" - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-custom-scrollbars": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-custom-scrollbars/-/react-custom-scrollbars-4.2.1.tgz", - "integrity": "sha1-gw/ZUCkn6X6KeMIIaBOJmyqLZts=", - "requires": { - "dom-css": "^2.0.0", - "prop-types": "^15.5.10", - "raf": "^3.1.0" - } - }, - "react-dev-utils": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", - "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", - "dev": true, - "requires": { - "@babel/code-frame": "7.5.5", - "address": "1.1.2", - "browserslist": "4.7.0", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.5.0", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "6.5.0", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "^6.3.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.3", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "sockjs-client": "1.4.0", - "strip-ansi": "5.2.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" - } - }, - "caniuse-lite": { - "version": "1.0.30001011", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", - "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "electron-to-chromium": { - "version": "1.3.311", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.311.tgz", - "integrity": "sha512-7GH6RKCzziLzJ9ejmbiBEdzHZsc6C3eRpav14dmRfTWMpNgMqpP1ukw/FU/Le2fR+ep642naq7a23xNdmh2s+A==", - "dev": true - }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - } - } - }, - "react-dnd": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.6.0.tgz", - "integrity": "sha1-f6JWds+CfViokSk+PBq1naACVFo=", - "requires": { - "disposables": "^1.0.1", - "dnd-core": "^2.6.0", - "hoist-non-react-statics": "^2.1.0", - "invariant": "^2.1.0", - "lodash": "^4.2.0", - "prop-types": "^15.5.10" - } - }, - "react-dnd-html5-backend": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.6.0.tgz", - "integrity": "sha1-WQzRzKeEQbsnTt1XH+9MCxbdz44=", - "requires": { - "lodash": "^4.2.0" - } - }, - "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - } - }, - "react-dropzone": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-4.3.0.tgz", - "integrity": "sha512-ULfrLaTSsd8BDa9KVAGCueuq1AN3L14dtMsGGqtP0UwYyjG4Vhf158f/ITSHuSPYkZXbvfcIiOlZsH+e3QWm+Q==", - "requires": { - "attr-accept": "^1.1.3", - "prop-types": "^15.5.7" - } - }, - "react-error-overlay": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.3.tgz", - "integrity": "sha512-bOUvMWFQVk5oz8Ded9Xb7WVdEi3QGLC8tH7HmYP0Fdp4Bn3qw0tRFmr5TW6mvahzvmrK4a6bqWGfCevBflP+Xw==", - "dev": true - }, - "react-intl": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", - "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", - "requires": { - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^2.0.5", - "intl-messageformat": "^2.1.0", - "intl-relativeformat": "^2.1.0", - "invariant": "^2.1.1" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", - "requires": { - "react-is": "^16.7.0" - } - } - } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" - }, - "react-markdown": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.2.2.tgz", - "integrity": "sha512-/STJiRFmJuAIUdeBPp/VyO5bcenTIqP3LXuC3gYvregmYGKjnszGiFc2Ph0LsWC17Un3y/CT8TfxnwJT7v9EJw==", - "requires": { - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", - "remark-parse": "^5.0.0", - "unified": "^6.1.5", - "unist-util-visit": "^1.3.0", - "xtend": "^4.0.1" - } - }, - "react-router": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", - "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.3.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - } - } - }, - "react-router-dom": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.1.2.tgz", - "integrity": "sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.1.2", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-transition-group": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", - "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", - "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "dev": true, - "requires": { - "util.promisify": "^1.0.0" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dev": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "requires": { - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", - "requires": { - "define-properties": "^1.1.2" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remark-parse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", - "requires": { - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "dev": true, - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-pathname": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", - "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ress": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ress/-/ress-1.2.2.tgz", - "integrity": "sha1-T9AGgcjTzqp59d4eVKqtFWF+l3c=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "run-series": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.8.tgz", - "integrity": "sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==" - }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "locate-path": "^2.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "p-try": "^1.0.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "p-limit": "^1.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true } } }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" } }, - "sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", - "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^6.3.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } }, - "saxen": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.0.tgz", - "integrity": "sha512-34U5SdDUxECB5Jkwbc2mAdxHyGvbfCHv0iHgf+x2jaYLlwsPpju9651Lld9CpFpF4zJsoWcF3Q05blXXNOb/cg==" + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } }, - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" } }, - "schema-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", - "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "postcss-loader": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.3.tgz", + "integrity": "sha512-RuBcNE8rjCkIB0IsbmkGFRmQJTeQJfCI88E0VTarPNTvaNSv9OFv1DvTwgtAN/qlzyiELsmmmtX/tEzKp/cdug==", "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^1.2.0", + "schema-utils": "^0.4.0" }, "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } } } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" }, "dependencies": { + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "amdefine": ">=0.0.4" + "has-flag": "^3.0.0" } } } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", - "dev": true, - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" } } } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==" - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { - "ms": "2.0.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "has-flag": "^3.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true } } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, - "set-value": { + "prefix-style": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/prefix-style/-/prefix-style-2.0.1.tgz", + "integrity": "sha1-ZrupqHDP2jCKXcIOhekSCTLJWgY=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "prettier": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.2.tgz", + "integrity": "sha512-McHPg0n1pIke+A/4VcaS2en+pTNjy4xF+Uuq86u/5dyDO59/TtFZtQ708QIRkEZ3qwKz3GVkVa6mpxK/CpB8Rg==", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "renderkid": "^2.0.1", + "utila": "~0.4" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "asap": "~2.0.6" } }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { - "shebang-regex": "^1.0.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "requires": { - "kind-of": "^3.2.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "websocket-driver": ">=0.5.1" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", "dev": true, "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" + "escape-goat": "^2.0.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true }, - "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" + "performance-now": "^2.1.0" } }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "safe-buffer": "^5.1.0" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "source-map": "^0.5.6" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" } }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" + "react-custom-scrollbars": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-custom-scrollbars/-/react-custom-scrollbars-4.2.1.tgz", + "integrity": "sha1-gw/ZUCkn6X6KeMIIaBOJmyqLZts=", + "requires": { + "dom-css": "^2.0.0", + "prop-types": "^15.5.10", + "raf": "^3.1.0" + } }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "react-dev-utils": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", + "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.0", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "1.5.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^6.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.3", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "sockjs-client": "1.4.0", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, "requires": { - "ms": "2.0.0" + "@babel/highlight": "^7.0.0" } }, - "ms": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "browserslist": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" + } + }, + "caniuse-lite": { + "version": "1.0.30001011", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", + "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "electron-to-chromium": { + "version": "1.3.311", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.311.tgz", + "integrity": "sha512-7GH6RKCzziLzJ9ejmbiBEdzHZsc6C3eRpav14dmRfTWMpNgMqpP1ukw/FU/Le2fR+ep642naq7a23xNdmh2s+A==", + "dev": true + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "spdy-transport": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", - "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", - "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { - "ms": "2.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - } - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", - "dev": true - }, - "state-toggle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", - "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } } } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "react-dnd": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.6.0.tgz", + "integrity": "sha1-f6JWds+CfViokSk+PBq1naACVFo=", "requires": { - "readable-stream": "^2.0.1" + "disposables": "^1.0.1", + "dnd-core": "^2.6.0", + "hoist-non-react-statics": "^2.1.0", + "invariant": "^2.1.0", + "lodash": "^4.2.0", + "prop-types": "^15.5.10" } }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, + "react-dnd-html5-backend": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.6.0.tgz", + "integrity": "sha1-WQzRzKeEQbsnTt1XH+9MCxbdz44=", "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "lodash": "^4.2.0" } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, + "react-dropzone": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-4.3.0.tgz", + "integrity": "sha512-ULfrLaTSsd8BDa9KVAGCueuq1AN3L14dtMsGGqtP0UwYyjG4Vhf158f/ITSHuSPYkZXbvfcIiOlZsH+e3QWm+Q==", "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "attr-accept": "^1.1.3", + "prop-types": "^15.5.7" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "react-error-overlay": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.3.tgz", + "integrity": "sha512-bOUvMWFQVk5oz8Ded9Xb7WVdEi3QGLC8tH7HmYP0Fdp4Bn3qw0tRFmr5TW6mvahzvmrK4a6bqWGfCevBflP+Xw==", + "dev": true }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, + "react-intl": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", + "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" + "hoist-non-react-statics": "^3.3.0", + "intl-format-cache": "^2.0.5", + "intl-messageformat": "^2.1.0", + "intl-relativeformat": "^2.1.0", + "invariant": "^2.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, + "hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", "requires": { - "ansi-regex": "^3.0.0" + "react-is": "^16.7.0" } } } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } + "react-is": { + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "react-markdown": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz", + "integrity": "sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw==", "requires": { - "safe-buffer": "~5.1.0" + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^5.0.0", + "unified": "^6.1.5", + "unist-util-visit": "^1.3.0", + "xtend": "^4.0.1" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", "requires": { - "ansi-regex": "^2.0.0" + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "mini-create-react-context": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", + "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", + "requires": { + "@babel/runtime": "^7.5.5", + "tiny-warning": "^1.0.3" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + } + } + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", "requires": { - "is-utf8": "^0.2.0" + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", "requires": { - "get-stdin": "^4.0.1" + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" }, "dependencies": { - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + "@babel/runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" } } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } }, - "style-loader": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz", - "integrity": "sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg==", + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "pinkie-promise": "^2.0.0" } } } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "has-flag": "^3.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "svg-baker": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.4.1.tgz", - "integrity": "sha512-Y14nrVtN8IMYZ5K8yNlepdGwfAi0GClqaoSMTtYsQxFfaobtyDTM816lTWMA5tbbXDbih1frv7AGil54dtX6YA==", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { - "bluebird": "^3.5.0", - "clone": "^2.1.1", - "he": "^1.1.1", - "image-size": "^0.5.1", - "loader-utils": "^1.1.0", - "merge-options": "1.0.1", - "micromatch": "3.1.0", - "postcss": "^5.2.17", - "postcss-prefix-selector": "^1.6.0", - "posthtml-rename-id": "^1.0", - "posthtml-svg-mode": "^1.0.3", - "query-string": "^4.3.2", - "traverse": "^0.6.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -16574,24 +11770,16 @@ "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" }, "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } } } }, @@ -16599,22 +11787,16 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -16629,14 +11811,25 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -16645,6 +11838,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -16655,6 +11849,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -16663,6 +11858,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -16673,26 +11869,26 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -16702,75 +11898,85 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } } }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -16779,6 +11985,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -16788,716 +11995,1137 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, "micromatch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", - "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", - "braces": "^2.2.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "extglob": "^2.0.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", "fragment-cache": "^0.2.1", - "kind-of": "^5.0.2", - "nanomatch": "^1.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "to-regex": "^3.0.2" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "regenerator-runtime": "^0.13.4" } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "requires": { + "define-properties": "^1.1.2" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" } } }, - "svg-baker-runtime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/svg-baker-runtime/-/svg-baker-runtime-1.4.1.tgz", - "integrity": "sha512-4HLs8dU5kP4+zWix3MoZUge7kSVO6VCg14dLJWVIRWZx1vik21k/h5T620VXRoIyn0nw8g1R8Qk+VvW9BLOOPA==", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "resolve": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "requires": { - "deepmerge": "1.3.2", - "mitt": "1.1.2", - "svg-baker": "^1.4.0" + "path-parse": "^1.0.6" } }, - "svg-sprite-loader": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/svg-sprite-loader/-/svg-sprite-loader-4.1.6.tgz", - "integrity": "sha512-fVLDJ36GUfLmeZEB+RFq/OmiEThifZsQQ+8YSmbpOtyvlkLBbnGydYG6IHJehgbpy58898JyoHk+krd6C+6dXg==", + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, "requires": { - "bluebird": "^3.5.0", - "deepmerge": "1.3.2", - "domready": "1.0.8", - "escape-string-regexp": "1.0.5", - "html-webpack-plugin": "^3.2.0", - "loader-utils": "^1.1.0", - "svg-baker": "^1.4.1", - "svg-baker-runtime": "1.4.1", - "url-slug": "2.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true } } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "resolve-pathname": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", + "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "table": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.1.tgz", - "integrity": "sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==", + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "lowercase-keys": "^1.0.0" + } + }, + "ress": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ress/-/ress-1.2.2.tgz", + "integrity": "sha1-T9AGgcjTzqp59d4eVKqtFWF+l3c=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "run-series": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.8.tgz", + "integrity": "sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==" + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "ansi-regex": "^4.1.0" + "amdefine": ">=0.0.4" } } } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" + "node-forge": "0.9.0" } }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "execa": "^0.7.0" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "terser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.0.tgz", - "integrity": "sha512-oDG16n2WKm27JO8h4y/w3iqBGAOSCtq7k8dRmrn4Wf9NouL0b2WpMHGChFGZq4nFAQy1FsNJrVQHfurXOSTmOA==", + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } } } }, - "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ms": "2.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true } } }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", - "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", - "dev": true, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tiny-invariant": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.4.tgz", - "integrity": "sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g==" - }, - "tiny-warning": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz", - "integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==" + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "shebang-regex": "^1.0.0" } }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "to-camel-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", - "integrity": "sha1-GlYFSy+daWKYzmamCJcyK29CPkY=", + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "dev": true, "requires": { - "to-space-case": "^1.0.0" + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "to-no-case": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", - "integrity": "sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo=" + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, "requires": { - "kind-of": "^3.0.2" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "to-regex-range": { + "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { - "kind-of": "^3.0.2" + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "", + "dev": true } } }, - "to-space-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", - "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=", - "requires": { - "to-no-case": "^1.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=" - }, - "topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { - "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" - } + "kind-of": "^3.2.0" } }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "dev": true, "requires": { - "nopt": "~1.0.10" + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" }, "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "abbrev": "1" + "websocket-driver": ">=0.5.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" } } } }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { - "punycode": "^2.1.0" + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" } }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "trim-trailing-lines": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", - "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==" + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true }, - "trough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", - "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==" + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", "requires": { - "glob": "^7.1.2" + "async": "^2.5.0", + "loader-utils": "^1.1.0" } }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "tslib": "^1.8.1" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "prelude-ls": "~1.1.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, - "typed-css-modules": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/typed-css-modules/-/typed-css-modules-0.5.1.tgz", - "integrity": "sha512-7wt3NfhrPXEnUguk2qv4YdL1k/G/AI4we9wkbQ2F+ZmMNH2xISMvNR8W46GiJEVE0t4RZHDnxDQGK2RhK4P0Wg==", - "requires": { - "@types/css-modules-loader-core": "^1.1.0", - "camelcase": "^5.3.1", - "chalk": "^2.1.0", - "chokidar": "^2.1.2", - "css-modules-loader-core": "^1.1.0", - "glob": "^7.1.2", - "is-there": "^4.4.2", - "mkdirp": "^0.5.1", - "yargs": "^8.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "requires": { + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" + }, + "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -17506,1687 +13134,2226 @@ "ms": "2.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "spdy-transport": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", + "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", + "requires": { + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "ms": "2.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + } + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "locate-path": "^2.0.0" + "is-descriptor": "^0.1.0" } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { - "kind-of": "^6.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "kind-of": "^6.0.0" + "has-symbols": "^1.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "is-extglob": "^2.1.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "has-symbols": "^1.0.1" } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "p-try": "^1.0.0" + "has-symbols": "^1.0.1" } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + } + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz", + "integrity": "sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "requires": { - "p-limit": "^1.1.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, "requires": { - "pify": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "read-pkg-up": { + "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, - "typescript": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", - "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "ua-parser-js": { - "version": "0.7.19", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", - "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "setimmediate": "^1.0.4" } }, - "uglify-to-browserify": { + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tiny-invariant": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.4.tgz", + "integrity": "sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g==" + }, + "tiny-warning": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz", + "integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==" }, - "undefsafe": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", - "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "debug": "^2.2.0" + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "to-camel-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", + "integrity": "sha1-GlYFSy+daWKYzmamCJcyK29CPkY=", + "requires": { + "to-space-case": "^1.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-no-case": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", + "integrity": "sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "ms": "2.0.0" + "kind-of": "^3.0.2" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" + "to-space-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", + "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=", + "requires": { + "to-no-case": "^1.0.0" + } }, - "unherit": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", - "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", "requires": { - "inherits": "^2.0.1", - "xtend": "^4.0.1" + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + } } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==" + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==" + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-trailing-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", + "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" }, - "unidecode": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/unidecode/-/unidecode-0.1.8.tgz", - "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=" + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" }, - "unified": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", - "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^1.1.0", - "trough": "^1.0.0", - "vfile": "^2.0.0", - "x-is-string": "^0.1.0" + "glob": "^7.1.2" } }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "minimist": "^1.2.0" } }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, "requires": { - "unique-slug": "^2.0.0" + "tslib": "^1.8.1" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "imurmurhash": "^0.1.4" + "safe-buffer": "^5.0.1" } }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "prelude-ls": "~1.1.2" } }, - "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, - "unist-util-remove-position": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", - "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { - "unist-util-visit": "^1.1.0" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" - }, - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "typed-css-modules": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/typed-css-modules/-/typed-css-modules-0.6.4.tgz", + "integrity": "sha512-2bL0dWY66wLGcz766HAwqJl4mnlUrx7D/dyUD9SPnab2QM1OsE6U842QhZhkEI5EoQdNziSLWqetHskdZ3MCxw==", "requires": { - "unist-util-visit-parents": "^2.0.0" + "@types/css-modules-loader-core": "^1.1.0", + "camelcase": "^5.3.1", + "chalk": "^2.1.0", + "chokidar": "^3.4.0", + "css-modules-loader-core": "^1.1.0", + "glob": "^7.1.2", + "is-there": "^4.4.2", + "mkdirp": "^0.5.1", + "yargs": "^15.3.1" }, "dependencies": { - "unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { - "unist-util-is": "^3.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } - } - } - }, - "unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "is-typedarray": "^1.0.0" } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "requires": { - "upper-case": "^1.1.1" - } + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } + "ua-parser-js": { + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", + "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "debug": "^2.2.0" }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - } - } + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "inherits": "^2.0.0", + "xtend": "^4.0.0" } }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" }, - "url-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz", - "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "requires": { - "unidecode": "0.1.8" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" } }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { + "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", - "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vfile": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", - "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, "requires": { - "is-buffer": "^1.1.4", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^1.0.0", - "vfile-message": "^1.0.0" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, - "vfile-location": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", - "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, - "vfile-message": { + "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", - "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", - "requires": { - "unist-util-stringify-position": "^1.1.1" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { - "indexof": "0.0.1" + "unique-slug": "^2.0.0" } }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { - "browser-process-hrtime": "^0.1.2" + "imurmurhash": "^0.1.4" } }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "makeerror": "1.0.x" + "crypto-random-string": "^2.0.0" } }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, - "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - } + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "unist-util-visit": "^1.1.0" } }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "requires": { - "minimalistic-assert": "^1.0.0" + "unist-util-visit-parents": "^2.0.0" + }, + "dependencies": { + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } } }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "unist-util-visit-parents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" }, - "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", - "dev": true - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "isarray": "1.0.0" } } } }, - "fill-range": { + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, + "update-notifier": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", + "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, + "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "optional": true }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "optional": true, "requires": { - "kind-of": "^6.0.0" + "fill-range": "^7.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", "dev": true, + "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "optional": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "to-regex-range": "^5.0.1" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, + "optional": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "is-glob": "^4.0.1" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "optional": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "binary-extensions": "^2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, + "optional": true, "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" + "is-extglob": "^2.1.1" } }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, + "optional": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "picomatch": "^2.2.1" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", "dev": true, + "optional": true, "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" + "chokidar": "^2.1.8" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "ms": "2.0.0" } }, "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", + "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "pump": "^3.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "kind-of": "^6.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "kind-of": "^6.0.0" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, - "which-module": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true } } }, @@ -19214,17 +15381,17 @@ } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true } } }, "webpack-dev-server": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", - "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -19235,119 +15402,46 @@ "debug": "^4.1.1", "del": "^4.1.1", "express": "^4.17.1", - "html-entities": "^1.2.1", + "html-entities": "^1.3.1", "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.4", + "loglevel": "^1.6.8", "opn": "^5.5.0", "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "pump": "^3.0.0" + "ms": "^2.1.1" } }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "import-local": { @@ -19360,59 +15454,10 @@ "resolve-cwd": "^2.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -19438,9 +15483,9 @@ "dev": true }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -19464,27 +15509,6 @@ "wbuf": "^1.7.3" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -19494,12 +15518,6 @@ "has-flag": "^3.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -19508,36 +15526,6 @@ "requires": { "async-limiter": "~1.0.0" } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -19580,6 +15568,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -19588,7 +15577,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -19609,37 +15599,11 @@ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, "whatwg-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -19649,9 +15613,9 @@ } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { "version": "1.1.3", @@ -19662,70 +15626,65 @@ } }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.0" } } } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, "requires": { "errno": "~0.1.7" } @@ -19740,12 +15699,70 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { @@ -19763,23 +15780,15 @@ } }, "write-file-atomic": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", - "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "x-is-string": { @@ -19788,15 +15797,9 @@ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xmlbuilder": { @@ -19805,9 +15808,9 @@ "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" }, "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", "dev": true }, "xmlrpc": { @@ -19825,9 +15828,9 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "2.1.2", @@ -19835,45 +15838,94 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" } } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yauzl": { diff --git a/package.json b/package.json index 6d2681b0a..8017e1554 100644 --- a/package.json +++ b/package.json @@ -21,29 +21,27 @@ "start:development:client": "node client/scripts/start.js", "start:development:server": "NODE_ENV=development nodemon server/bin/start.js", "start:production": "UPDATED_SCRIPT=start npm run deprecated-warning && npm start", - "start:watch": "UPDATED_SCRIPT=start:development:client npm run deprecated-warning && npm run start:development:client", - "test": "node client/scripts/test.js --env=jsdom" + "start:watch": "UPDATED_SCRIPT=start:development:client npm run deprecated-warning && npm run start:development:client" }, "dependencies": { - "@babel/core": "^7.7.4", - "@babel/preset-env": "^7.7.4", - "@babel/preset-react": "^7.7.4", - "@babel/preset-typescript": "^7.7.4", - "@types/react-dom": "^16.9.4", + "@babel/core": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/preset-react": "^7.10.4", + "@babel/preset-typescript": "^7.10.4", + "@types/react-dom": "^16.9.8", "@types/react-intl": "^2.3.18", - "@typescript-eslint/parser": "^1.13.0", "argon2": "^0.24.1", "autoprefixer": "^8.6.5", - "axios": "^0.19.0", - "babel-eslint": "^10.0.3", + "axios": "^0.19.2", + "babel-eslint": "^10.1.0", "babel-loader": "^8.0.6", "body-parser": "^1.18.3", "case-sensitive-paths-webpack-plugin": "2.1.2", "chalk": "^2.3.2", "classnames": "^2.2.6", - "clipboard": "^2.0.4", + "clipboard": "^2.0.6", "compression": "^1.7.3", - "cookie-parser": "^1.4.3", + "cookie-parser": "^1.4.5", "css-loader": "^3.2.0", "d3": "^3.5.17", "debug": "^3.2.6", @@ -54,14 +52,14 @@ "flood-ui-kit": "^0.1.11", "flux": "^3.1.3", "fs-extra": "^5.0.0", - "geoip-country": "^3.3.1", - "html-webpack-plugin": "^4.0.0-beta.11", + "geoip-country": "^3.4.1", + "html-webpack-plugin": "^4.3.0", "joi": "^13.7.0", "jsonwebtoken": "^8.4.0", - "lodash": "^4.17.15", - "mkdirp": "^0.5.1", - "moment": "^2.22.2", - "morgan": "^1.9.1", + "lodash": "^4.17.19", + "mkdirp": "^0.5.5", + "moment": "^2.27.0", + "morgan": "^1.10.0", "multer": "^1.4.2", "mv": "^2.1.1", "nedb": "^1.8.0", @@ -69,68 +67,62 @@ "object-assign": "4.1.1", "ospath": "^1.2.2", "pascal-case": "^2.0.1", - "passport": "^0.4.0", + "passport": "^0.4.1", "passport-jwt": "^4.0.0", "postcss-loader": "2.1.3", - "promise": "^8.0.2", - "pug": "^2.0.4", - "react": "^16.12.0", + "promise": "^8.1.0", + "react": "^16.13.1", "react-custom-scrollbars": "^4.2.1", "react-dnd": "^2.6.0", "react-dnd-html5-backend": "^2.6.0", - "react-dom": "^16.12.0", + "react-dom": "^16.13.1", "react-dropzone": "^4.3.0", "react-intl": "^2.9.0", - "react-markdown": "^4.2.2", - "react-router": "^5.1.2", - "react-router-dom": "^5.1.2", - "react-transition-group": "^4.3.0", + "react-markdown": "^4.3.1", + "react-router": "^5.2.0", + "react-router-dom": "^5.2.0", + "react-transition-group": "^4.4.1", "ress": "^1.2.2", "rimraf": "^2.7.1", "run-series": "^1.1.6", - "sass-loader": "^7.3.1", - "saxen": "8.1.x", "source-map-loader": "^0.2.4", + "sass-loader": "^7.3.1", + "saxen": "^8.1.2", "spdy": "^3.4.7", "style-loader": "0.20.3", - "svg-sprite-loader": "^4.1.6", "tar-stream": "^1.6.2", - "terser-webpack-plugin": "^1.4.1", - "typed-css-modules": "^0.5.1", + "typed-css-modules": "^0.6.4", "url-loader": "^2.3.0", "xmlrpc": "^1.3.2" }, "devDependencies": { - "@babel/plugin-proposal-class-properties": "^7.7.4", - "@types/classnames": "^2.2.9", - "@types/keymirror": "^0.1.1", - "@types/node": "^11.15.2", - "@types/react": "^16.9.13", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@types/classnames": "^2.2.10", + "@types/react": "^16.9.44", "@types/react-router-dom": "^4.3.5", - "@types/react-transition-group": "^2.0.16", "@typescript-eslint/eslint-plugin": "^1.13.0", - "babel-jest": "22.4.3", - "eslint": "^5.8.0", + "@typescript-eslint/parser": "^1.13.0", + "acorn": "^7.4.0", + "eslint": "^5.16.0", "eslint-config-airbnb": "^17.1.1", "eslint-config-prettier": "^4.3.0", - "eslint-config-react-app": "^2.1.0", + "eslint-config-react-app": "^4.0.1", "eslint-import-resolver-webpack": "^0.11.1", "eslint-loader": "^2.2.1", "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-react": "^7.16.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.20.5", + "eslint-plugin-react-hooks": "^1.7.0", "glob": "^7.1.6", - "jest": "22.4.3", - "jsdoc": "^3.6.3", + "jsdoc": "^3.6.5", "minami": "^1.2.3", - "nodemon": "^1.19.4", + "nodemon": "^2.0.4", "prettier": "1.14.2", "react-dev-utils": "^9.1.0", - "typescript": "^3.7.2", - "webpack": "^4.41.2", - "webpack-cli": "^3.3.10", - "webpack-dev-server": "^3.9.0", + "typescript": "^3.9.7", + "webpack": "^4.44.1", + "webpack-dev-server": "^3.11.0", "webpack-manifest-plugin": "^2.2.0" }, "eslintConfig": { From 4ea381049a6e788a5470fa918df227e0adfe3113 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Mon, 3 Aug 2020 22:20:19 +0800 Subject: [PATCH 002/651] Update dependencies (non-breaking) This change uses the best-effort approach to update dependencies. Changelogs of each dependency have been manually reviewed and all dependency that doesn't *actually* have BREAKING changes or have minimal changes are bumped to their latest versions. In most cases, the maintainers of those dependencies don't actually understand semvar and inappropriately bumped major version for trivial, non-breaking changes. In other cases, the minimum supported Node version is upgraded, which is indeed breaking but that's not a concern for this project as a recent Node version is always expected. Or, the dependency does have certain breaking changes but those changes are not relevant to functions used by this project. Also bumped versions of dependencies if only minimal changes are required: * autoprefixer: transform from "browsers" property to browserslist * prettier: reformated sources after update Signed-off-by: Jesse Chan --- client/config/env.js | 6 +- client/config/paths.js | 2 +- client/config/webpack.config.dev.js | 8 +- client/config/webpack.config.prod.js | 8 +- client/scripts/build.js | 10 +- client/scripts/deprecated-warning.js | 4 +- client/scripts/start.js | 10 +- .../scripts/svg-react-component-generator.js | 4 +- client/src/javascript/actions/AuthActions.js | 30 +- .../src/javascript/actions/ClientActions.js | 16 +- client/src/javascript/actions/FloodActions.js | 16 +- .../src/javascript/actions/SettingsActions.js | 56 +- .../src/javascript/actions/TorrentActions.js | 52 +- client/src/javascript/actions/UIActions.js | 22 +- client/src/javascript/app.tsx | 29 +- .../src/javascript/components/AppWrapper.js | 6 +- .../javascript/components/alerts/Alerts.js | 2 +- .../javascript/components/auth/AuthForm.js | 4 +- .../general/ClientConnectionInterruption.js | 2 +- .../components/general/CustomScrollbars.js | 4 +- .../general/GlobalContextMenuMountPoint.js | 2 +- .../components/general/ListViewport.js | 8 +- .../components/general/NavigationList.js | 2 +- .../RtorrentConnectionTypeSelection.js | 2 +- .../components/general/SortableList.js | 4 +- .../components/general/SortableListItem.js | 2 +- .../general/SortableListItemDragLayer.js | 2 +- .../javascript/components/general/Tooltip.js | 6 +- .../components/general/WindowTitle.js | 83 +- .../general/filesystem/DirectoryFileList.js | 4 +- .../general/filesystem/DirectoryTree.js | 2 +- .../general/filesystem/DirectoryTreeNode.js | 4 +- .../general/filesystem/FilesystemBrowser.js | 6 +- .../general/filesystem/PriorityMeter.js | 2 +- .../general/filesystem/TorrentDestination.js | 16 +- .../general/form-elements/Dropdown.js | 2 +- .../general/form-elements/TextboxRepeater.js | 8 +- .../src/javascript/components/modals/Modal.js | 4 +- .../components/modals/ModalActions.js | 2 +- .../javascript/components/modals/ModalTabs.js | 2 +- .../javascript/components/modals/Modals.js | 2 +- .../add-torrents-modal/AddTorrentsByFile.js | 12 +- .../add-torrents-modal/AddTorrentsByURL.js | 2 +- .../modals/feeds-modal/DownloadRulesTab.js | 12 +- .../components/modals/feeds-modal/FeedsTab.js | 16 +- .../RemoveTorrentsModal.js | 2 +- .../modals/set-tags-modal/SetTagsModal.js | 2 +- .../modals/settings-modal/AboutTab.js | 2 +- .../modals/settings-modal/AuthTab.js | 6 +- .../modals/settings-modal/BandwidthTab.js | 4 +- .../modals/settings-modal/DiskUsageTab.js | 20 +- .../modals/settings-modal/SettingsModal.js | 14 +- .../components/modals/settings-modal/UITab.js | 12 +- .../torrent-details-modal/NavigationList.js | 2 +- .../torrent-details-modal/TorrentFiles.js | 14 +- .../TorrentGeneralInfo.js | 2 +- .../torrent-details-modal/TorrentHeading.js | 2 +- .../torrent-details-modal/TorrentMediainfo.js | 4 +- .../torrent-details-modal/TorrentPeers.js | 2 +- .../torrent-details-modal/TorrentTrackers.js | 2 +- .../components/sidebar/DiskUsage.js | 6 +- .../components/sidebar/FeedsButton.js | 4 +- .../components/sidebar/NotificationsButton.js | 6 +- .../components/sidebar/SearchTorrents.js | 4 +- .../components/sidebar/SettingsButton.js | 4 +- .../components/sidebar/SidebarFilter.js | 2 +- .../components/sidebar/SpeedLimitDropdown.js | 4 +- .../components/sidebar/StatusFilters.js | 2 +- .../components/sidebar/TagFilters.js | 2 +- .../components/sidebar/TrackerFilters.js | 2 +- .../components/sidebar/TransferData.js | 8 +- .../components/sidebar/TransferRateGraph.js | 12 +- .../components/torrent-list/SortDropdown.js | 4 +- .../components/torrent-list/TableHeading.js | 10 +- .../components/torrent-list/Torrent.js | 32 +- .../components/torrent-list/TorrentDetail.js | 18 +- .../components/torrent-list/TorrentList.js | 22 +- client/src/javascript/i18n/zh.js | 700 +-- client/src/javascript/stores/AlertStore.js | 2 +- client/src/javascript/stores/AuthStore.js | 4 +- client/src/javascript/stores/BaseStore.js | 2 +- .../javascript/stores/ClientStatusStore.js | 2 +- .../src/javascript/stores/DiskUsageStore.js | 2 +- .../src/javascript/stores/FeedMonitorStore.js | 2 +- .../javascript/stores/NotificationStore.js | 2 +- client/src/javascript/stores/SettingsStore.js | 6 +- .../javascript/stores/TorrentFilterStore.js | 6 +- client/src/javascript/stores/TorrentStore.js | 18 +- .../javascript/stores/TransferDataStore.js | 4 +- client/src/javascript/stores/UIStore.js | 8 +- client/src/javascript/util/connectStores.tsx | 105 +- client/src/javascript/util/filterTorrents.js | 6 +- client/src/javascript/util/searchTorrents.js | 2 +- client/src/javascript/util/sortTorrents.js | 2 +- .../src/javascript/util/torrentStatusIcons.js | 4 +- client/src/javascript/util/validators.js | 8 +- package-lock.json | 3899 +++++++++++------ package.json | 55 +- scripts/prettier.js | 14 +- server/bin/enforce-prerequisites.js | 4 +- server/bin/migrations/fix-is-admin-flag.js | 4 +- .../migrations/per-user-rtorrent-instances.js | 4 +- server/bin/migrations/run.js | 2 +- server/bin/start.js | 2 +- server/bin/web-server.js | 4 +- server/config/passport.js | 4 +- server/constants/fileListPropMap.js | 2 +- server/constants/torrentListPropMap.js | 20 +- server/middleware/booleanCoerce.js | 2 +- server/middleware/clientActivityStream.js | 12 +- server/middleware/requireAdmin.js | 5 +- server/models/ClientRequest.js | 39 +- server/models/Feed.js | 2 +- server/models/Filesystem.js | 2 +- server/models/HistoryEra.js | 8 +- server/models/Users.js | 10 +- server/models/client.js | 32 +- server/models/settings.js | 8 +- server/routes/client.js | 2 +- server/services/clientGatewayService.js | 14 +- server/services/clientRequestManager.js | 4 +- server/services/diskUsageService.js | 22 +- server/services/feedService.js | 36 +- server/services/historyService.js | 2 +- server/services/index.js | 26 +- server/services/notificationService.js | 6 +- server/services/taxonomyService.js | 10 +- server/services/torrentService.js | 10 +- server/util/ajaxUtil.js | 2 +- server/util/clientResponseUtil.js | 6 +- server/util/methodCallUtil.js | 2 +- server/util/rTorrentDeserializer.js | 8 +- server/util/scgiUtil.js | 6 +- shared/util/formatUtil.js | 6 +- shared/util/objectUtil.js | 4 +- shared/util/stringUtil.js | 4 +- 136 files changed, 3659 insertions(+), 2260 deletions(-) diff --git a/client/config/env.js b/client/config/env.js index 09fca14a8..5a0791140 100644 --- a/client/config/env.js +++ b/client/config/env.js @@ -19,8 +19,8 @@ delete require.cache[require.resolve('./paths')]; const appDirectory = fs.realpathSync(process.cwd()); process.env.NODE_PATH = (process.env.NODE_PATH || '') .split(path.delimiter) - .filter(folder => folder && !path.isAbsolute(folder)) - .map(folder => path.resolve(appDirectory, folder)) + .filter((folder) => folder && !path.isAbsolute(folder)) + .map((folder) => path.resolve(appDirectory, folder)) .join(path.delimiter); // Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be @@ -30,7 +30,7 @@ const environment = process.env.NODE_ENV || 'development'; function getClientEnvironment() { const raw = Object.keys(process.env) - .filter(key => REACT_APP.test(key)) + .filter((key) => REACT_APP.test(key)) .reduce( (env, key) => { env[key] = process.env[key]; diff --git a/client/config/paths.js b/client/config/paths.js index 856f2cecb..da412ed37 100644 --- a/client/config/paths.js +++ b/client/config/paths.js @@ -5,7 +5,7 @@ const userConfig = require('../../config'); // Make sure any symlinks in the project folder are resolved: // https://github.com/facebookincubator/create-react-app/issues/637 const appDirectory = fs.realpathSync(process.cwd()); -const resolveApp = relativePath => path.resolve(appDirectory, relativePath); +const resolveApp = (relativePath) => path.resolve(appDirectory, relativePath); const ensureSlash = (questionablePath, needsSlash) => { const hasSlash = questionablePath.endsWith('/'); if (hasSlash && !needsSlash) { diff --git a/client/config/webpack.config.dev.js b/client/config/webpack.config.dev.js index f0c7082b8..8ddca47fc 100644 --- a/client/config/webpack.config.dev.js +++ b/client/config/webpack.config.dev.js @@ -68,11 +68,7 @@ module.exports = { // Necessary for external CSS imports to work // https://github.com/facebookincubator/create-react-app/issues/2677 ident: 'postcss', - plugins: () => [ - autoprefixer({ - browsers: ['>1%'], - }), - ], + plugins: () => [autoprefixer()], }, }, { @@ -172,7 +168,7 @@ module.exports = { // In development, we always serve from the root. This makes config easier. publicPath: '/', // Point sourcemap entries to original disk location (format as URL on Windows) - devtoolModuleFilenameTemplate: info => path.resolve(info.absoluteResourcePath).replace(/\\/g, '/'), + devtoolModuleFilenameTemplate: (info) => path.resolve(info.absoluteResourcePath).replace(/\\/g, '/'), }, plugins: [ // Makes some environment variables available in index.html. diff --git a/client/config/webpack.config.prod.js b/client/config/webpack.config.prod.js index 02d4d3d94..84d9e93a8 100644 --- a/client/config/webpack.config.prod.js +++ b/client/config/webpack.config.prod.js @@ -58,11 +58,7 @@ module.exports = { // Necessary for external CSS imports to work // https://github.com/facebookincubator/create-react-app/issues/2677 ident: 'postcss', - plugins: () => [ - autoprefixer({ - browsers: ['>1%'], - }), - ], + plugins: () => [autoprefixer()], }, }, { @@ -157,7 +153,7 @@ module.exports = { // It requires a trailing slash, or the file assets will get an incorrect path. publicPath: paths.servedPath, // Point sourcemap entries to original disk location (format as URL on Windows) - devtoolModuleFilenameTemplate: info => path.relative(paths.appSrc, info.absoluteResourcePath).replace(/\\/g, '/'), + devtoolModuleFilenameTemplate: (info) => path.relative(paths.appSrc, info.absoluteResourcePath).replace(/\\/g, '/'), }, plugins: [ // Makes some environment variables available in index.html. diff --git a/client/scripts/build.js b/client/scripts/build.js index 9c86d1914..e30c8c183 100644 --- a/client/scripts/build.js +++ b/client/scripts/build.js @@ -5,7 +5,7 @@ process.env.NODE_ENV = 'production'; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { +process.on('unhandledRejection', (err) => { throw err; }); @@ -35,12 +35,12 @@ if (!checkRequiredFiles([paths.appHtml, paths.appIndex])) { const copyPublicFolder = () => { fs.copySync(paths.appPublic, paths.appBuild, { dereference: true, - filter: file => file !== paths.appHtml, + filter: (file) => file !== paths.appHtml, }); }; // Create the production build and print the deployment instructions. -const build = previousFileSizes => { +const build = (previousFileSizes) => { console.log('Creating an optimized production build...'); const compiler = webpack(config); @@ -77,7 +77,7 @@ const build = previousFileSizes => { // First, read the current file sizes in build directory. // This lets us display how much they changed later. measureFileSizesBeforeBuild(paths.appBuild) - .then(previousFileSizes => { + .then((previousFileSizes) => { // Remove all content but keep the directory so that // if you're in it, you don't end up in Trash fs.emptyDirSync(paths.appBuild); @@ -106,7 +106,7 @@ measureFileSizesBeforeBuild(paths.appBuild) WARN_AFTER_CHUNK_GZIP_SIZE, ); }, - err => { + (err) => { console.log(chalk.red('Failed to compile.\n')); console.log(`${err.message || err}\n`); process.exit(1); diff --git a/client/scripts/deprecated-warning.js b/client/scripts/deprecated-warning.js index 23681e226..27012af26 100644 --- a/client/scripts/deprecated-warning.js +++ b/client/scripts/deprecated-warning.js @@ -19,11 +19,11 @@ const longestMessageLength = messageDefs.reduce((accumulator, messageDef) => { }, 0); const paddingLength = 5; const verticalPadding = paddingLength * 2 + longestMessageLength - 1; -const getSpaces = numSpaces => Array(numSpaces).join(' '); +const getSpaces = (numSpaces) => Array(numSpaces).join(' '); console.log('\n'); console.log(chalk.bgRed(getSpaces(verticalPadding))); -messageDefs.forEach(messageDef => { +messageDefs.forEach((messageDef) => { let leftPadding = paddingLength; let rightPadding = paddingLength; const lengthDiff = longestMessageLength - messageDef.message.length; diff --git a/client/scripts/start.js b/client/scripts/start.js index f0d9dc232..78f757176 100644 --- a/client/scripts/start.js +++ b/client/scripts/start.js @@ -5,7 +5,7 @@ process.env.NODE_ENV = 'development'; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { +process.on('unhandledRejection', (err) => { throw err; }); @@ -38,7 +38,7 @@ const HOST = process.env.DEV_SERVER_HOST || '0.0.0.0'; // We attempt to use the default port but if it is busy, we offer the user to // run on a different port. `detect()` Promise resolves to the next free port. choosePort(HOST, DEFAULT_PORT) - .then(port => { + .then((port) => { if (port == null) { // We have not found a port. return; @@ -56,7 +56,7 @@ choosePort(HOST, DEFAULT_PORT) const serverConfig = createDevServerConfig(proxyConfig, urls.lanUrlForConfig); const devServer = new WebpackDevServer(compiler, serverConfig); // Launch WebpackDevServer. - devServer.listen(port, HOST, err => { + devServer.listen(port, HOST, (err) => { if (err) { return console.log(err); } @@ -67,14 +67,14 @@ choosePort(HOST, DEFAULT_PORT) openBrowser(urls.localUrlForBrowser); }); - ['SIGINT', 'SIGTERM'].forEach(sig => { + ['SIGINT', 'SIGTERM'].forEach((sig) => { process.on(sig, () => { devServer.close(); process.exit(); }); }); }) - .catch(err => { + .catch((err) => { if (err && err.message) { console.log(err.message); } diff --git a/client/scripts/svg-react-component-generator.js b/client/scripts/svg-react-component-generator.js index 94ae09f46..cf9164ea3 100644 --- a/client/scripts/svg-react-component-generator.js +++ b/client/scripts/svg-react-component-generator.js @@ -4,14 +4,14 @@ const {stringifyRequest} = require('loader-utils'); const stringifiedRegexp = /^'|".*'|"$/; -const stringify = content => { +const stringify = (content) => { if (typeof content === 'string' && stringifiedRegexp.test(content)) { return content; } return JSON.stringify(content, null, 2); }; -const stringifySymbol = symbol => +const stringifySymbol = (symbol) => stringify({ id: symbol.id, use: symbol.useId, diff --git a/client/src/javascript/actions/AuthActions.js b/client/src/javascript/actions/AuthActions.js index 41659efab..b9b5c3f94 100644 --- a/client/src/javascript/actions/AuthActions.js +++ b/client/src/javascript/actions/AuthActions.js @@ -10,18 +10,18 @@ import SettingsActions from './SettingsActions'; const baseURI = ConfigStore.getBaseURI(); const AuthActions = { - authenticate: credentials => + authenticate: (credentials) => axios .post(`${baseURI}auth/authenticate`, credentials) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_LOGIN_SUCCESS, data, }); }, - error => { + (error) => { // TODO: Handle errors consistently in API, then create a client-side class to get meaningful messages from // server's response. let errorMessage; @@ -50,11 +50,11 @@ const AuthActions = { ]); }), - createUser: credentials => + createUser: (credentials) => axios .put(`${baseURI}auth/users`, credentials) .then((json = {}) => json.data) - .then(data => { + .then((data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_CREATE_USER_SUCCESS, data, @@ -76,12 +76,12 @@ const AuthActions = { .then((json = {}) => json.data); }, - deleteUser: username => + deleteUser: (username) => axios .delete(`${baseURI}auth/users/${encodeURIComponent(username)}`) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_DELETE_USER_SUCCESS, data: { @@ -90,7 +90,7 @@ const AuthActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_DELETE_USER_ERROR, error: { @@ -105,7 +105,7 @@ const AuthActions = { axios .get(`${baseURI}auth/users`) .then((json = {}) => json.data) - .then(data => { + .then((data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_LIST_USERS_SUCCESS, data, @@ -119,7 +119,7 @@ const AuthActions = { type: ActionTypes.AUTH_LOGOUT_SUCCESS, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_LOGOUT_ERROR, error, @@ -127,18 +127,18 @@ const AuthActions = { }, ), - register: credentials => + register: (credentials) => axios .post(`${baseURI}auth/register`, credentials) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_REGISTER_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_REGISTER_ERROR, error: error.response.data.message, @@ -151,7 +151,7 @@ const AuthActions = { .get(`${baseURI}auth/verify?${Date.now()}`) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_VERIFY_SUCCESS, data, @@ -161,7 +161,7 @@ const AuthActions = { return data; }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.AUTH_VERIFY_ERROR, error, diff --git a/client/src/javascript/actions/ClientActions.js b/client/src/javascript/actions/ClientActions.js index 00cd7585d..ac8ac97c6 100644 --- a/client/src/javascript/actions/ClientActions.js +++ b/client/src/javascript/actions/ClientActions.js @@ -7,18 +7,18 @@ import ConfigStore from '../stores/ConfigStore'; const baseURI = ConfigStore.getBaseURI(); const ClientActions = { - fetchSettings: property => + fetchSettings: (property) => axios .get(`${baseURI}api/client/settings`, {params: {property}}) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SETTINGS_FETCH_REQUEST_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SETTINGS_FETCH_REQUEST_ERROR, error, @@ -31,14 +31,14 @@ const ClientActions = { .patch(`${baseURI}api/client/settings`, settings) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SETTINGS_SAVE_SUCCESS, data, options, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SETTINGS_SAVE_ERROR, error, @@ -55,7 +55,7 @@ const ClientActions = { }) .then((json = {}) => json.data) .then( - transferData => { + (transferData) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_THROTTLE_SUCCESS, data: { @@ -63,7 +63,7 @@ const ClientActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_THROTTLE_ERROR, data: { @@ -73,7 +73,7 @@ const ClientActions = { }, ), - testClientConnectionSettings: connectionSettings => { + testClientConnectionSettings: (connectionSettings) => { const requestPayload = { host: connectionSettings.rtorrentHost, port: connectionSettings.rtorrentPort, diff --git a/client/src/javascript/actions/FloodActions.js b/client/src/javascript/actions/FloodActions.js index f6ed73719..b93870db7 100644 --- a/client/src/javascript/actions/FloodActions.js +++ b/client/src/javascript/actions/FloodActions.js @@ -13,7 +13,7 @@ let lastActivityStreamOptions; let visibilityChangeTimeout = null; const FloodActions = { - clearNotifications: options => + clearNotifications: (options) => axios .delete(`${baseURI}api/notifications`) .then((json = {}) => json.data) @@ -27,7 +27,7 @@ const FloodActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.FLOOD_CLEAR_NOTIFICATIONS_ERROR, data: { @@ -90,14 +90,14 @@ const FloodActions = { params: options, }) .then((json = {}) => json.data) - .then(response => { + .then((response) => { return { ...options, ...response, }; }), - fetchMediainfo: options => + fetchMediainfo: (options) => axios .get(`${baseURI}api/mediainfo`, { params: { @@ -105,7 +105,7 @@ const FloodActions = { }, }) .then((json = {}) => json.data) - .then(response => { + .then((response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.FLOOD_FETCH_MEDIAINFO_SUCCESS, data: { @@ -115,7 +115,7 @@ const FloodActions = { }); }), - fetchNotifications: options => + fetchNotifications: (options) => axios .get(`${baseURI}api/notifications`, { params: { @@ -125,7 +125,7 @@ const FloodActions = { }) .then((json = {}) => json.data) .then( - response => { + (response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.FLOOD_FETCH_NOTIFICATIONS_SUCCESS, data: { @@ -134,7 +134,7 @@ const FloodActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.FLOOD_FETCH_NOTIFICATIONS_ERROR, data: { diff --git a/client/src/javascript/actions/SettingsActions.js b/client/src/javascript/actions/SettingsActions.js index 2d7c2e39b..3d3b05027 100644 --- a/client/src/javascript/actions/SettingsActions.js +++ b/client/src/javascript/actions/SettingsActions.js @@ -7,18 +7,18 @@ import ConfigStore from '../stores/ConfigStore'; const baseURI = ConfigStore.getBaseURI(); const SettingsActions = { - addFeed: feed => + addFeed: (feed) => axios .put(`${baseURI}api/feed-monitor/feeds`, feed) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEED_ADD_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEED_ADD_ERROR, error, @@ -31,13 +31,13 @@ const SettingsActions = { .put(`${baseURI}api/feed-monitor/feeds/${id}`, feed) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEED_MODIFY_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEED_MODiFY_ERROR, error, @@ -45,18 +45,18 @@ const SettingsActions = { }, ), - addRule: rule => + addRule: (rule) => axios .put(`${baseURI}api/feed-monitor/rules`, rule) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_RULE_ADD_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_RULE_ADD_ERROR, error, @@ -64,18 +64,18 @@ const SettingsActions = { }, ), - fetchFeedMonitors: query => + fetchFeedMonitors: (query) => axios .get(`${baseURI}api/feed-monitor`, query) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITORS_FETCH_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITORS_FETCH_ERROR, error, @@ -83,18 +83,18 @@ const SettingsActions = { }, ), - fetchFeeds: query => + fetchFeeds: (query) => axios .get(`${baseURI}api/feed-monitor/feeds`, query) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEEDS_FETCH_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_FEEDS_FETCH_ERROR, error, @@ -102,18 +102,18 @@ const SettingsActions = { }, ), - fetchItems: query => + fetchItems: (query) => axios .get(`${baseURI}api/feed-monitor/items`, query) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_ITEMS_FETCH_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_ITEMS_FETCH_ERROR, error, @@ -121,18 +121,18 @@ const SettingsActions = { }, ), - fetchRules: query => + fetchRules: (query) => axios .get(`${baseURI}api/feed-monitor/rules`, query) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_RULES_FETCH_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_RULES_FETCH_ERROR, error, @@ -140,18 +140,18 @@ const SettingsActions = { }, ), - fetchSettings: property => + fetchSettings: (property) => axios .get(`${baseURI}api/settings`, {params: {property}}) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FETCH_REQUEST_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FETCH_REQUEST_ERROR, error, @@ -159,12 +159,12 @@ const SettingsActions = { }, ), - removeFeedMonitor: id => + removeFeedMonitor: (id) => axios .delete(`${baseURI}api/feed-monitor/${id}`) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_REMOVE_SUCCESS, data: { @@ -173,7 +173,7 @@ const SettingsActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_FEED_MONITOR_REMOVE_ERROR, error: { @@ -189,14 +189,14 @@ const SettingsActions = { .patch(`${baseURI}api/settings`, settings) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_SAVE_REQUEST_SUCCESS, data, options, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.SETTINGS_SAVE_REQUEST_ERROR, error, diff --git a/client/src/javascript/actions/TorrentActions.js b/client/src/javascript/actions/TorrentActions.js index 0a97ae869..fba0e64a7 100644 --- a/client/src/javascript/actions/TorrentActions.js +++ b/client/src/javascript/actions/TorrentActions.js @@ -7,12 +7,12 @@ import ConfigStore from '../stores/ConfigStore'; const baseURI = ConfigStore.getBaseURI(); const TorrentActions = { - addTorrentsByUrls: options => + addTorrentsByUrls: (options) => axios .post(`${baseURI}api/client/add`, options) .then((json = {}) => json.data) .then( - response => { + (response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_ADD_TORRENT_SUCCESS, data: { @@ -22,7 +22,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_ADD_TORRENT_ERROR, data: { @@ -37,7 +37,7 @@ const TorrentActions = { .post(`${baseURI}api/client/add-files`, formData) .then((json = {}) => json.data) .then( - response => { + (response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_ADD_TORRENT_SUCCESS, data: { @@ -47,7 +47,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_ADD_TORRENT_ERROR, data: { @@ -62,7 +62,7 @@ const TorrentActions = { .post(`${baseURI}api/client/torrents/delete`, {hash, deleteData}) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_REMOVE_TORRENT_SUCCESS, data: { @@ -72,7 +72,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_REMOVE_TORRENT_ERROR, error: { @@ -83,12 +83,12 @@ const TorrentActions = { }, ), - checkHash: hash => + checkHash: (hash) => axios .post(`${baseURI}api/client/torrents/check-hash`, {hash}) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_CHECK_HASH_SUCCESS, data: { @@ -97,7 +97,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_CHECK_HASH_ERROR, error: { @@ -108,14 +108,14 @@ const TorrentActions = { }, ), - fetchTorrentDetails: hash => + fetchTorrentDetails: (hash) => axios .post(`${baseURI}api/client/torrent-details`, { hash, }) .then((json = {}) => json.data) .then( - torrentDetails => { + (torrentDetails) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_FETCH_TORRENT_DETAILS_SUCCESS, data: { @@ -148,7 +148,7 @@ const TorrentActions = { }) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_MOVE_TORRENTS_SUCCESS, data: { @@ -157,7 +157,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_MOVE_TORRENTS_ERROR, error, @@ -166,14 +166,14 @@ const TorrentActions = { ); }, - startTorrents: hashes => + startTorrents: (hashes) => axios .post(`${baseURI}api/client/start`, { hashes, }) .then((json = {}) => json.data) .then( - response => { + (response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_START_TORRENT_SUCCESS, data: { @@ -181,7 +181,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_START_TORRENT_ERROR, data: { @@ -191,14 +191,14 @@ const TorrentActions = { }, ), - stopTorrents: hashes => + stopTorrents: (hashes) => axios .post(`${baseURI}api/client/stop`, { hashes, }) .then((json = {}) => json.data) .then( - response => { + (response) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_STOP_TORRENT_SUCCESS, data: { @@ -206,7 +206,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_STOP_TORRENT_ERROR, data: { @@ -224,13 +224,13 @@ const TorrentActions = { }) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_TORRENT_PRIORITY_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_TORRENT_PRIORITY_ERROR, error, @@ -247,7 +247,7 @@ const TorrentActions = { }) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_FILE_PRIORITY_SUCCESS, data: { @@ -258,7 +258,7 @@ const TorrentActions = { }, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_FILE_PRIORITY_ERROR, error, @@ -275,13 +275,13 @@ const TorrentActions = { }) .then((json = {}) => json.data) .then( - data => { + (data) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_TAXONOMY_SUCCESS, data, }); }, - error => { + (error) => { AppDispatcher.dispatchServerAction({ type: ActionTypes.CLIENT_SET_TAXONOMY_ERROR, error, diff --git a/client/src/javascript/actions/UIActions.js b/client/src/javascript/actions/UIActions.js index 7b4355fa3..84689bbab 100644 --- a/client/src/javascript/actions/UIActions.js +++ b/client/src/javascript/actions/UIActions.js @@ -4,28 +4,28 @@ import AppDispatcher from '../dispatcher/AppDispatcher'; import ActionTypes from '../constants/ActionTypes'; const UIActions = { - displayContextMenu: data => { + displayContextMenu: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_DISPLAY_CONTEXT_MENU, data, }); }, - displayDropdownMenu: data => { + displayDropdownMenu: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_DISPLAY_DROPDOWN_MENU, data, }); }, - displayModal: data => { + displayModal: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_DISPLAY_MODAL, data, }); }, - dismissContextMenu: contextMenuID => { + dismissContextMenu: (contextMenuID) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_DISMISS_CONTEXT_MENU, data: contextMenuID, @@ -39,35 +39,35 @@ const UIActions = { }); }, - handleDetailsClick: data => { + handleDetailsClick: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_CLICK_TORRENT_DETAILS, data, }); }, - handleTorrentClick: data => { + handleTorrentClick: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_CLICK_TORRENT, data, }); }, - setTorrentStatusFilter: data => { + setTorrentStatusFilter: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_SET_TORRENT_STATUS_FILTER, data, }); }, - setTorrentTagFilter: data => { + setTorrentTagFilter: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_SET_TORRENT_TAG_FILTER, data, }); }, - setTorrentTrackerFilter: data => { + setTorrentTrackerFilter: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_SET_TORRENT_TRACKER_FILTER, data, @@ -75,7 +75,7 @@ const UIActions = { }, setTorrentsSearchFilter: _.debounce( - data => { + (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_SET_TORRENT_SEARCH_FILTER, data, @@ -85,7 +85,7 @@ const UIActions = { {trailing: true}, ), - setTorrentsSort: data => { + setTorrentsSort: (data) => { AppDispatcher.dispatchUIAction({ type: ActionTypes.UI_SET_TORRENT_SORT, data, diff --git a/client/src/javascript/app.tsx b/client/src/javascript/app.tsx index a69b56a4d..ff80072c6 100644 --- a/client/src/javascript/app.tsx +++ b/client/src/javascript/app.tsx @@ -94,21 +94,20 @@ class FloodApp extends React.Component { } } -const ConnectedFloodApp = connectStores( - FloodApp, - (): EventListenerDescriptor[] => { - return [ - { - store: SettingsStore, - event: EventTypes.SETTINGS_CHANGE, - getValue: (): InjectedFloodAppProps => { - return { - locale: SettingsStore.getFloodSettings('language'), - }; - }, +const ConnectedFloodApp = connectStores(FloodApp, (): EventListenerDescriptor< + InjectedFloodAppProps +>[] => { + return [ + { + store: SettingsStore, + event: EventTypes.SETTINGS_CHANGE, + getValue: (): InjectedFloodAppProps => { + return { + locale: SettingsStore.getFloodSettings('language'), + }; }, - ]; - }, -); + }, + ]; +}); ReactDOM.render(, document.getElementById('app')); diff --git a/client/src/javascript/components/AppWrapper.js b/client/src/javascript/components/AppWrapper.js index 19ce1bd1a..efcd5c1bc 100644 --- a/client/src/javascript/components/AppWrapper.js +++ b/client/src/javascript/components/AppWrapper.js @@ -29,7 +29,9 @@ class AuthEnforcer extends React.Component { // Allow the UI to load if the user is not authenticated. if (!isAuthenticated) return false; // Iterate over current dependencies looking for unsatisified dependencies. - const isDependencyActive = Object.keys(dependencies).some(dependencyKey => !dependencies[dependencyKey].satisfied); + const isDependencyActive = Object.keys(dependencies).some( + (dependencyKey) => !dependencies[dependencyKey].satisfied, + ); // If any dependency is unsatisfied, show the loading indicator. if (isDependencyActive) return true; // Dismiss the loading indicator if the UI store thinks all dependencies @@ -69,7 +71,7 @@ class AuthEnforcer extends React.Component { renderDependencyList() { const {dependencies} = this.props; - const listItems = Object.keys(dependencies).map(id => { + const listItems = Object.keys(dependencies).map((id) => { const {message, satisfied} = dependencies[id]; const statusIcon = ICONS.satisfied; const classes = classnames('dependency-list__dependency', { diff --git a/client/src/javascript/components/alerts/Alerts.js b/client/src/javascript/components/alerts/Alerts.js index c2d3877e6..90de57d4d 100644 --- a/client/src/javascript/components/alerts/Alerts.js +++ b/client/src/javascript/components/alerts/Alerts.js @@ -14,7 +14,7 @@ class Alerts extends React.Component { return (
    - {this.props.alerts.map(alert => ( + {this.props.alerts.map((alert) => ( ))}
diff --git a/client/src/javascript/components/auth/AuthForm.js b/client/src/javascript/components/auth/AuthForm.js index ce8ffc047..d3287b757 100644 --- a/client/src/javascript/components/auth/AuthForm.js +++ b/client/src/javascript/components/auth/AuthForm.js @@ -42,7 +42,7 @@ class AuthForm extends React.Component { }); } - handleFormSubmit = submission => { + handleFormSubmit = (submission) => { submission.event.preventDefault(); this.setState({isSubmitting: true}); @@ -82,7 +82,7 @@ class AuthForm extends React.Component {
{ + ref={(ref) => { this.formRef = ref; }}> diff --git a/client/src/javascript/components/general/ClientConnectionInterruption.js b/client/src/javascript/components/general/ClientConnectionInterruption.js index bb5921fa9..a4c8bf020 100644 --- a/client/src/javascript/components/general/ClientConnectionInterruption.js +++ b/client/src/javascript/components/general/ClientConnectionInterruption.js @@ -131,7 +131,7 @@ class ClientConnectionInterruption extends React.Component { { + ref={(ref) => { this.formRef = ref; }}> diff --git a/client/src/javascript/components/general/CustomScrollbars.js b/client/src/javascript/components/general/CustomScrollbars.js index 79c82b8cb..732d1aabd 100644 --- a/client/src/javascript/components/general/CustomScrollbars.js +++ b/client/src/javascript/components/general/CustomScrollbars.js @@ -10,7 +10,7 @@ export default class CustomScrollbar extends React.Component { constructor() { super(); - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -67,7 +67,7 @@ export default class CustomScrollbar extends React.Component { return ( { + ref={(ref) => { this.scrollbarRef = ref; }} renderView={this.renderView} diff --git a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js index 2754c19d2..90755b4be 100644 --- a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js +++ b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js @@ -134,7 +134,7 @@ class GlobalContextMenuMountPoint extends React.Component { } }; - handleKeyPress = event => { + handleKeyPress = (event) => { if (event.key === 'Escape') { UIActions.dismissContextMenu(this.props.id); } diff --git a/client/src/javascript/components/general/ListViewport.js b/client/src/javascript/components/general/ListViewport.js index 5e153099e..2af5bd322 100644 --- a/client/src/javascript/components/general/ListViewport.js +++ b/client/src/javascript/components/general/ListViewport.js @@ -46,7 +46,7 @@ class ListViewport extends React.Component { viewportHeight: null, }; - methodsToBind.forEach(method => { + methodsToBind.forEach((method) => { this[method] = this[method].bind(this); }); @@ -235,12 +235,12 @@ class ListViewport extends React.Component { const listContent = (
    { + ref={(ref) => { nodeRefs.list = ref; }}>
  • { + ref={(ref) => { nodeRefs.topSpacer = ref; }} style={{height: `${listPadding.top}px`}} @@ -262,7 +262,7 @@ class ListViewport extends React.Component { getVerticalThumb={props.getVerticalThumb} onScrollStart={this.handleScrollStart} onScrollStop={this.handleScrollStop} - ref={ref => { + ref={(ref) => { this.nodeRefs.outerScrollbar = ref; }} scrollHandler={this.handleScroll} diff --git a/client/src/javascript/components/general/NavigationList.js b/client/src/javascript/components/general/NavigationList.js index cd67750d0..734fc9628 100644 --- a/client/src/javascript/components/general/NavigationList.js +++ b/client/src/javascript/components/general/NavigationList.js @@ -28,7 +28,7 @@ class NavigationList extends React.Component { } getNavigationItems(items) { - return items.map(item => { + return items.map((item) => { let selectedSlug = null; if (this.state.selectedItem) { diff --git a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js index ad116a86b..e62105092 100644 --- a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js +++ b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js @@ -16,7 +16,7 @@ class RtorrentConnectionTypeSelection extends Component { connectionType: 'tcp', }; - handleTypeChange = event => { + handleTypeChange = (event) => { if (this.state.connectionType !== event.target.value) { this.setState({connectionType: event.target.value}); } diff --git a/client/src/javascript/components/general/SortableList.js b/client/src/javascript/components/general/SortableList.js index 2a83794d6..36dd61589 100644 --- a/client/src/javascript/components/general/SortableList.js +++ b/client/src/javascript/components/general/SortableList.js @@ -19,7 +19,7 @@ class SortableList extends React.Component { items: props.items, }; - methodsToBind.forEach(method => { + methodsToBind.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -95,7 +95,7 @@ class SortableList extends React.Component {
      { + ref={(ref) => { this.sortableListRef = ref; }}> ({ + DropTarget('globally-draggable-item', itemTarget, (connect) => ({ connectDropTarget: connect.dropTarget(), })), ])(SortableListItem); diff --git a/client/src/javascript/components/general/SortableListItemDragLayer.js b/client/src/javascript/components/general/SortableListItemDragLayer.js index b28d01029..1ca868c0f 100644 --- a/client/src/javascript/components/general/SortableListItemDragLayer.js +++ b/client/src/javascript/components/general/SortableListItemDragLayer.js @@ -49,7 +49,7 @@ class SortableListItemDragLayer extends Component { } } -export default DragLayer(monitor => ({ +export default DragLayer((monitor) => ({ clientOffset: monitor.getClientOffset(), differenceFromInitialOffset: monitor.getDifferenceFromInitialOffset(), isDragging: monitor.isDragging(), diff --git a/client/src/javascript/components/general/Tooltip.js b/client/src/javascript/components/general/Tooltip.js index 2a460af8d..e69d27776 100644 --- a/client/src/javascript/components/general/Tooltip.js +++ b/client/src/javascript/components/general/Tooltip.js @@ -83,7 +83,7 @@ class Tooltip extends React.Component { constructor() { super(); - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); @@ -334,14 +334,14 @@ class Tooltip extends React.Component { onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} {...elementProps} - ref={ref => { + ref={(ref) => { this.triggerNode = ref; }}> {props.children}
      { + ref={(ref) => { this.tooltipNode = ref; }} style={tooltipStyle} diff --git a/client/src/javascript/components/general/WindowTitle.js b/client/src/javascript/components/general/WindowTitle.js index fc7121cf9..26510a28a 100644 --- a/client/src/javascript/components/general/WindowTitle.js +++ b/client/src/javascript/components/general/WindowTitle.js @@ -6,56 +6,53 @@ import {compute, getTranslationString} from '../../util/size'; import EventTypes from '../../constants/EventTypes'; import TransferDataStore from '../../stores/TransferDataStore'; -const WindowTitle = props => { +const WindowTitle = (props) => { const {intl, summary} = props; - React.useEffect( - () => { - let title = 'Flood'; + React.useEffect(() => { + let title = 'Flood'; - if (Object.keys(summary).length > 0) { - const down = compute(summary.downRate); - const up = compute(summary.upRate); + if (Object.keys(summary).length > 0) { + const down = compute(summary.downRate); + const up = compute(summary.upRate); - const formattedDownSpeed = intl.formatNumber(down.value); - const formattedUpSpeed = intl.formatNumber(up.value); + const formattedDownSpeed = intl.formatNumber(down.value); + const formattedUpSpeed = intl.formatNumber(up.value); - const translatedDownUnit = intl.formatMessage( - { - id: 'unit.speed', - defaultMessage: '{baseUnit}/s', - }, - { - baseUnit: intl.formatMessage({id: getTranslationString(down.unit)}), - }, - ); - const translatedUpUnit = intl.formatMessage( - { - id: 'unit.speed', - defaultMessage: '{baseUnit}/s', - }, - { - baseUnit: intl.formatMessage({id: getTranslationString(up.unit)}), - }, - ); + const translatedDownUnit = intl.formatMessage( + { + id: 'unit.speed', + defaultMessage: '{baseUnit}/s', + }, + { + baseUnit: intl.formatMessage({id: getTranslationString(down.unit)}), + }, + ); + const translatedUpUnit = intl.formatMessage( + { + id: 'unit.speed', + defaultMessage: '{baseUnit}/s', + }, + { + baseUnit: intl.formatMessage({id: getTranslationString(up.unit)}), + }, + ); - title = intl.formatMessage( - { - id: 'window.title', - // \u2193 and \u2191 are down and up arrows, respectively - defaultMessage: '\u2193 {down} \u2191 {up} - Flood', - }, - { - down: `${formattedDownSpeed} ${translatedDownUnit}`, - up: `${formattedUpSpeed} ${translatedUpUnit}`, - }, - ); - } + title = intl.formatMessage( + { + id: 'window.title', + // \u2193 and \u2191 are down and up arrows, respectively + defaultMessage: '\u2193 {down} \u2191 {up} - Flood', + }, + { + down: `${formattedDownSpeed} ${translatedDownUnit}`, + up: `${formattedUpSpeed} ${translatedUpUnit}`, + }, + ); + } - document.title = title; - }, - [intl, summary], - ); + document.title = title; + }, [intl, summary]); return null; }; diff --git a/client/src/javascript/components/general/filesystem/DirectoryFileList.js b/client/src/javascript/components/general/filesystem/DirectoryFileList.js index a0a1709e1..ee0e006d7 100644 --- a/client/src/javascript/components/general/filesystem/DirectoryFileList.js +++ b/client/src/javascript/components/general/filesystem/DirectoryFileList.js @@ -27,7 +27,7 @@ class DirectoryFiles extends React.Component { constructor() { super(); - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -80,7 +80,7 @@ class DirectoryFiles extends React.Component { branch.sort((a, b) => a.filename.localeCompare(b.filename)); - const files = branch.map(file => { + const files = branch.map((file) => { const isSelected = this.props.selectedItems[file.filename] && this.props.selectedItems[file.filename].isSelected; const classes = classnames( 'directory-tree__node file', diff --git a/client/src/javascript/components/general/filesystem/DirectoryTree.js b/client/src/javascript/components/general/filesystem/DirectoryTree.js index 6c0670a86..fb96ff7a8 100644 --- a/client/src/javascript/components/general/filesystem/DirectoryTree.js +++ b/client/src/javascript/components/general/filesystem/DirectoryTree.js @@ -24,7 +24,7 @@ class DirectoryTree extends React.Component { constructor() { super(); - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } diff --git a/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js b/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js index 147eee1ba..dcebe4723 100644 --- a/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js +++ b/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js @@ -31,7 +31,7 @@ class DirectoryTreeNode extends React.Component { expanded: false, }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -93,7 +93,7 @@ class DirectoryTreeNode extends React.Component { } handleDirectoryClick() { - this.setState(state => { + this.setState((state) => { return { expanded: !state.expanded, }; diff --git a/client/src/javascript/components/general/filesystem/FilesystemBrowser.js b/client/src/javascript/components/general/filesystem/FilesystemBrowser.js index 58f3cd0e8..f2fba0c3c 100644 --- a/client/src/javascript/components/general/filesystem/FilesystemBrowser.js +++ b/client/src/javascript/components/general/filesystem/FilesystemBrowser.js @@ -48,13 +48,13 @@ class FilesystemBrowser extends React.PureComponent { fetchDirectoryListForCurrentDirectory = () => { FloodActions.fetchDirectoryList({path: this.props.directory}) - .then(response => { + .then((response) => { this.setState({ ...response, errorResponse: null, }); }) - .catch(error => { + .catch((error) => { this.setState({errorResponse: error.response}); }); }; @@ -70,7 +70,7 @@ class FilesystemBrowser extends React.PureComponent { return `${directory}${separator}${nextDirectorySegment}`; } - handleDirectoryClick = directory => { + handleDirectoryClick = (directory) => { const nextDirectory = this.getNewDestination(directory); if (this.props.onDirectorySelection) { diff --git a/client/src/javascript/components/general/filesystem/PriorityMeter.js b/client/src/javascript/components/general/filesystem/PriorityMeter.js index 307b70709..7a5c6ba64 100644 --- a/client/src/javascript/components/general/filesystem/PriorityMeter.js +++ b/client/src/javascript/components/general/filesystem/PriorityMeter.js @@ -15,7 +15,7 @@ class PriorityMeter extends React.Component { }, }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } diff --git a/client/src/javascript/components/general/filesystem/TorrentDestination.js b/client/src/javascript/components/general/filesystem/TorrentDestination.js index 48d49f481..7751489f7 100644 --- a/client/src/javascript/components/general/filesystem/TorrentDestination.js +++ b/client/src/javascript/components/general/filesystem/TorrentDestination.js @@ -79,7 +79,7 @@ class TorrentDestination extends React.Component { /* eslint-enable react/sort-comp */ handleDirectoryListButtonClick = () => { - this.setState(state => { + this.setState((state) => { const isOpening = !state.isDirectoryListOpen; return { @@ -88,7 +88,7 @@ class TorrentDestination extends React.Component { }); }; - handleDirectorySelection = destination => { + handleDirectorySelection = (destination) => { this.textboxRef.value = destination; this.setState({destination}); }; @@ -111,7 +111,7 @@ class TorrentDestination extends React.Component { } toggleOpenState = () => { - this.setState(state => { + this.setState((state) => { return { isDirectoryListOpen: !state.isDirectoryListOpen, }; @@ -130,12 +130,12 @@ class TorrentDestination extends React.Component { id={this.props.id} label={this.props.label} onChange={this.handleDestinationInputChange} - onClick={event => event.nativeEvent.stopImmediatePropagation()} + onClick={(event) => event.nativeEvent.stopImmediatePropagation()} placeholder={this.props.intl.formatMessage({ id: 'torrents.add.destination.placeholder', defaultMessage: 'Destination', })} - setRef={ref => { + setRef={(ref) => { this.textboxRef = ref; }}> @@ -144,13 +144,13 @@ class TorrentDestination extends React.Component { event.nativeEvent.stopImmediatePropagation()} + onClick={(event) => event.nativeEvent.stopImmediatePropagation()} overlayProps={{isInteractive: false}} padding={false} - ref={ref => { + ref={(ref) => { this.contextMenuInstanceRef = ref; }} - setRef={ref => { + setRef={(ref) => { this.contextMenuNodeRef = ref; }} scrolling={false} diff --git a/client/src/javascript/components/general/form-elements/Dropdown.js b/client/src/javascript/components/general/form-elements/Dropdown.js index 46d1a6a88..78af5aea3 100644 --- a/client/src/javascript/components/general/form-elements/Dropdown.js +++ b/client/src/javascript/components/general/form-elements/Dropdown.js @@ -50,7 +50,7 @@ class Dropdown extends React.Component { isOpen: false, }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); diff --git a/client/src/javascript/components/general/form-elements/TextboxRepeater.js b/client/src/javascript/components/general/form-elements/TextboxRepeater.js index 731e92500..2fa2f2a17 100644 --- a/client/src/javascript/components/general/form-elements/TextboxRepeater.js +++ b/client/src/javascript/components/general/form-elements/TextboxRepeater.js @@ -51,16 +51,16 @@ export default class TextboxRepeater extends React.PureComponent { ); }); - handleTextboxAdd = index => { - this.setState(state => { + handleTextboxAdd = (index) => { + this.setState((state) => { const textboxes = Object.assign([], state.textboxes); textboxes.splice(index + 1, 0, {id: this.getID(), value: ''}); return {textboxes}; }); }; - handleTextboxRemove = index => { - this.setState(state => { + handleTextboxRemove = (index) => { + this.setState((state) => { const textboxes = Object.assign([], state.textboxes); textboxes.splice(index, 1); return {textboxes}; diff --git a/client/src/javascript/components/modals/Modal.js b/client/src/javascript/components/modals/Modal.js index 86fb7a326..d4b1ac520 100644 --- a/client/src/javascript/components/modals/Modal.js +++ b/client/src/javascript/components/modals/Modal.js @@ -15,7 +15,7 @@ export default class Modal extends React.Component { activeTabId: null, }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -109,7 +109,7 @@ export default class Modal extends React.Component { {modalHeader} {headerTabs}
      -
      this.setRef('modal-body', ref)}> +
      this.setRef('modal-body', ref)}> {modalBody} {footer}
      diff --git a/client/src/javascript/components/modals/ModalActions.js b/client/src/javascript/components/modals/ModalActions.js index 2021a4c54..a66e86aaf 100644 --- a/client/src/javascript/components/modals/ModalActions.js +++ b/client/src/javascript/components/modals/ModalActions.js @@ -38,7 +38,7 @@ export default class ModalActions extends React.Component { } getClickHandler(action) { - return event => { + return (event) => { if (action.clickHandler) { action.clickHandler(event); } diff --git a/client/src/javascript/components/modals/ModalTabs.js b/client/src/javascript/components/modals/ModalTabs.js index 343aaa8e8..e62264041 100644 --- a/client/src/javascript/components/modals/ModalTabs.js +++ b/client/src/javascript/components/modals/ModalTabs.js @@ -9,7 +9,7 @@ export default class ModalTabs extends React.Component { } render() { - const tabs = Object.keys(this.props.tabs).map(tabId => { + const tabs = Object.keys(this.props.tabs).map((tabId) => { const currentTab = this.props.tabs[tabId]; currentTab.id = tabId; diff --git a/client/src/javascript/components/modals/Modals.js b/client/src/javascript/components/modals/Modals.js index 63c4045e4..53b86297e 100644 --- a/client/src/javascript/components/modals/Modals.js +++ b/client/src/javascript/components/modals/Modals.js @@ -51,7 +51,7 @@ class Modals extends React.Component { return ; } - handleKeyPress = event => { + handleKeyPress = (event) => { if (this.props.activeModal != null && event.keyCode === 27) { this.dismissModal(); } diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js index f9336cb68..10c1f153f 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js @@ -72,17 +72,17 @@ class AddTorrentsByFile extends React.Component { ); } - handleFileDrop = files => { + handleFileDrop = (files) => { const nextErrorsState = this.state.errors; if (nextErrorsState.files != null) { delete nextErrorsState.files; } - this.setState(state => ({errors: nextErrorsState, files: state.files.concat(files)})); + this.setState((state) => ({errors: nextErrorsState, files: state.files.concat(files)})); }; - handleFileRemove = fileIndex => { + handleFileRemove = (fileIndex) => { const {files} = this.state; files.splice(fileIndex, 1); this.setState({files}); @@ -99,11 +99,11 @@ class AddTorrentsByFile extends React.Component { const fileData = new FormData(); const {destination, start, tags, useBasePath} = formData; - this.state.files.forEach(file => { + this.state.files.forEach((file) => { fileData.append('torrents', file); }); - tags.split(',').forEach(tag => { + tags.split(',').forEach((tag) => { fileData.append('tags', tag); }); @@ -119,7 +119,7 @@ class AddTorrentsByFile extends React.Component { return ( { + ref={(ref) => { this.formRef = ref; }}> {this.getFileDropzone()} diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js index d1e6890bc..a064575fe 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js @@ -59,7 +59,7 @@ class AddTorrentsByURL extends React.Component { return ( { + ref={(ref) => { this.formRef = ref; }}> validators.isNotEmpty(value) && validators.isRegExValid(value), + isValid: (value) => validators.isNotEmpty(value) && validators.isRegExValid(value), error: this.props.intl.formatMessage(MESSAGES.invalidRegularExpression), }, exclude: { - isValid: value => { + isValid: (value) => { if (validators.isNotEmpty(value)) { return validators.isRegExValid(value); } @@ -287,7 +287,7 @@ class DownloadRulesTab extends React.Component { } if (rule.tags && rule.tags.length > 0) { - const tagNodes = rule.tags.map(tag => ( + const tagNodes = rule.tags.map((tag) => ( {tag} @@ -365,7 +365,7 @@ class DownloadRulesTab extends React.Component { ); } - const rulesList = rules.map(rule => this.getRulesListItem(rule)); + const rulesList = rules.map((rule) => this.getRulesListItem(rule)); return
        {rulesList}
      ; } @@ -426,7 +426,7 @@ class DownloadRulesTab extends React.Component { } render() { - const errors = Object.keys(this.state.errors).map(errorID => ( + const errors = Object.keys(this.state.errors).map((errorID) => ( {this.state.errors[errorID]} @@ -437,7 +437,7 @@ class DownloadRulesTab extends React.Component { className="inverse" onChange={this.handleFormChange} onSubmit={this.handleFormSubmit} - ref={ref => { + ref={(ref) => { this.formRef = ref; }}> diff --git a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js index c6ccefd34..13500a1de 100644 --- a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js +++ b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js @@ -135,7 +135,7 @@ class FeedsTab extends React.Component { } getIntervalSelectOptions() { - return this.state.intervalmultipliers.map(interval => ( + return this.state.intervalmultipliers.map((interval) => ( {interval.displayName} @@ -288,7 +288,7 @@ class FeedsTab extends React.Component { className="inverse" onChange={this.handleFormChange} onSubmit={this.handleFormSubmit} - ref={ref => { + ref={(ref) => { this.formRef = ref; }}> @@ -325,7 +325,7 @@ class FeedsTab extends React.Component { ); } - const feedsList = feeds.map(feed => this.getFeedsListItem(feed)); + const feedsList = feeds.map((feed) => this.getFeedsListItem(feed)); return
        {feedsList}
      ; } @@ -336,7 +336,7 @@ class FeedsTab extends React.Component { className="inverse" onChange={this.handleBrowseFeedChange} onSubmit={this.handleBrowseFeedSubmit} - ref={ref => { + ref={(ref) => { this.manualAddingFormRef = ref; }}> @@ -410,7 +410,7 @@ class FeedsTab extends React.Component { this.checkFieldValidity(event.target.name, formData[event.target.name]); }; - handleRemoveFeedClick = feed => { + handleRemoveFeedClick = (feed) => { FeedMonitorStore.removeFeed(feed._id); if (feed === this.state.currentlyEditingFeed) { @@ -422,11 +422,11 @@ class FeedsTab extends React.Component { this.setState({currentlyEditingFeed: defaultFeed}); }; - handleModifyFeedClick = feed => { + handleModifyFeedClick = (feed) => { this.setState({currentlyEditingFeed: feed}); }; - handleBrowseFeedChange = input => { + handleBrowseFeedChange = (input) => { if (input.event.target.type !== 'checkbox') { this.setState({selectedFeed: input.formData.feedID}); FeedMonitorStore.fetchItems({params: {id: input.formData.feedID, search: input.formData.search}}); @@ -488,7 +488,7 @@ class FeedsTab extends React.Component { }; render() { - const errors = Object.keys(this.state.errors).map(errorID => ( + const errors = Object.keys(this.state.errors).map((errorID) => ( {this.state.errors[errorID]} diff --git a/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js b/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js index a32f40039..01cb8a5d8 100644 --- a/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js +++ b/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js @@ -79,7 +79,7 @@ class RemoveTorrentsModal extends React.Component { return (
      { + ref={(ref) => { this.formRef = ref; }}> {modalContent} diff --git a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js index c4a3bdb71..17e8c757f 100644 --- a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js +++ b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js @@ -52,7 +52,7 @@ class SetTagsModal extends React.Component { return (
      { + ref={(ref) => { this.formRef = ref; }}> diff --git a/client/src/javascript/components/modals/settings-modal/AboutTab.js b/client/src/javascript/components/modals/settings-modal/AboutTab.js index 3c1106082..ae1b64148 100644 --- a/client/src/javascript/components/modals/settings-modal/AboutTab.js +++ b/client/src/javascript/components/modals/settings-modal/AboutTab.js @@ -11,7 +11,7 @@ export default class AboutTab extends SettingsTab { }; componentDidMount() { - axios.get(AboutMarkdownPath).then(response => { + axios.get(AboutMarkdownPath).then((response) => { this.setState({about: response.data}); }); } diff --git a/client/src/javascript/components/modals/settings-modal/AuthTab.js b/client/src/javascript/components/modals/settings-modal/AuthTab.js index c0d68be9a..dfa7536ac 100644 --- a/client/src/javascript/components/modals/settings-modal/AuthTab.js +++ b/client/src/javascript/components/modals/settings-modal/AuthTab.js @@ -37,7 +37,7 @@ class AuthTab extends SettingsTab { const currentUsername = AuthStore.getCurrentUsername(); - return userList.map(user => { + return userList.map((user) => { const isCurrentUser = user.username === currentUsername; let badge = null; let removeIcon = null; @@ -101,7 +101,7 @@ class AuthTab extends SettingsTab { socketPath: this.formData.rtorrentSocketPath, isAdmin: this.formData.isAdmin === '1', }) - .then(AuthActions.fetchUsers, error => { + .then(AuthActions.fetchUsers, (error) => { this.setState({addUserError: error.response.data.message, isAddingUser: false}); }) .then(() => { @@ -156,7 +156,7 @@ class AuthTab extends SettingsTab { { + ref={(ref) => { this.formRef = ref; }}> diff --git a/client/src/javascript/components/modals/settings-modal/BandwidthTab.js b/client/src/javascript/components/modals/settings-modal/BandwidthTab.js index 74b8c1fb2..7c76d2b37 100644 --- a/client/src/javascript/components/modals/settings-modal/BandwidthTab.js +++ b/client/src/javascript/components/modals/settings-modal/BandwidthTab.js @@ -44,7 +44,7 @@ export default class BandwidthTab extends SettingsTab { return; } - return speeds.map(speed => Number(speed) / 1024).join(', '); + return speeds.map((speed) => Number(speed) / 1024).join(', '); } processSpeedsForSave(speeds = '') { @@ -55,7 +55,7 @@ export default class BandwidthTab extends SettingsTab { return speeds .replace(/\s/g, '') .split(',') - .map(speed => Number(speed) * 1024); + .map((speed) => Number(speed) * 1024); } render() { diff --git a/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js b/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js index 0d85dc54c..f7e1d8709 100644 --- a/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js +++ b/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js @@ -23,15 +23,15 @@ class DiskUsageTab extends SettingsTab { // first targets saved in mountPoints that exist in disks // then remaing targets from disks const diskItems = mountPoints - .filter(target => target in disks) - .map(target => ({ + .filter((target) => target in disks) + .map((target) => ({ id: target, visible: true, })) .concat( Object.keys(disks) - .filter(target => !mountPoints.includes(target)) - .map(target => ({ + .filter((target) => !mountPoints.includes(target)) + .map((target) => ({ id: target, visible: false, })), @@ -42,15 +42,15 @@ class DiskUsageTab extends SettingsTab { }; } - updateSettings = diskItems => { - const mountPoints = diskItems.filter(item => item.visible).map(item => item.id); + updateSettings = (diskItems) => { + const mountPoints = diskItems.filter((item) => item.visible).map((item) => item.id); this.props.onSettingsChange({mountPoints}); }; handleDiskCheckboxValueChange = (id, value) => { const {diskItems} = this.state; - const newItems = diskItems.map(disk => { + const newItems = diskItems.map((disk) => { if (disk.id === id) { return {...disk, visible: value}; } @@ -67,12 +67,12 @@ class DiskUsageTab extends SettingsTab { } }; - handleDiskMove = items => { + handleDiskMove = (items) => { this.setState({diskItems: items}); this.updateSettings(items); }; - renderDiskItem = item => { + renderDiskItem = (item) => { const {id, visible} = item; let checkbox = null; @@ -81,7 +81,7 @@ class DiskUsageTab extends SettingsTab { this.handleDiskCheckboxValueChange(id, event.target.checked)} + onChange={(event) => this.handleDiskCheckboxValueChange(id, event.target.checked)} modifier="dark"> diff --git a/client/src/javascript/components/modals/settings-modal/SettingsModal.js b/client/src/javascript/components/modals/settings-modal/SettingsModal.js index d1ad96900..a74a71baf 100644 --- a/client/src/javascript/components/modals/settings-modal/SettingsModal.js +++ b/client/src/javascript/components/modals/settings-modal/SettingsModal.js @@ -46,8 +46,8 @@ class SettingsModal extends React.Component { ]; } - handleCustomsSettingChange = data => { - this.setState(state => { + handleCustomsSettingChange = (data) => { + this.setState((state) => { return { changedClientSettings: this.mergeObjects(state.changedClientSettings, { [data.id]: {...data, overrideLocalSetting: true}, @@ -57,12 +57,12 @@ class SettingsModal extends React.Component { }; handleSaveSettingsClick = () => { - const floodSettings = Object.keys(this.state.changedFloodSettings).map(settingsKey => ({ + const floodSettings = Object.keys(this.state.changedFloodSettings).map((settingsKey) => ({ id: settingsKey, data: this.state.changedFloodSettings[settingsKey], })); - const clientSettings = Object.keys(this.state.changedClientSettings).map(settingsKey => { + const clientSettings = Object.keys(this.state.changedClientSettings).map((settingsKey) => { const data = this.state.changedClientSettings[settingsKey]; if (data.overrideLocalSetting) { @@ -88,7 +88,7 @@ class SettingsModal extends React.Component { }); }; - handleFloodSettingsChange = changedSettings => { + handleFloodSettingsChange = (changedSettings) => { this.setState((state, props) => { const floodSettings = this.mergeObjects(props.floodSettings, changedSettings); const changedFloodSettings = this.mergeObjects(state.changedFloodSettings, changedSettings); @@ -97,7 +97,7 @@ class SettingsModal extends React.Component { }); }; - handleClientSettingsChange = changedSettings => { + handleClientSettingsChange = (changedSettings) => { this.setState((state, props) => { const clientSettings = this.mergeObjects(props.clientSettings, changedSettings); const changedClientSettings = this.mergeObjects(state.changedClientSettings, changedSettings); @@ -114,7 +114,7 @@ class SettingsModal extends React.Component { // TODO: Use lodash or something non-custom for this mergeObjects(objA, objB) { - Object.keys(objB).forEach(key => { + Object.keys(objB).forEach((key) => { if (!Object.prototype.hasOwnProperty.call(objB, key) || objB[key] == null) { return; } diff --git a/client/src/javascript/components/modals/settings-modal/UITab.js b/client/src/javascript/components/modals/settings-modal/UITab.js index bc642797c..904036f81 100644 --- a/client/src/javascript/components/modals/settings-modal/UITab.js +++ b/client/src/javascript/components/modals/settings-modal/UITab.js @@ -21,7 +21,7 @@ class UITab extends SettingsTab { }; getLanguageSelectOptions() { - return Object.keys(Languages).map(languageID => { + return Object.keys(Languages).map((languageID) => { const selectedLanguageDefinition = Languages[languageID]; return ( @@ -43,7 +43,7 @@ class UITab extends SettingsTab { handleDetailCheckboxValueChange = (id, value) => { let {torrentDetails} = this.state; - torrentDetails = torrentDetails.map(detail => { + torrentDetails = torrentDetails.map((detail) => { if (detail.id === id) { detail.visible = value; } @@ -77,7 +77,7 @@ class UITab extends SettingsTab { } }; - handleTorrentDetailsMove = items => { + handleTorrentDetailsMove = (items) => { this.setState({torrentDetails: items}); this.props.onSettingsChange({torrentDetails: items}); }; @@ -92,7 +92,7 @@ class UITab extends SettingsTab { this.handleDetailCheckboxValueChange(id, event.target.checked)} + onChange={(event) => this.handleDetailCheckboxValueChange(id, event.target.checked)} modifier="dark"> @@ -117,7 +117,7 @@ class UITab extends SettingsTab { className="tooltip tooltip--is-error" content={tooltipContent} offset={-5} - ref={ref => { + ref={(ref) => { this.tooltipRef = ref; }} scrollContainer={this.props.scrollContainer} @@ -165,7 +165,7 @@ class UITab extends SettingsTab { return accumulator; }, []) - .filter(item => item != null); + .filter((item) => item != null); } return ( diff --git a/client/src/javascript/components/modals/torrent-details-modal/NavigationList.js b/client/src/javascript/components/modals/torrent-details-modal/NavigationList.js index fba6fb2a2..6ef673df5 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/NavigationList.js +++ b/client/src/javascript/components/modals/torrent-details-modal/NavigationList.js @@ -25,7 +25,7 @@ class NavigationList extends React.Component { } getNavigationItems(items) { - return items.map(item => { + return items.map((item) => { const classes = classnames(this.props.itemClassName, { [this.props.selectedClassName]: item.slug === this.state.selectedItem, }); diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js index ebd78d732..b0717b334 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js @@ -25,7 +25,7 @@ class TorrentFiles extends React.Component { selectedFiles: [], }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } @@ -56,7 +56,7 @@ class TorrentFiles extends React.Component { // Check specific properties to re-render when the torrent is active. if (nextProps.torrent) { - return TORRENT_PROPS_TO_CHECK.some(property => this.props.torrent[property] !== nextProps.torrent[property]); + return TORRENT_PROPS_TO_CHECK.some((property) => this.props.torrent[property] !== nextProps.torrent[property]); } return true; @@ -79,7 +79,7 @@ class TorrentFiles extends React.Component { } if (selectionTree.directories) { - Object.keys(selectionTree.directories).forEach(directory => { + Object.keys(selectionTree.directories).forEach((directory) => { selectedFiles = [...selectedFiles, ...this.getSelectedFiles(selectionTree.directories[directory])]; }); } @@ -87,7 +87,7 @@ class TorrentFiles extends React.Component { return selectedFiles; } - handleDownloadButtonClick = event => { + handleDownloadButtonClick = (event) => { event.preventDefault(); const baseURI = ConfigStore.getBaseURI(); const link = document.createElement('a'); @@ -107,7 +107,7 @@ class TorrentFiles extends React.Component { handleItemSelect(selectedItem) { this.hasSelectionChanged = true; - this.setState(state => { + this.setState((state) => { const selectedItems = this.mergeSelection(selectedItem, state.selectedItems, 0, this.props.fileTree); const selectedFiles = this.getSelectedFiles(selectedItems); @@ -196,7 +196,7 @@ class TorrentFiles extends React.Component { selectAll(selectionTree = {}, fileTree = {}, deselect = false) { if (fileTree.files) { - fileTree.files.forEach(file => { + fileTree.files.forEach((file) => { if (!selectionTree.files) { selectionTree.files = {}; } @@ -210,7 +210,7 @@ class TorrentFiles extends React.Component { } if (fileTree.directories) { - Object.keys(fileTree.directories).forEach(directory => { + Object.keys(fileTree.directories).forEach((directory) => { if (!selectionTree.directories) { selectionTree.directories = {}; } diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js index 0742b1bc5..53a8dabed 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js @@ -5,7 +5,7 @@ import Size from '../../general/Size'; class TorrentGeneralInfo extends React.Component { getTags(tags) { - return tags.map(tag => ( + return tags.map((tag) => ( {tag} diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js index d6cec8ad9..df0691a47 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js @@ -29,7 +29,7 @@ export default class TorrentHeading extends React.Component { optimisticData: {currentStatus: null}, }; - METHODS_TO_BIND.forEach(method => { + METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js index 9414887bf..f0e717baf 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js @@ -53,7 +53,7 @@ class TorrentMediainfo extends React.Component { fetchMediainfoError: null, }); }, - error => { + (error) => { this.setState({ isFetchingMediainfo: false, fetchMediainfoError: error, @@ -134,7 +134,7 @@ class TorrentMediainfo extends React.Component { wrapperClassName="tooltip__wrapper mediainfo__toolbar__item"> diff --git a/client/src/javascript/components/general/ClientConnectionInterruption.js b/client/src/javascript/components/general/ClientConnectionInterruption.js index a4c8bf020..eedf9f337 100644 --- a/client/src/javascript/components/general/ClientConnectionInterruption.js +++ b/client/src/javascript/components/general/ClientConnectionInterruption.js @@ -80,7 +80,7 @@ class ClientConnectionInterruption extends React.Component { - + ); @@ -92,10 +92,7 @@ class ClientConnectionInterruption extends React.Component { return ( - + ); @@ -111,15 +108,12 @@ class ClientConnectionInterruption extends React.Component {

      - +

      - +

      @@ -136,15 +130,12 @@ class ClientConnectionInterruption extends React.Component { }}>

      - +

      - +

      {this.renderFormError()} @@ -153,10 +144,10 @@ class ClientConnectionInterruption extends React.Component { {this.renderConnectionTestResult()} diff --git a/client/src/javascript/components/general/Duration.js b/client/src/javascript/components/general/Duration.js index 7dfa1f07e..cbabbe24c 100644 --- a/client/src/javascript/components/general/Duration.js +++ b/client/src/javascript/components/general/Duration.js @@ -17,19 +17,19 @@ export default class Duration extends React.Component { } if (duration === 'Infinity') { - content = ; + content = ; } else if (duration.years > 0) { content = [ {duration.years} - + , {duration.weeks} - + , ]; @@ -38,13 +38,13 @@ export default class Duration extends React.Component { {duration.weeks} - + , {duration.days} - + , ]; @@ -53,13 +53,13 @@ export default class Duration extends React.Component { {duration.days} - + , {duration.hours} - + , ]; @@ -68,13 +68,13 @@ export default class Duration extends React.Component { {duration.hours} - + , {duration.minutes} - + , ]; @@ -83,13 +83,13 @@ export default class Duration extends React.Component { {duration.minutes} - + , {duration.seconds} - + , ]; @@ -98,7 +98,7 @@ export default class Duration extends React.Component { {duration.seconds} - + ); diff --git a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js index e62105092..3c2dd26ba 100644 --- a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js +++ b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js @@ -30,18 +30,16 @@ class RtorrentConnectionTypeSelection extends Component { } + label={} placeholder={this.props.intl.formatMessage({ id: 'auth.rtorrentHost', - defaultMessage: 'rTorrent Host', })} /> } + label={} placeholder={this.props.intl.formatMessage({ id: 'auth.rtorrentPort', - defaultMessage: 'rTorrent Port', })} /> @@ -52,10 +50,9 @@ class RtorrentConnectionTypeSelection extends Component { } + label={} placeholder={this.props.intl.formatMessage({ id: 'auth.rtorrentSocketPath', - defaultMessage: 'rTorrent Socket Path', })} /> @@ -70,7 +67,6 @@ class RtorrentConnectionTypeSelection extends Component { - + - + diff --git a/client/src/javascript/components/general/Size.js b/client/src/javascript/components/general/Size.js index b3a29daae..e0752c647 100644 --- a/client/src/javascript/components/general/Size.js +++ b/client/src/javascript/components/general/Size.js @@ -22,7 +22,6 @@ class Size extends React.Component { translatedUnit = intl.formatMessage( { id: 'unit.speed', - defaultMessage: '{baseUnit}/s', }, { baseUnit: translatedUnit, diff --git a/client/src/javascript/components/general/WindowTitle.js b/client/src/javascript/components/general/WindowTitle.js index 26510a28a..8039d6bf2 100644 --- a/client/src/javascript/components/general/WindowTitle.js +++ b/client/src/javascript/components/general/WindowTitle.js @@ -22,7 +22,6 @@ const WindowTitle = (props) => { const translatedDownUnit = intl.formatMessage( { id: 'unit.speed', - defaultMessage: '{baseUnit}/s', }, { baseUnit: intl.formatMessage({id: getTranslationString(down.unit)}), @@ -31,7 +30,6 @@ const WindowTitle = (props) => { const translatedUpUnit = intl.formatMessage( { id: 'unit.speed', - defaultMessage: '{baseUnit}/s', }, { baseUnit: intl.formatMessage({id: getTranslationString(up.unit)}), @@ -42,7 +40,6 @@ const WindowTitle = (props) => { { id: 'window.title', // \u2193 and \u2191 are down and up arrows, respectively - defaultMessage: '\u2193 {down} \u2191 {up} - Flood', }, { down: `${formattedDownSpeed} ${translatedDownUnit}`, diff --git a/client/src/javascript/components/general/filesystem/FilesystemBrowser.js b/client/src/javascript/components/general/filesystem/FilesystemBrowser.js index f2fba0c3c..a637984f2 100644 --- a/client/src/javascript/components/general/filesystem/FilesystemBrowser.js +++ b/client/src/javascript/components/general/filesystem/FilesystemBrowser.js @@ -10,19 +10,15 @@ import FloodActions from '../../../actions/FloodActions'; const MESSAGES = defineMessages({ EACCES: { id: 'filesystem.error.eacces', - defaultMessage: 'Flood does not have permission to read this directory.', }, ENOENT: { id: 'filesystem.error.enoent', - defaultMessage: 'This path does not exist. It will be created.', }, emptyDirectory: { id: 'filesystem.empty.directory', - defaultMessage: 'Empty directory.', }, fetching: { id: 'filesystem.fetching', - defaultMessage: 'Fetching directory structure...', }, }); @@ -135,7 +131,6 @@ class FilesystemBrowser extends React.PureComponent { {this.props.intl.formatMessage({ id: 'filesystem.parent.directory', - defaultMessage: 'Parent Directory', })} ); diff --git a/client/src/javascript/components/general/filesystem/PriorityMeter.js b/client/src/javascript/components/general/filesystem/PriorityMeter.js index 7a5c6ba64..b9f45eb40 100644 --- a/client/src/javascript/components/general/filesystem/PriorityMeter.js +++ b/client/src/javascript/components/general/filesystem/PriorityMeter.js @@ -37,22 +37,18 @@ class PriorityMeter extends React.Component { case 'DONT_DOWNLOAD': return this.props.intl.formatMessage({ id: 'priority.dont.download', - defaultMessage: "Don't Download", }); case 'HIGH': return this.props.intl.formatMessage({ id: 'priority.high', - defaultMessage: 'High', }); case 'LOW': return this.props.intl.formatMessage({ id: 'priority.low', - defaultMessage: 'Low', }); case 'NORMAL': return this.props.intl.formatMessage({ id: 'priority.normal', - defaultMessage: 'Normal', }); default: return ''; diff --git a/client/src/javascript/components/general/filesystem/TorrentDestination.js b/client/src/javascript/components/general/filesystem/TorrentDestination.js index 7751489f7..deaa57cdf 100644 --- a/client/src/javascript/components/general/filesystem/TorrentDestination.js +++ b/client/src/javascript/components/general/filesystem/TorrentDestination.js @@ -133,7 +133,6 @@ class TorrentDestination extends React.Component { onClick={(event) => event.nativeEvent.stopImmediatePropagation()} placeholder={this.props.intl.formatMessage({ id: 'torrents.add.destination.placeholder', - defaultMessage: 'Destination', })} setRef={(ref) => { this.textboxRef = ref; @@ -171,7 +170,7 @@ class TorrentDestination extends React.Component { - + diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsActions.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsActions.js index 3c357cd67..6ec745475 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsActions.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsActions.js @@ -13,7 +13,6 @@ class AddTorrentsActions extends PureComponent { clickHandler: this.handleStartTorrentsToggle, content: this.props.intl.formatMessage({ id: 'torrents.add.start.label', - defaultMessage: 'Start Torrent', }), id: 'start', triggerDismiss: false, @@ -23,7 +22,6 @@ class AddTorrentsActions extends PureComponent { clickHandler: null, content: this.props.intl.formatMessage({ id: 'button.cancel', - defaultMessage: 'Cancel', }), triggerDismiss: true, type: 'tertiary', @@ -32,7 +30,6 @@ class AddTorrentsActions extends PureComponent { clickHandler: this.props.onAddTorrentsClick, content: this.props.intl.formatMessage({ id: 'torrents.add.button.add', - defaultMessage: 'Add Torrent', }), isLoading: this.props.isAddingTorrents, submit: true, diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js index 10c1f153f..2f9a864b8 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js @@ -49,7 +49,7 @@ class AddTorrentsByFile extends React.Component { return ( {fileContent}
      - {' '} + {' '} - + .
      @@ -127,14 +127,12 @@ class AddTorrentsByFile extends React.Component { id="destination" label={this.props.intl.formatMessage({ id: 'torrents.add.destination.label', - defaultMessage: 'Destination', })} /> @@ -78,7 +76,6 @@ class AddTorrentsByURL extends React.Component { id="destination" label={this.props.intl.formatMessage({ id: 'torrents.add.destination.label', - defaultMessage: 'Destination', })} /> @@ -87,7 +84,6 @@ class AddTorrentsByURL extends React.Component { defaultValue={this.state.tags} label={this.props.intl.formatMessage({ id: 'torrents.add.tags', - defaultMessage: 'Tags', })} /> diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsModal.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsModal.js index ead2fa9d9..9fd67817a 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsModal.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsModal.js @@ -17,14 +17,12 @@ class AddTorrents extends React.Component { content: AddTorrentsByURL, label: this.props.intl.formatMessage({ id: 'torrents.add.tab.url.title', - defaultMessage: 'By URL', }), }, 'by-file': { content: AddTorrentsByFile, label: this.props.intl.formatMessage({ id: 'torrents.add.tab.file.title', - defaultMessage: 'By File', }), }, }; @@ -33,7 +31,6 @@ class AddTorrents extends React.Component { - + , ]; @@ -166,7 +157,7 @@ class DownloadRulesTab extends React.Component { [ - + , ], @@ -183,7 +174,6 @@ class DownloadRulesTab extends React.Component { id="label" label={this.props.intl.formatMessage({ id: 'feeds.label', - defaultMessage: 'Label', })} defaultValue={rule.label} /> @@ -192,7 +182,6 @@ class DownloadRulesTab extends React.Component { id="feedID" label={this.props.intl.formatMessage({ id: 'feeds.applicable.feed', - defaultMessage: 'Applicable Feed', })} defaultID={rule.feedID}> {this.getAvailableFeedsOptions()} @@ -203,7 +192,6 @@ class DownloadRulesTab extends React.Component { id="match" label={this.props.intl.formatMessage({ id: 'feeds.match.pattern', - defaultMessage: 'Match Pattern', })} placeholder={this.props.intl.formatMessage(MESSAGES.regEx)} defaultValue={rule.match} @@ -213,7 +201,6 @@ class DownloadRulesTab extends React.Component { id="exclude" label={this.props.intl.formatMessage({ id: 'feeds.exclude.pattern', - defaultMessage: 'Exclude Pattern', })} placeholder={this.props.intl.formatMessage(MESSAGES.regEx)} defaultValue={rule.exclude} @@ -224,7 +211,6 @@ class DownloadRulesTab extends React.Component { id="check" label={this.props.intl.formatMessage({ id: 'feeds.test.match', - defaultMessage: 'Test Match Pattern', })} placeholder={this.props.intl.formatMessage(MESSAGES.check)}> {doesPatternMatchTest && ( @@ -240,7 +226,6 @@ class DownloadRulesTab extends React.Component { id="destination" label={this.props.intl.formatMessage({ id: 'feeds.torrent.destination', - defaultMessage: 'Torrent Destination', })} suggested={rule.destination} /> @@ -249,7 +234,6 @@ class DownloadRulesTab extends React.Component { id="tags" label={this.props.intl.formatMessage({ id: 'feeds.apply.tags', - defaultMessage: 'Apply Tags', })} placeholder={this.props.intl.formatMessage(MESSAGES.tags)} defaultValue={rule.tags.join(', ')} @@ -258,13 +242,13 @@ class DownloadRulesTab extends React.Component { - + @@ -281,7 +265,7 @@ class DownloadRulesTab extends React.Component {
    • - {rule.exclude} + {rule.exclude}
    • ); } @@ -295,7 +279,7 @@ class DownloadRulesTab extends React.Component { tags = (
    • - {tagNodes} + {tagNodes}
    • ); } @@ -313,12 +297,7 @@ class DownloadRulesTab extends React.Component { className="interactive-list__detail-list__item interactive-list__detail-list__item--overflow interactive-list__detail interactive-list__detail--secondary"> - + {rule === this.state.currentlyEditingRule && (
    • - {rule.match} + {rule.match}
    • {excludeNode} {tags} @@ -359,7 +338,7 @@ class DownloadRulesTab extends React.Component { return (
      • - +
      ); @@ -441,7 +420,7 @@ class DownloadRulesTab extends React.Component { this.formRef = ref; }}> - + {errors} @@ -453,7 +432,7 @@ class DownloadRulesTab extends React.Component { )} diff --git a/client/src/javascript/components/modals/feeds-modal/FeedsModal.js b/client/src/javascript/components/modals/feeds-modal/FeedsModal.js index b602acc77..7e9f8879a 100644 --- a/client/src/javascript/components/modals/feeds-modal/FeedsModal.js +++ b/client/src/javascript/components/modals/feeds-modal/FeedsModal.js @@ -17,14 +17,12 @@ class FeedsModal extends React.Component { content: FeedsTab, label: this.props.intl.formatMessage({ id: 'feeds.tabs.feeds', - defaultMessage: 'Feeds', }), }, downloadRules: { content: DownloadRulesTab, label: this.props.intl.formatMessage({ id: 'feeds.tabs.download.rules', - defaultMessage: 'Download Rules', }), }, }; @@ -34,7 +32,6 @@ class FeedsModal extends React.Component { dismiss={this.props.dismiss} heading={this.props.intl.formatMessage({ id: 'feeds.tabs.heading', - defaultMessage: 'Torrent Feeds', })} orientation="horizontal" size="large" diff --git a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js index 13500a1de..564459e34 100644 --- a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js +++ b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js @@ -27,47 +27,36 @@ import connectStores from '../../../util/connectStores'; const MESSAGES = defineMessages({ mustSpecifyURL: { id: 'feeds.validation.must.specify.valid.feed.url', - defaultMessage: 'You must specify a valid feed URL.', }, mustSpecifyLabel: { id: 'feeds.validation.must.specify.label', - defaultMessage: 'You must specify a label.', }, intervalNotPositive: { id: 'feeds.validation.interval.not.positive', - defaultMessage: 'The interval must be a positive integer.', }, min: { id: 'feeds.time.min', - defaultMessage: 'Minutes', }, hr: { id: 'feeds.time.hr', - defaultMessage: 'Hours', }, day: { id: 'feeds.time.day', - defaultMessage: 'Days', }, url: { id: 'feeds.url', - defaultMessage: 'URL', }, label: { id: 'feeds.label', - defaultMessage: 'Label', }, interval: { id: 'feeds.interval', - defaultMessage: 'Interval', }, tags: { id: 'feeds.tags', - defaultMessage: 'Tags', }, search: { id: 'feeds.search', - defaultMessage: 'Search term', }, }); @@ -149,7 +138,7 @@ class FeedsTab extends React.Component { return [ - + , ]; @@ -165,7 +154,7 @@ class FeedsTab extends React.Component { [ - + , ], @@ -191,7 +180,6 @@ class FeedsTab extends React.Component { id="interval" label={this.props.intl.formatMessage({ id: 'feeds.select.interval', - defaultMessage: 'Interval', })} placeholder={this.props.intl.formatMessage(MESSAGES.interval)} defaultValue={defaultIntervalTextValue} @@ -206,16 +194,15 @@ class FeedsTab extends React.Component { id="url" label={this.props.intl.formatMessage({ id: 'feeds.url', - defaultMessage: 'URL', })} placeholder={this.props.intl.formatMessage(MESSAGES.url)} defaultValue={feed.url} /> @@ -237,12 +224,7 @@ class FeedsTab extends React.Component { className="interactive-list__detail-list__item interactive-list__detail-list__item--overflow interactive-list__detail interactive-list__detail--secondary"> - + {feed === this.state.currentlyEditingFeed && (
    • - + {errors} @@ -304,7 +286,7 @@ class FeedsTab extends React.Component { )} @@ -319,7 +301,7 @@ class FeedsTab extends React.Component { return (
      • - +
      ); @@ -340,7 +322,7 @@ class FeedsTab extends React.Component { this.manualAddingFormRef = ref; }}> - + }> + label={}> {this.getLanguageSelectOptions()} - + - + - + - + ; fileDetailContent = (
      - +
      ); } @@ -300,8 +300,6 @@ class TorrentFiles extends React.Component { diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js index 53a8dabed..fbec3ab98 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentGeneralInfo.js @@ -27,7 +27,7 @@ class TorrentGeneralInfo extends React.Component { const VALUE_NOT_AVAILABLE = ( - + ); @@ -37,12 +37,12 @@ class TorrentGeneralInfo extends React.Component { - + - + {dateAdded @@ -56,29 +56,27 @@ class TorrentGeneralInfo extends React.Component { - + {torrent.basePath} - + {torrent.ignoreScheduler === '1' ? this.props.intl.formatMessage({ id: 'torrents.details.general.scheduler.ignored', - defaultMessage: 'Ignored', }) : this.props.intl.formatMessage({ id: 'torrents.details.general.scheduler.obeyed', - defaultMessage: 'Obeyed', })} - + {torrent.tags.length ? this.getTags(torrent.tags) : VALUE_NOT_AVAILABLE} @@ -86,12 +84,12 @@ class TorrentGeneralInfo extends React.Component { - + - + @@ -100,12 +98,11 @@ class TorrentGeneralInfo extends React.Component { - + , @@ -116,12 +113,11 @@ class TorrentGeneralInfo extends React.Component { - + , @@ -132,18 +128,18 @@ class TorrentGeneralInfo extends React.Component { - + - + {torrent.comment || VALUE_NOT_AVAILABLE} - + {creation @@ -157,13 +153,13 @@ class TorrentGeneralInfo extends React.Component { - + {torrent.hash} - + @@ -171,28 +167,26 @@ class TorrentGeneralInfo extends React.Component { - + {torrent.isPrivate === '0' ? this.props.intl.formatMessage({ id: 'torrents.details.general.type.public', - defaultMessage: 'Public', }) : this.props.intl.formatMessage({ id: 'torrents.details.general.type.private', - defaultMessage: 'Private', })} - + - + {torrent.message ? torrent.message : VALUE_NOT_AVAILABLE} diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js index df0691a47..1c29c5516 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentHeading.js @@ -72,7 +72,7 @@ export default class TorrentHeading extends React.Component { // eslint-disable-next-line react/no-array-index-key
    • {statusIcons[torrentAction]} - +
    • , ); }); diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js index f0e717baf..3f6dcaef3 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js @@ -13,24 +13,18 @@ import TorrentStore from '../../../stores/TorrentStore'; const MESSAGES = defineMessages({ copy: { id: 'general.clipboard.copy', - defaultMessage: 'Copy', }, copied: { id: 'general.clipboard.copied', - defaultMessage: 'Copied', }, execError: { id: 'mediainfo.execError', - defaultMessage: - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', }, fetching: { id: 'mediainfo.fetching', - defaultMessage: 'Fetching...', }, heading: { id: 'mediainfo.heading', - defaultMessage: 'Mediainfo Output', }, }); @@ -96,7 +90,7 @@ class TorrentMediainfo extends React.Component { if (this.state.isFetchingMediainfo) { return (
      - +
      ); } @@ -107,7 +101,7 @@ class TorrentMediainfo extends React.Component { return (

      - +

      {JSON.stringify(errorData.error, null, 2)}
      @@ -125,7 +119,7 @@ class TorrentMediainfo extends React.Component {
      - +
      - + {peers.length} DL @@ -77,10 +77,7 @@ export default class TorrentPeers extends React.Component { } return ( - + ); } diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentTrackers.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentTrackers.js index ff19e8c3b..bbccfe6d2 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentTrackers.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentTrackers.js @@ -24,11 +24,11 @@ export default class TorrentTrackrs extends React.Component { - + {trackerCount} - + @@ -39,10 +39,7 @@ export default class TorrentTrackrs extends React.Component { } return ( - + ); } diff --git a/client/src/javascript/components/sidebar/DiskUsage.js b/client/src/javascript/components/sidebar/DiskUsage.js index 5dfd4e1fc..62be2e1ef 100644 --- a/client/src/javascript/components/sidebar/DiskUsage.js +++ b/client/src/javascript/components/sidebar/DiskUsage.js @@ -34,18 +34,9 @@ class DiskUsage extends React.Component { - } - /> - } - /> - } - /> + } /> + } /> + } />
    } position="top" @@ -71,7 +62,7 @@ class DiskUsage extends React.Component { return (
    • - +
    • {disks}
    diff --git a/client/src/javascript/components/sidebar/FeedsButton.js b/client/src/javascript/components/sidebar/FeedsButton.js index bc3bb950e..673bd0ce2 100644 --- a/client/src/javascript/components/sidebar/FeedsButton.js +++ b/client/src/javascript/components/sidebar/FeedsButton.js @@ -8,7 +8,6 @@ import UIActions from '../../actions/UIActions'; const MESSAGES = defineMessages({ feeds: { id: 'sidebar.button.feeds', - defaultMessage: 'Feeds', }, }); diff --git a/client/src/javascript/components/sidebar/LogoutButton.js b/client/src/javascript/components/sidebar/LogoutButton.js index 1363c5d96..6eb1c9c24 100644 --- a/client/src/javascript/components/sidebar/LogoutButton.js +++ b/client/src/javascript/components/sidebar/LogoutButton.js @@ -8,7 +8,6 @@ import Tooltip from '../general/Tooltip'; const MESSAGES = defineMessages({ logOut: { id: 'sidebar.button.log.out', - defaultMessage: 'Log Out', }, }); diff --git a/client/src/javascript/components/sidebar/NotificationsButton.js b/client/src/javascript/components/sidebar/NotificationsButton.js index 5e7afc129..df8188980 100644 --- a/client/src/javascript/components/sidebar/NotificationsButton.js +++ b/client/src/javascript/components/sidebar/NotificationsButton.js @@ -18,47 +18,36 @@ const loadingIndicatorIcon = ; const MESSAGES = defineMessages({ notifications: { id: 'sidebar.button.notifications', - defaultMessage: 'Notifications', }, 'notification.torrent.finished.heading': { id: 'notification.torrent.finished.heading', - defaultMessage: 'Finished Downloading', }, 'notification.torrent.finished.body': { id: 'notification.torrent.finished.body', - defaultMessage: '{name}', }, 'notification.torrent.errored.heading': { id: 'notification.torrent.errored.heading', - defaultMessage: 'Error Reported', }, 'notification.torrent.errored.body': { id: 'notification.torrent.errored.body', - defaultMessage: '{name}', }, 'notification.feed.downloaded.torrent.heading': { id: 'notification.feed.downloaded.torrent.heading', - defaultMessage: 'Matched Feed Rule', }, clearAll: { id: 'notification.clear.all', - defaultMessage: 'Clear All', }, showing: { id: 'notification.showing', - defaultMessage: 'Showing', }, at: { id: 'general.at', - defaultMessage: 'at', }, to: { id: 'general.to', - defaultMessage: 'to', }, of: { id: 'general.of', - defaultMessage: 'of', }, }); @@ -164,7 +153,6 @@ class NotificationsButton extends React.Component { notificationBody = ( diff --git a/client/src/javascript/components/sidebar/SearchTorrents.js b/client/src/javascript/components/sidebar/SearchTorrents.js index ddf6be35d..f602cfb16 100644 --- a/client/src/javascript/components/sidebar/SearchTorrents.js +++ b/client/src/javascript/components/sidebar/SearchTorrents.js @@ -70,7 +70,6 @@ class SearchBox extends React.Component { type="text" placeholder={this.props.intl.formatMessage({ id: 'sidebar.search.placeholder', - defaultMessage: 'Search torrents', })} onChange={this.handleSearchChange} /> diff --git a/client/src/javascript/components/sidebar/SettingsButton.js b/client/src/javascript/components/sidebar/SettingsButton.js index 6dd8e54af..688a0bc5e 100644 --- a/client/src/javascript/components/sidebar/SettingsButton.js +++ b/client/src/javascript/components/sidebar/SettingsButton.js @@ -8,7 +8,6 @@ import UIActions from '../../actions/UIActions'; const MESSAGES = defineMessages({ settings: { id: 'sidebar.button.settings', - defaultMessage: 'Settings', }, }); const METHODS_TO_BIND = ['handleSettingsButtonClick']; diff --git a/client/src/javascript/components/sidebar/SidebarFilter.js b/client/src/javascript/components/sidebar/SidebarFilter.js index f9e75e1dd..38537e3ef 100644 --- a/client/src/javascript/components/sidebar/SidebarFilter.js +++ b/client/src/javascript/components/sidebar/SidebarFilter.js @@ -28,12 +28,10 @@ class SidebarFilter extends React.Component { if (this.props.name === 'all') { name = this.props.intl.formatMessage({ id: 'filter.all', - defaultMessage: 'All', }); } else if (this.props.name === 'untagged') { name = this.props.intl.formatMessage({ id: 'filter.untagged', - defaultMessage: 'Untagged', }); } diff --git a/client/src/javascript/components/sidebar/SpeedLimitDropdown.js b/client/src/javascript/components/sidebar/SpeedLimitDropdown.js index 14bb6edb2..cf06d786c 100644 --- a/client/src/javascript/components/sidebar/SpeedLimitDropdown.js +++ b/client/src/javascript/components/sidebar/SpeedLimitDropdown.js @@ -14,11 +14,9 @@ import TransferDataStore from '../../stores/TransferDataStore'; const MESSAGES = defineMessages({ speedLimits: { - defaultMessage: 'Speed Limits', id: 'sidebar.button.speedlimits', }, unlimited: { - defaultMessage: 'Unlimited', id: 'speed.unlimited', }, }); diff --git a/client/src/javascript/components/sidebar/StatusFilters.js b/client/src/javascript/components/sidebar/StatusFilters.js index 54a7867f6..6a033c40d 100644 --- a/client/src/javascript/components/sidebar/StatusFilters.js +++ b/client/src/javascript/components/sidebar/StatusFilters.js @@ -25,7 +25,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.all', - defaultMessage: 'All', }), slug: 'all', icon: , @@ -33,7 +32,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.downloading', - defaultMessage: 'Downloading', }), slug: 'downloading', icon: , @@ -41,7 +39,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.checking', - defaultMessage: 'Checking', }), slug: 'checking', icon: , @@ -49,7 +46,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.completed', - defaultMessage: 'Complete', }), slug: 'complete', icon: , @@ -57,7 +53,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.stopped', - defaultMessage: 'Stopped', }), slug: 'stopped', icon: , @@ -65,7 +60,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.active', - defaultMessage: 'Active', }), slug: 'active', icon: , @@ -73,7 +67,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.inactive', - defaultMessage: 'Inactive', }), slug: 'inactive', icon: , @@ -81,7 +74,6 @@ class StatusFilters extends React.Component { { label: this.props.intl.formatMessage({ id: 'filter.status.error', - defaultMessage: 'Error', }), slug: 'error', icon: , @@ -109,7 +101,7 @@ class StatusFilters extends React.Component { return (
    • - +
    • {filters}
    diff --git a/client/src/javascript/components/sidebar/TagFilters.js b/client/src/javascript/components/sidebar/TagFilters.js index 49871cd12..3d23adbfd 100644 --- a/client/src/javascript/components/sidebar/TagFilters.js +++ b/client/src/javascript/components/sidebar/TagFilters.js @@ -52,7 +52,7 @@ class TagFilters extends React.Component { return (
    • - +
    • {this.getFilters()}
    diff --git a/client/src/javascript/components/sidebar/TrackerFilters.js b/client/src/javascript/components/sidebar/TrackerFilters.js index bffebfb58..d983f857a 100644 --- a/client/src/javascript/components/sidebar/TrackerFilters.js +++ b/client/src/javascript/components/sidebar/TrackerFilters.js @@ -54,7 +54,7 @@ class TrackerFilters extends React.Component { return (
    • - +
    • {filters}
    diff --git a/client/src/javascript/components/sidebar/TransferRateDetails.js b/client/src/javascript/components/sidebar/TransferRateDetails.js index f65f11018..bdbc76c86 100644 --- a/client/src/javascript/components/sidebar/TransferRateDetails.js +++ b/client/src/javascript/components/sidebar/TransferRateDetails.js @@ -17,7 +17,6 @@ import Upload from '../icons/Upload'; const messages = defineMessages({ ago: { id: 'general.ago', - defaultMessage: 'ago', }, }); diff --git a/client/src/javascript/components/torrent-list/ActionBar.js b/client/src/javascript/components/torrent-list/ActionBar.js index ef0fae5e1..6d2cd35cf 100644 --- a/client/src/javascript/components/torrent-list/ActionBar.js +++ b/client/src/javascript/components/torrent-list/ActionBar.js @@ -58,7 +58,6 @@ class ActionBar extends React.Component { } @@ -67,7 +66,6 @@ class ActionBar extends React.Component { } @@ -78,7 +76,6 @@ class ActionBar extends React.Component { } @@ -87,7 +84,6 @@ class ActionBar extends React.Component { } diff --git a/client/src/javascript/components/torrent-list/SortDropdown.js b/client/src/javascript/components/torrent-list/SortDropdown.js index e6dd3f26e..34ff2527a 100644 --- a/client/src/javascript/components/torrent-list/SortDropdown.js +++ b/client/src/javascript/components/torrent-list/SortDropdown.js @@ -38,10 +38,10 @@ class SortDropdown extends React.Component { return ( ); diff --git a/client/src/javascript/components/torrent-list/TableHeading.js b/client/src/javascript/components/torrent-list/TableHeading.js index 443730985..ddb165391 100644 --- a/client/src/javascript/components/torrent-list/TableHeading.js +++ b/client/src/javascript/components/torrent-list/TableHeading.js @@ -124,9 +124,7 @@ class TableHeading extends React.Component { [`table__heading--direction--${sortProp.direction}`]: isSortActive, }); - const label = ( - - ); + const label = ; accumulator.push(
    {label} diff --git a/client/src/javascript/components/torrent-list/TorrentDetail.js b/client/src/javascript/components/torrent-list/TorrentDetail.js index 255ad11ec..f74f781aa 100644 --- a/client/src/javascript/components/torrent-list/TorrentDetail.js +++ b/client/src/javascript/components/torrent-list/TorrentDetail.js @@ -48,12 +48,11 @@ const dateRenderer = (date) => ; const peersRenderer = (peersConnected, totalPeers) => ( , of: ( - + ), total: , diff --git a/client/src/javascript/components/torrent-list/TorrentList.js b/client/src/javascript/components/torrent-list/TorrentList.js index 6868dd191..4b0a9fca6 100644 --- a/client/src/javascript/components/torrent-list/TorrentList.js +++ b/client/src/javascript/components/torrent-list/TorrentList.js @@ -87,7 +87,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.start', - defaultMessage: 'Start', }), }, { @@ -95,7 +94,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.stop', - defaultMessage: 'Stop', }), }, { @@ -103,7 +101,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.remove', - defaultMessage: 'Remove', }), }, { @@ -111,7 +108,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.check.hash', - defaultMessage: 'Check Hash', }), }, { @@ -122,7 +118,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.set.tags', - defaultMessage: 'Set Tags', }), }, { @@ -130,7 +125,6 @@ class TorrentListContainer extends React.Component { clickHandler, label: intl.formatMessage({ id: 'torrents.list.context.move', - defaultMessage: 'Set Torrent Location', }), }, { @@ -143,7 +137,6 @@ class TorrentListContainer extends React.Component { }, label: intl.formatMessage({ id: 'torrents.list.context.details', - defaultMessage: 'Torrent Details', }), }, { @@ -153,7 +146,6 @@ class TorrentListContainer extends React.Component { }, label: intl.formatMessage({ id: 'torrents.list.context.download', - defaultMessage: 'Download', }), }, { @@ -162,7 +154,6 @@ class TorrentListContainer extends React.Component { dismissMenu: false, label: intl.formatMessage({ id: 'torrents.list.context.priority', - defaultMessage: 'Priority', }), labelAction: (
    ); @@ -303,7 +294,7 @@ class TorrentListContainer extends React.Component { return (
    - +
    {clearFilters}
    @@ -461,7 +452,7 @@ class TorrentListContainer extends React.Component { content = (
    - +
    ); @@ -526,7 +517,7 @@ class TorrentListContainer extends React.Component {
    - + diff --git a/client/src/javascript/constants/Alerts.js b/client/src/javascript/constants/Alerts.js deleted file mode 100644 index 012f335df..000000000 --- a/client/src/javascript/constants/Alerts.js +++ /dev/null @@ -1,29 +0,0 @@ -const ALERTS = { - 'alert.torrent.add': `Successfully added {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, - =1 {torrent} - other {torrents} - }.`, - 'alert.settings.saved': 'Successfully saved settings.', -}; - -export default ALERTS; diff --git a/client/src/javascript/constants/Languages.js b/client/src/javascript/constants/Languages.js index f77a3ed64..dd8fad1b3 100644 --- a/client/src/javascript/constants/Languages.js +++ b/client/src/javascript/constants/Languages.js @@ -1,6 +1,5 @@ const LANGUAGES = { auto: { - defaultMessage: 'Automatic', id: 'locale.language.auto', }, en: 'English', diff --git a/client/src/javascript/constants/TorrentProperties.js b/client/src/javascript/constants/TorrentProperties.js index 9eef6f3bc..a8bc5cb3b 100644 --- a/client/src/javascript/constants/TorrentProperties.js +++ b/client/src/javascript/constants/TorrentProperties.js @@ -1,87 +1,66 @@ const torrentProperties = { dateAdded: { id: 'torrents.properties.date.added', - defaultMessage: 'Date Added', }, downRate: { id: 'torrents.properties.download.speed', - defaultMessage: 'Download Speed', }, downTotal: { id: 'torrents.properties.download.total', - defaultMessage: 'Downloaded', }, eta: { id: 'torrents.properties.eta', - defaultMessage: 'ETA', }, name: { id: 'torrents.properties.name', - defaultMessage: 'Name', }, peers: { id: 'torrents.properties.peers', - defaultMessage: 'Peers', }, percentComplete: { id: 'torrents.properties.percentage', - defaultMessage: 'Percent Complete', }, ratio: { id: 'torrents.properties.ratio', - defaultMessage: 'Ratio', }, seeds: { id: 'torrents.properties.seeds', - defaultMessage: 'Seeds', }, sizeBytes: { id: 'torrents.properties.size', - defaultMessage: 'File Size', }, tags: { id: 'torrents.properties.tags', - defaultMessage: 'Tags', }, upRate: { id: 'torrents.properties.upload.speed', - defaultMessage: 'Upload Speed', }, upTotal: { id: 'torrents.properties.upload.total', - defaultMessage: 'Uploaded', }, dateCreated: { id: 'torrents.properties.creation.date', - defaultMessage: 'Creation Date', }, basePath: { id: 'torrents.properties.base.path', - defaultMessage: 'Base Path', }, ignoreScheduler: { id: 'torrents.properties.ignore.schedule', - defaultMessage: 'Ignore Scheduler', }, comment: { id: 'torrents.properties.comment', - defaultMessage: 'Comment', }, hash: { id: 'torrents.properties.hash', - defaultMessage: 'Hash', }, isPrivate: { id: 'torrents.properties.is.private', - defaultMessage: 'Private', }, message: { id: 'torrents.properties.tracker.message', - defaultMessage: 'Tracker Message', }, trackerURIs: { id: 'torrents.properties.trackers', - defaultMessage: 'Trackers', }, }; From ffe880794496289b9c8fe797cd3425d543827601 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 17:49:03 +0800 Subject: [PATCH 029/651] SpeedLimitDropdown: use i18n texts for DOWNLOAD and UPLOAD --- .../components/sidebar/SpeedLimitDropdown.js | 10 +++++++++- client/src/javascript/i18n/strings.js | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/client/src/javascript/components/sidebar/SpeedLimitDropdown.js b/client/src/javascript/components/sidebar/SpeedLimitDropdown.js index cf06d786c..814e7c58a 100644 --- a/client/src/javascript/components/sidebar/SpeedLimitDropdown.js +++ b/client/src/javascript/components/sidebar/SpeedLimitDropdown.js @@ -16,6 +16,12 @@ const MESSAGES = defineMessages({ speedLimits: { id: 'sidebar.button.speedlimits', }, + download: { + id: 'sidebar.speedlimits.download', + }, + upload: { + id: 'sidebar.speedlimits.upload', + }, unlimited: { id: 'speed.unlimited', }, @@ -62,7 +68,9 @@ class SpeedLimitDropdown extends React.Component { getSpeedList(property) { const heading = { className: `dropdown__label dropdown__label--${property}`, - displayName: `${property.charAt(0).toUpperCase()}${property.slice(1)}`, + ...(property === 'download' + ? {displayName: this.props.intl.formatMessage(MESSAGES.download)} + : {displayName: this.props.intl.formatMessage(MESSAGES.upload)}), selectable: false, value: null, }; diff --git a/client/src/javascript/i18n/strings.js b/client/src/javascript/i18n/strings.js index 58d47d097..c4b0bc47a 100644 --- a/client/src/javascript/i18n/strings.js +++ b/client/src/javascript/i18n/strings.js @@ -197,6 +197,9 @@ export default { 'sidebar.transferdata.downloaded': 'Downloaded', 'sidebar.transferdata.uploaded': 'Uploaded', + 'sidebar.speedlimits.download': 'DOWNLOAD', + 'sidebar.speedlimits.upload': 'UPLOAD', + 'speed.unlimited': 'Unlimited', 'unit.size.byte': 'B', From 6d0a4ecf517a4e3fbf005b5f9b3979b8ba547d1d Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 17:51:55 +0800 Subject: [PATCH 030/651] i18n: enable additional languages --- client/src/javascript/constants/Languages.js | 12 +++ client/src/javascript/i18n/languages.ts | 97 ++++++++++++++++++-- 2 files changed, 102 insertions(+), 7 deletions(-) diff --git a/client/src/javascript/constants/Languages.js b/client/src/javascript/constants/Languages.js index dd8fad1b3..a57d3c499 100644 --- a/client/src/javascript/constants/Languages.js +++ b/client/src/javascript/constants/Languages.js @@ -3,12 +3,24 @@ const LANGUAGES = { id: 'locale.language.auto', }, en: 'English', + cs: 'Čeština', + de: 'Deutsch', es: 'Español', fr: 'Français', + it: 'italiano', nl: 'Nederlands', + no: 'norsk', + pl: 'Polskie', + pt: 'português', + ru: 'русский язык', + ro: 'Romanian', + sv: 'svenska', + uk: 'українська мова', ko: '한국어', + ja: '日本語', 'zh-Hans': '中文(简体)', 'zh-Hant': '中文(繁體)', + ar: 'اَلْعَرَبِيَّةُ', }; export default LANGUAGES; diff --git a/client/src/javascript/i18n/languages.ts b/client/src/javascript/i18n/languages.ts index 7e7dc5392..6d17374f0 100644 --- a/client/src/javascript/i18n/languages.ts +++ b/client/src/javascript/i18n/languages.ts @@ -1,31 +1,74 @@ import {addLocaleData} from 'react-intl'; -import deLocaleData from 'react-intl/locale-data/de'; import enLocaleData from 'react-intl/locale-data/en'; +import csLocaleData from 'react-intl/locale-data/cs'; +import deLocaleData from 'react-intl/locale-data/de'; import esLocaleData from 'react-intl/locale-data/es'; import frLocaleData from 'react-intl/locale-data/fr'; -import koLocaleData from 'react-intl/locale-data/ko'; +import itLocaleData from 'react-intl/locale-data/it'; import nlLocaleData from 'react-intl/locale-data/nl'; +import noLocaleData from 'react-intl/locale-data/no'; +import plLocaleData from 'react-intl/locale-data/pl'; +import ptLocaleData from 'react-intl/locale-data/pt'; +import ruLocaleData from 'react-intl/locale-data/ru'; +import roLocaleData from 'react-intl/locale-data/ro'; +import svLocaleData from 'react-intl/locale-data/sv'; +import ukLocaleData from 'react-intl/locale-data/uk'; +import koLocaleData from 'react-intl/locale-data/ko'; +import jaLocaleData from 'react-intl/locale-data/ja'; import zhLocaleData from 'react-intl/locale-data/zh'; +import arLocaleData from 'react-intl/locale-data/ar'; import EN from './strings'; + +import CS from './translations/cs'; +import DE from './translations/de'; import ES from './translations/es'; import FR from './translations/fr'; -import KO from './translations/ko'; +import IT from './translations/it'; import NL from './translations/nl'; +import NO from './translations/no'; +import PL from './translations/pl'; +import PT from './translations/pt'; +import RU from './translations/ru'; +import RO from './translations/ro'; +import SV from './translations/sv'; +import UK from './translations/uk'; +import KO from './translations/ko'; +import JA from './translations/ja'; import ZH_HANS from './translations/zh-Hans'; import ZH_HANT from './translations/zh-Hant'; +import AR from './translations/ar'; -addLocaleData(deLocaleData); addLocaleData(enLocaleData); +addLocaleData(csLocaleData); +addLocaleData(deLocaleData); addLocaleData(esLocaleData); addLocaleData(frLocaleData); -addLocaleData(koLocaleData); +addLocaleData(itLocaleData); addLocaleData(nlLocaleData); +addLocaleData(noLocaleData); +addLocaleData(plLocaleData); +addLocaleData(ptLocaleData); +addLocaleData(ruLocaleData); +addLocaleData(roLocaleData); +addLocaleData(svLocaleData); +addLocaleData(ukLocaleData); +addLocaleData(koLocaleData); +addLocaleData(jaLocaleData); addLocaleData(zhLocaleData); +addLocaleData(arLocaleData); export const languages = { auto: EN, en: EN, + cs: { + ...EN, + ...CS, + }, + de: { + ...EN, + ...DE, + }, es: { ...EN, ...ES, @@ -34,14 +77,50 @@ export const languages = { ...EN, ...FR, }, - ko: { + it: { ...EN, - ...KO, + ...IT, }, nl: { ...EN, ...NL, }, + no: { + ...EN, + ...NO, + }, + pl: { + ...EN, + ...PL, + }, + pt: { + ...EN, + ...PT, + }, + ru: { + ...EN, + ...RU, + }, + ro: { + ...EN, + ...RO, + }, + sv: { + ...EN, + ...SV, + }, + uk: { + ...EN, + ...UK, + }, + ko: { + ...EN, + ...KO, + }, + ja: { + ...EN, + ...JA, + }, 'zh-Hans': { ...EN, ...ZH_HANT, @@ -52,4 +131,8 @@ export const languages = { ...ZH_HANS, ...ZH_HANT, }, + ar: { + ...EN, + ...AR, + }, }; From cb7811f85d6d6db1344e8f03a64a17bbe1f274e7 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 15:49:44 +0800 Subject: [PATCH 031/651] i18n: add missing strings --- client/src/javascript/i18n/strings.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/client/src/javascript/i18n/strings.js b/client/src/javascript/i18n/strings.js index c4b0bc47a..239909ac2 100644 --- a/client/src/javascript/i18n/strings.js +++ b/client/src/javascript/i18n/strings.js @@ -80,6 +80,7 @@ export default { 'feeds.validation.must.specify.destination': 'You must specify a destination.', 'feeds.validation.must.specify.label': 'You must specify a label.', 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', + 'feeds.validation.interval.not.positive': 'The interval must be a positive integer.', 'feeds.browse.feeds': 'Browse feeds', 'filesystem.empty.directory': 'Empty directory.', @@ -276,6 +277,7 @@ export default { 'torrents.list.context.details': 'Torrent Details', 'torrents.list.context.move': 'Set Torrent Location', 'torrents.list.context.pause': 'Pause', + 'torrents.list.context.download': 'Download', 'torrents.list.context.priority': 'Priority', 'torrents.list.context.remove': 'Remove', 'torrents.list.context.set.tags': 'Set Tags', @@ -312,6 +314,9 @@ export default { 'torrents.properties.tracker.message': 'Tracker Message', 'torrents.properties.upload.speed': 'Upload Speed', 'torrents.properties.upload.total': 'Uploaded', + 'torrents.properties.seeds': 'Seeds', + 'torrents.properties.peers': 'Peers', + 'torrents.properties.trackers': 'Trackers', 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, 'torrents.remove.delete.data': 'Delete data', @@ -332,4 +337,11 @@ export default { 'status.diskusage.title': 'Disk Usage', 'locale.language.auto': 'Automatic', + + 'window.title': '\u2193 {down} \u2191 {up} - Flood', + 'dependency.loading.notifications': 'Notifications', + 'dependency.loading.torrent.taxonomy': 'Torrent Taxonomy', + 'dependency.loading.transfer.rate.details': 'Data Transfer Rate Details', + 'dependency.loading.transfer.history': 'Data Transfer History', + 'dependency.loading.torrent.list': 'Torrent List', }; From fa84484d590465a4f66043539181672ca7cbec43 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 18:23:38 +0800 Subject: [PATCH 032/651] README: add Crowdin badge --- ABOUT.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ABOUT.md b/ABOUT.md index 4db9dbcc0..10422cf98 100644 --- a/ABOUT.md +++ b/ABOUT.md @@ -1,6 +1,6 @@ # Flood -[![Github Actions build status badge](https://github.com/jesec/flood/workflows/Build/badge.svg?branch=master&event=push)](https://github.com/jesec/flood/actions) [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf) +[![Github Actions build status badge](https://github.com/jesec/flood/workflows/Build/badge.svg?branch=master&event=push)](https://github.com/jesec/flood/actions) [![Crowdin](https://badges.crowdin.net/flood/localized.svg)](https://crowdin.com/project/flood) [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf) Flood is a monitoring service for [rTorrent](https://github.com/rakshasa/rtorrent). It's a Node.js service that communicates with rTorrent instances and serves a decent web UI for administration. It's a work-in-progress. diff --git a/README.md b/README.md index 51920ff00..cb989de32 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Flood logo](flood.png) -[![Github Actions build status badge](https://github.com/jesec/flood/workflows/Build/badge.svg?branch=master&event=push)](https://github.com/jesec/flood/actions) [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf) +[![Github Actions build status badge](https://github.com/jesec/flood/workflows/Build/badge.svg?branch=master&event=push)](https://github.com/jesec/flood/actions) [![Crowdin](https://badges.crowdin.net/flood/localized.svg)](https://crowdin.com/project/flood) [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf) Flood is a monitoring service for [rTorrent](https://github.com/rakshasa/rtorrent). It's a Node.js service that communicates with rTorrent instances and serves a decent web UI for administration. It's a work-in-progress. From bba21a5be2f5799f5a4e53038b5e1fe8a8fd0970 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 18:39:15 +0800 Subject: [PATCH 033/651] StatusFilters: hide checking and error filters when none exists These two states are not normal states. --- client/src/javascript/components/sidebar/SidebarFilter.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/src/javascript/components/sidebar/SidebarFilter.js b/client/src/javascript/components/sidebar/SidebarFilter.js index 38537e3ef..a3461a727 100644 --- a/client/src/javascript/components/sidebar/SidebarFilter.js +++ b/client/src/javascript/components/sidebar/SidebarFilter.js @@ -35,6 +35,12 @@ class SidebarFilter extends React.Component { }); } + if (this.props.slug === 'checking' || this.props.slug === 'error') { + if (this.props.count === 0) { + return null; + } + } + return (
  • {this.props.icon} From cdbcebadf628772e2241f0cb04f8b7075e28cba1 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 19:58:25 +0800 Subject: [PATCH 034/651] dependencies: bump react-intl to 5.4.7 (major) --- client/src/javascript/i18n/languages.ts | 39 ------ package-lock.json | 161 ++++++++++++++++++------ package.json | 3 +- 3 files changed, 127 insertions(+), 76 deletions(-) diff --git a/client/src/javascript/i18n/languages.ts b/client/src/javascript/i18n/languages.ts index 6d17374f0..5f5a9fe10 100644 --- a/client/src/javascript/i18n/languages.ts +++ b/client/src/javascript/i18n/languages.ts @@ -1,23 +1,3 @@ -import {addLocaleData} from 'react-intl'; -import enLocaleData from 'react-intl/locale-data/en'; -import csLocaleData from 'react-intl/locale-data/cs'; -import deLocaleData from 'react-intl/locale-data/de'; -import esLocaleData from 'react-intl/locale-data/es'; -import frLocaleData from 'react-intl/locale-data/fr'; -import itLocaleData from 'react-intl/locale-data/it'; -import nlLocaleData from 'react-intl/locale-data/nl'; -import noLocaleData from 'react-intl/locale-data/no'; -import plLocaleData from 'react-intl/locale-data/pl'; -import ptLocaleData from 'react-intl/locale-data/pt'; -import ruLocaleData from 'react-intl/locale-data/ru'; -import roLocaleData from 'react-intl/locale-data/ro'; -import svLocaleData from 'react-intl/locale-data/sv'; -import ukLocaleData from 'react-intl/locale-data/uk'; -import koLocaleData from 'react-intl/locale-data/ko'; -import jaLocaleData from 'react-intl/locale-data/ja'; -import zhLocaleData from 'react-intl/locale-data/zh'; -import arLocaleData from 'react-intl/locale-data/ar'; - import EN from './strings'; import CS from './translations/cs'; @@ -39,25 +19,6 @@ import ZH_HANS from './translations/zh-Hans'; import ZH_HANT from './translations/zh-Hant'; import AR from './translations/ar'; -addLocaleData(enLocaleData); -addLocaleData(csLocaleData); -addLocaleData(deLocaleData); -addLocaleData(esLocaleData); -addLocaleData(frLocaleData); -addLocaleData(itLocaleData); -addLocaleData(nlLocaleData); -addLocaleData(noLocaleData); -addLocaleData(plLocaleData); -addLocaleData(ptLocaleData); -addLocaleData(ruLocaleData); -addLocaleData(roLocaleData); -addLocaleData(svLocaleData); -addLocaleData(ukLocaleData); -addLocaleData(koLocaleData); -addLocaleData(jaLocaleData); -addLocaleData(zhLocaleData); -addLocaleData(arLocaleData); - export const languages = { auto: EN, en: EN, diff --git a/package-lock.json b/package-lock.json index 39bf4647c..5678e693b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1203,6 +1203,70 @@ "to-fast-properties": "^2.0.0" } }, + "@formatjs/intl-datetimeformat": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.3.1.tgz", + "integrity": "sha512-i1H3hflcILP40ETiaaWcmLOdkt/iDbfn/2Z8aCWss/IgP2b7r/mCXbgaRJh1dh6pCpmbLp5g4lpIrkvUKuhUtA==", + "requires": { + "@formatjs/intl-getcanonicallocales": "^1.3.1", + "@formatjs/intl-utils": "^3.8.2" + } + }, + "@formatjs/intl-displaynames": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-3.1.7.tgz", + "integrity": "sha512-a0aOuCa8HUEq/vnc3cT88Ocww9tC6KbXhgfk4OzB38acFBWi34lAHTEC34ZmkJg1ASdWkbXOi18WdXNzEZCXZg==", + "requires": { + "@formatjs/intl-utils": "^3.8.2" + } + }, + "@formatjs/intl-getcanonicallocales": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.3.1.tgz", + "integrity": "sha512-0E1ZOTwIB8zEjqnW4V7k0gBVdmtbXiLfq1sWhX28Uq59iTmo+zoADre9dIr15Sx6Kl+4JgC6Mu9/bP3F746Fjg==", + "requires": { + "cldr-core": "36.0.0" + } + }, + "@formatjs/intl-listformat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-4.0.0.tgz", + "integrity": "sha512-ptWeK9LSuvWZswZP0NpGkchoBOSi+brrbGC2MxakitkXb6o1smDtnLnQP0Ai/yv0/xR1bV+D8n9o++ycUgXwaA==", + "requires": { + "@formatjs/intl-utils": "^3.8.2" + } + }, + "@formatjs/intl-numberformat": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.3.3.tgz", + "integrity": "sha512-keU4arK7WoQMMfUuXzVP5nPzKFXrNpcNne/58OxxDxoJfqiv4vHiBjHHfPzy5xf+1rgnoplaV1mabNt1HTPtwA==", + "requires": { + "@formatjs/intl-utils": "^3.8.2" + } + }, + "@formatjs/intl-relativetimeformat": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.0.0.tgz", + "integrity": "sha512-QQpQezSY8Q5H/PZVvPAs8SFhoUVXM52le+UgKAYTyAkeC4lr+DkX4ZP7Msateu81K1jFB8jhxcSOUEzGie7g2w==", + "requires": { + "@formatjs/intl-utils": "^3.8.2" + } + }, + "@formatjs/intl-utils": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.8.2.tgz", + "integrity": "sha512-34J1HmuNSRYQgJ6Gi/dYJQzdDsyAPJOrzXx977UajrhlXlI+0dvoqleP4W+Qtyc65EqzTGtUSgqLYhoPty8v3w==", + "requires": { + "emojis-list": "^3.0.0" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + } + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -1372,6 +1436,25 @@ "integrity": "sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg==", "dev": true }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + } + } + }, "@types/html-minifier-terser": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz", @@ -1421,11 +1504,6 @@ "@types/react": "*" } }, - "@types/react-intl": { - "version": "2.3.18", - "resolved": "https://registry.npmjs.org/@types/react-intl/-/react-intl-2.3.18.tgz", - "integrity": "sha512-DVNJs49zUxKRZng8VuILE886Yihdsf3yLr5vHk9zJrmF8SyRSK3sxNSvikAKxNkv9hX55XBTJShz6CkJnbNjgg==" - }, "@types/react-router": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.8.tgz", @@ -3970,6 +4048,11 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, + "cldr-core": { + "version": "36.0.0", + "resolved": "https://registry.npmjs.org/cldr-core/-/cldr-core-36.0.0.tgz", + "integrity": "sha512-QLnAjt20rZe38c8h8OJ9jPND+O4o5O8Nw0TK/P3KpNn1cmOhMu0rk6Kc3ap96c5OStQ9gAngs9+Be2sum26NOw==" + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -7009,6 +7092,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -8974,30 +9062,21 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "intl-format-cache": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", - "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" - }, "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.2.0.tgz", + "integrity": "sha512-mdASJPZpKfhbM//NLNIETArWgVL06j5M9ZdhgiKBO4XayS4GQHnXW+zVUE5iAwHcGZIKzvdWCj4D4kmNzUmEzA==", "requires": { - "intl-messageformat-parser": "1.4.0" + "fast-memoize": "^2.5.2", + "intl-messageformat-parser": "^5.3.7" } }, "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" - }, - "intl-relativeformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", - "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.3.7.tgz", + "integrity": "sha512-83C+eODXu/zfR35bKjSz/HKEGkNSHbsF1WOuZDgFs/TudaEuVIZ8pstQYFyY0CIuCGXomcSevrFW1d4y7nW5xw==", "requires": { - "intl-messageformat": "^2.0.0" + "@formatjs/intl-numberformat": "^5.3.3" } }, "invariant": { @@ -13028,21 +13107,28 @@ "dev": true }, "react-intl": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", - "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", - "requires": { - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^2.0.5", - "intl-messageformat": "^2.1.0", - "intl-relativeformat": "^2.1.0", - "invariant": "^2.1.1" + "version": "5.4.7", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.4.7.tgz", + "integrity": "sha512-oiR/w6KdVTFGa2LlycQYfumbbE0/YRymhmvj8diGYo3vvDjlZjjB1V/bzaGNWPhbNWwJXeMH+WHVylATHMCYbQ==", + "requires": { + "@formatjs/intl-datetimeformat": "^2.3.1", + "@formatjs/intl-displaynames": "^3.1.7", + "@formatjs/intl-listformat": "^4.0.0", + "@formatjs/intl-numberformat": "^5.3.3", + "@formatjs/intl-relativetimeformat": "^7.0.0", + "@formatjs/intl-utils": "^3.8.2", + "@types/hoist-non-react-statics": "^3.3.1", + "fast-memoize": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "^9.2.0", + "intl-messageformat-parser": "^5.3.7", + "shallow-equal": "^1.2.1" }, "dependencies": { "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "requires": { "react-is": "^16.7.0" } @@ -14372,6 +14458,11 @@ "safe-buffer": "^5.0.1" } }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", diff --git a/package.json b/package.json index fe725e2a4..4d7a6611c 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "@babel/preset-react": "^7.10.4", "@babel/preset-typescript": "^7.10.4", "@types/react-dom": "^16.9.8", - "@types/react-intl": "^2.3.18", "argon2": "^0.26.2", "autoprefixer": "^9.8.6", "axios": "^0.19.2", @@ -80,7 +79,7 @@ "react-dnd-html5-backend": "^2.6.0", "react-dom": "^16.13.1", "react-dropzone": "^4.3.0", - "react-intl": "^2.9.0", + "react-intl": "^5.4.7", "react-markdown": "^4.3.1", "react-measure": "^2.3.0", "react-router": "^5.2.0", From a8dfd4422a637ddbc5820d6c2202798b5901a052 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 20:01:54 +0800 Subject: [PATCH 035/651] dependencies: "npm update" (patch) --- package-lock.json | 104 +++++++++++++++------------------------------- package.json | 8 ++-- 2 files changed, 38 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5678e693b..5bba70069 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,15 +23,15 @@ } }, "@babel/core": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.0.tgz", - "integrity": "sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.11.0", "@babel/helper-module-transforms": "^7.11.0", "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.0", + "@babel/parser": "^7.11.1", "@babel/template": "^7.10.4", "@babel/traverse": "^7.11.0", "@babel/types": "^7.11.0", @@ -61,34 +61,21 @@ "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } } }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "@babel/parser": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", + "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==" }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ms": "^2.1.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } @@ -1488,9 +1475,9 @@ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" }, "@types/react": { - "version": "16.9.44", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.44.tgz", - "integrity": "sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ==", + "version": "16.9.46", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.46.tgz", + "integrity": "sha512-dbHzO3aAq1lB3jRQuNpuZ/mnu+CdD3H0WVaaBQA8LTT3S33xhVBUj232T8M3tAhSWJs/D/UqORYUlJNl/8VQZg==", "requires": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4351,6 +4338,14 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", @@ -7721,9 +7716,9 @@ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" }, "geoip-country": { - "version": "4.0.29", - "resolved": "https://registry.npmjs.org/geoip-country/-/geoip-country-4.0.29.tgz", - "integrity": "sha512-n5SoikTU/HJiTpM6XII6vMuDsHcfc3q7bp7RW+7O7ox6cVgod4i/0UJ3ET7Tlr2Ig3xu99fjn0fPZP9kn250HA==", + "version": "4.0.31", + "resolved": "https://registry.npmjs.org/geoip-country/-/geoip-country-4.0.31.tgz", + "integrity": "sha512-ugl2wiQxPL3e1jbCla54cP+vj6b277CnIeUg6hkwv1xhwPYtwlTxRfPcCEqcu37dfCyvQje+GAH00X1vtC2OAA==", "requires": { "async": "^2.6.1", "colors": "^1.4.0", @@ -14122,43 +14117,22 @@ } }, "sass-loader": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-9.0.2.tgz", - "integrity": "sha512-nphcum3jNI442njnrZ5wJgSNX5lfEOHOKHCLf+PrTIaleploKqAMUuT9CVKjf+lyi6c2MCGPHh1vb9nGsjnZJA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-9.0.3.tgz", + "integrity": "sha512-fOwsP98ac1VMme+V3+o0HaaMHp8Q/C9P+MUazLFVi3Jl7ORGHQXL1XeRZt3zLSGZQQPC8xE42Y2WptItvGjDQg==", "requires": { - "klona": "^1.1.1", + "klona": "^1.1.2", "loader-utils": "^2.0.0", - "neo-async": "^2.6.1", + "neo-async": "^2.6.2", "schema-utils": "^2.7.0", "semver": "^7.3.2" }, "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -14174,16 +14148,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", diff --git a/package.json b/package.json index 4d7a6611c..66b33f117 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "start:watch": "UPDATED_SCRIPT=start:development:client npm run deprecated-warning && npm run start:development:client" }, "dependencies": { - "@babel/core": "^7.11.0", + "@babel/core": "^7.11.1", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", "@babel/preset-typescript": "^7.10.4", @@ -54,7 +54,7 @@ "flood-ui-kit": "^0.1.11", "flux": "^3.1.3", "fs-extra": "^9.0.1", - "geoip-country": "^4.0.29", + "geoip-country": "^4.0.31", "get-user-locale": "^1.4.0", "html-webpack-plugin": "^4.3.0", "joi": "^13.7.0", @@ -88,7 +88,7 @@ "ress": "^3.0.0", "rimraf": "^3.0.2", "run-series": "^1.1.6", - "sass-loader": "^9.0.2", + "sass-loader": "^9.0.3", "saxen": "^8.1.2", "source-map-loader": "^1.0.1", "spdy": "^4.0.2", @@ -101,7 +101,7 @@ "devDependencies": { "@babel/plugin-proposal-class-properties": "^7.10.4", "@types/classnames": "^2.2.10", - "@types/react": "^16.9.44", + "@types/react": "^16.9.46", "@types/react-router-dom": "^5.1.5", "@typescript-eslint/eslint-plugin": "^1.13.0", "@typescript-eslint/parser": "^1.13.0", From 5c40fb4a4ca166a0260d4d57db48223f460d4719 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 20:32:03 +0800 Subject: [PATCH 036/651] dependencies: bump d3 to 5.16.0 (major) --- .../components/sidebar/TransferRateGraph.js | 20 +- package-lock.json | 277 +++++++++++++++++- package.json | 2 +- 3 files changed, 285 insertions(+), 14 deletions(-) diff --git a/client/src/javascript/components/sidebar/TransferRateGraph.js b/client/src/javascript/components/sidebar/TransferRateGraph.js index fae8fbd3c..36f2045c1 100644 --- a/client/src/javascript/components/sidebar/TransferRateGraph.js +++ b/client/src/javascript/components/sidebar/TransferRateGraph.js @@ -1,4 +1,4 @@ -import d3 from 'd3'; +import * as d3 from 'd3'; import PropTypes from 'prop-types'; import React from 'react'; @@ -150,13 +150,13 @@ class TransferRateGraph extends React.Component { const graph = d3.select(`#${id}`); const margin = {bottom: 10, top: 10}; - this.xScale = d3.scale - .linear() + this.xScale = d3 + .scaleLinear() .domain([0, historicalData.download.length - 1]) .range([0, width]); - this.yScale = d3.scale - .linear() + this.yScale = d3 + .scaleLinear() .domain([ 0, d3.max(historicalData.download, (dataPoint, index) => Math.max(dataPoint, historicalData.upload[index])), @@ -164,21 +164,21 @@ class TransferRateGraph extends React.Component { .range([height - margin.top, margin.bottom]); const lineFunc = (interpolation) => - d3.svg + d3 .line() .x((dataPoint, index) => this.xScale(index)) .y((dataPoint) => this.yScale(dataPoint)) - .interpolate(interpolation); + .curve(interpolation); const areaFunc = (interpolation) => - d3.svg + d3 .area() .x((dataPoint, index) => this.xScale(index)) .y0(height) .y1((dataPoint) => this.yScale(dataPoint)) - .interpolate(interpolation); + .curve(interpolation); - const interpolation = 'monotone'; + const interpolation = d3.curveMonotoneX; const downloadLinePath = lineFunc(interpolation)(historicalData.download); const downloadAreaShape = areaFunc(interpolation)(historicalData.download); const uploadLinePath = lineFunc(interpolation)(historicalData.upload); diff --git a/package-lock.json b/package-lock.json index 5bba70069..17db6e086 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5124,9 +5124,275 @@ "dev": true }, "d3": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", - "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz", + "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "d3-ease": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", + "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==" + }, + "d3-fetch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", + "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-format": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz", + "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw==" + }, + "d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "requires": { + "d3-array": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.3.tgz", + "integrity": "sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==", + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } }, "damerau-levenshtein": { "version": "1.0.6", @@ -14077,6 +14343,11 @@ "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.8.tgz", "integrity": "sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==" }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, "rxjs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", diff --git a/package.json b/package.json index 66b33f117..4350e764b 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "compression": "^1.7.3", "cookie-parser": "^1.4.5", "css-loader": "^3.2.0", - "d3": "^3.5.17", + "d3": "^5.16.0", "debug": "^4.1.1", "deep-equal": "^2.0.3", "express": "^4.17.1", From 0a146b5d91798572adf8606f205a197065c4367b Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 20:52:33 +0800 Subject: [PATCH 037/651] dependencies: bump joi to 17.2.0 (major) --- package-lock.json | 73 +++++++++++++++++++++++-------------------- package.json | 2 +- server/routes/auth.js | 2 +- 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 17db6e086..dbe1f8c1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1254,6 +1254,37 @@ } } }, + "@hapi/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + }, + "@hapi/hoek": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", + "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -8393,11 +8424,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", - "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" - }, "hoist-non-react-statics": { "version": "2.5.5", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", @@ -9822,14 +9848,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "requires": { - "punycode": "2.x.x" - } - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -9856,13 +9874,15 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.2.0.tgz", + "integrity": "sha512-9ZC8pMSitNlenuwKARENBGVvvGYHNlwWe5rexo2WxyogaxCB5dNHAgFA1BJQ6nsJrt/jz1p5vSqDT6W6kciDDw==", "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "@hapi/address": "^4.1.0", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, "js-base64": { @@ -15988,21 +16008,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", - "requires": { - "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" - } - } - }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", diff --git a/package.json b/package.json index 4350e764b..51675d8cf 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "geoip-country": "^4.0.31", "get-user-locale": "^1.4.0", "html-webpack-plugin": "^4.3.0", - "joi": "^13.7.0", + "joi": "^17.2.0", "jsonwebtoken": "^8.4.0", "lodash": "^4.17.19", "moment": "^2.27.0", diff --git a/server/routes/auth.js b/server/routes/auth.js index 5793b1192..14a39bcf8 100644 --- a/server/routes/auth.js +++ b/server/routes/auth.js @@ -45,7 +45,7 @@ router.use('/', (req, res, next) => { if (config.disableUsersAndAuth) { req.user = Users.getConfigUser(); } - const validation = joi.validate(req.body, authValidation); + const validation = authValidation.validate(req.body); if (!validation.error) { next(); From 8a3738a7d358c3cf17ffa026b3580f99cf697030 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 20:55:10 +0800 Subject: [PATCH 038/651] strings: add missing auth.login.intro string --- client/src/javascript/i18n/strings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/javascript/i18n/strings.js b/client/src/javascript/i18n/strings.js index 239909ac2..018a4ba8d 100644 --- a/client/src/javascript/i18n/strings.js +++ b/client/src/javascript/i18n/strings.js @@ -23,6 +23,7 @@ export default { 'auth.error.username.empty': 'Username cannot be empty.', 'auth.log.in': 'Log In', 'auth.login': 'Login', + 'auth.login.intro': 'Log in to your account.', 'auth.password': 'Password', 'auth.user.accounts': 'User Accounts', 'auth.username': 'Username', From b496ffebfe4a166e4e1c3a640db763fad6637679 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 21:41:54 +0800 Subject: [PATCH 039/651] i18n: new translations for Dutch --- client/src/javascript/i18n/translations/nl.js | 55 ++++++++++++------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/client/src/javascript/i18n/translations/nl.js b/client/src/javascript/i18n/translations/nl.js index 44b789824..e47fa8120 100644 --- a/client/src/javascript/i18n/translations/nl.js +++ b/client/src/javascript/i18n/translations/nl.js @@ -11,9 +11,9 @@ export default { 'alert.torrent.remove.failed': `Het verwijderen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.`, 'alert.settings.saved': 'Instellingen zijn opgeslagen.', 'auth.add.user': 'Gebruiker toevoegen', - 'auth.connectionType': 'rTorrent Type verbinding', + 'auth.connectionType': 'rTorrent type verbinding', 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix sokken', + 'auth.connectionType.socket': 'Unix socket', 'auth.create.account': 'Maak account', 'auth.create.an.account': 'Maak een account', 'auth.create.an.account.intro': 'Welkom bij Flood!', @@ -50,13 +50,13 @@ export default { 'feeds.existing.rules': 'Regels', 'feeds.label': 'Omschrijving', 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match op patroon', - 'feeds.match': 'Wedstrijd', + 'feeds.match.pattern': 'Overeenkomst op patroon', + 'feeds.match': 'Overeenkomst', 'feeds.exclude': 'Uitsluiten', 'feeds.no.feeds.available': 'Geen feeds beschikbaar.', 'feeds.no.feeds.defined': 'Geen feeds toegevoegd.', 'feeds.no.rules.defined': 'Geen regels toegevoegd.', - 'feeds.regEx': 'RegEx', + 'feeds.regEx': 'Reguliere expressie', 'feeds.select.feed': 'Selecteer feed', 'feeds.select.interval': 'Interval', 'feeds.start.on.load': 'Start na toevoegen', @@ -65,16 +65,17 @@ export default { 'feeds.tabs.heading': 'Torrent feeds', 'feeds.tags': 'Labels', 'feeds.time.hr': '{durationValue} uur', - 'feeds.time.min': '{durationValue} min', + 'feeds.time.min': '{durationValue} minuten', 'feeds.time.day': 'dagen', 'feeds.torrent.destination': 'Torrent downloadlocatie', 'feeds.url': 'URL', 'feeds.search': 'Zoek term', - 'feeds.validation.invalid.regular.expression': 'Fout in regular expression.', + 'feeds.validation.invalid.regular.expression': 'Fout in reguliere expressie.', 'feeds.validation.must.select.feed': 'Je moet een feed selecteren.', 'feeds.validation.must.specify.destination': 'Je moet een downloadlocatie opgeven.', 'feeds.validation.must.specify.label': 'Je moet een label selecteren.', 'feeds.validation.must.specify.valid.feed.url': 'Je moet een geldige feed URL opgeven.', + 'feeds.validation.interval.not.positive': 'Je moet een positief nummer opgeven.', 'feeds.browse.feeds': 'Bekijk feeds', 'filesystem.empty.directory': 'Lege map.', 'filesystem.error.eacces': 'Flood heeft geen toestemming om deze map te lezen.', @@ -126,8 +127,8 @@ export default { 'settings.bandwidth.transferrate.heading': 'Sneldheidsbeperkingen', 'settings.connectivity.dht.label': 'Gebruik DHT', 'settings.connectivity.dht.port.label': 'DHT Poort', - 'settings.connectivity.dpd.heading': 'Ongecentraliseerde peer Ontdekking', - 'settings.connectivity.incoming.heading': 'Inkomende connecties', + 'settings.connectivity.dpd.heading': 'Ongecentraliseerde Peer Ontdekking', + 'settings.connectivity.incoming.heading': 'Inkomende Connecties', 'settings.connectivity.ip.hostname.label': 'Vermeld IP/Hostnaam', 'settings.connectivity.max.http.connections': 'Maximaal aantal HTTP connecties', 'settings.connectivity.peer.exchange.label': 'Gebruik Peer Exchange', @@ -175,25 +176,27 @@ export default { 'sidebar.search.placeholder': 'Zoek torrents', 'sidebar.transferdata.downloaded': 'Gedownload', 'sidebar.transferdata.uploaded': 'Geupload', + 'sidebar.speedlimits.download': 'DOWNLOAD', + 'sidebar.speedlimits.upload': 'UPLOAD', 'speed.unlimited': 'Ongelimiteerd', 'unit.size.byte': 'B', 'unit.size.kilobyte': 'KB', - 'unit.size.megabyte': 'Mb', + 'unit.size.megabyte': 'MB', 'unit.size.gigabyte': 'GB', 'unit.size.terabyte': 'TB', 'unit.speed': '{baseUnit}/s', 'unit.time.year': 'j', 'unit.time.week': 'w', - 'unit.time.day': 'D', - 'unit.time.hour': 't', - 'unit.time.minute': 'min', - 'unit.time.second': 'tw', + 'unit.time.day': 'd', + 'unit.time.hour': 'h', + 'unit.time.minute': 'm', + 'unit.time.second': 's', 'unit.time.infinity': '∞', 'torrents.add.button.add': 'Torrent toevoegen', 'torrents.add.destination.label': 'Downloadlocatie', 'torrents.add.destination.placeholder': 'Downloadlocatie', 'torrents.add.heading': 'Torrents toevoegen', - 'torrents.add.start.label': 'Start torrent', + 'torrents.add.start.label': 'Torrent starten', 'torrents.add.tab.file.browse': 'of klik om te bladeren.', 'torrents.add.tab.file.drop': 'Sleep bestanden hierheen,', 'torrents.add.tab.file.title': 'Via bestand', @@ -203,7 +206,7 @@ export default { 'torrents.add.tags': 'Labels', 'torrents.destination.base_path': 'Gebruiken als basis pad', 'torrents.details.actions.pause': 'Pauzeer', - 'torrents.details.actions.start': 'Beginnen', + 'torrents.details.actions.start': 'Starten', 'torrents.details.actions.stop': 'Stoppen', 'torrents.details.details': 'Beschrijving', 'torrents.details.files': 'Bestanden', @@ -226,14 +229,14 @@ export default { 'torrents.details.general.scheduler.ignored': 'Genegeerd', 'torrents.details.general.scheduler.obeyed': 'Uitgevoerd', 'torrents.details.general.scheduler': 'Taakplanner', - 'torrents.details.general.seeds': 'Zaden', + 'torrents.details.general.seeds': 'Seeders', 'torrents.details.general.size': 'Grootte', 'torrents.details.general.tags': 'Labels', 'torrents.details.general.tracker.message': 'Bericht van tracker', 'torrents.details.general.type.private': 'Privé', 'torrents.details.general.type.public': 'Publiek', 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', + 'torrents.details.mediainfo': 'Media Info', 'torrents.details.peers.no.data': 'Er zijn geen peer-gegevens voor deze torrent.', 'torrents.details.peers': 'Leechers', 'torrents.details.selected.files': `{count, plural, =1 {{countElement} bestand geselecteerd} other {{countElement} bestanden geselecteerd}}`, @@ -241,15 +244,16 @@ export default { 'torrents.details.trackers.no.data': 'Er zijn geen tracker-gegevens voor deze torrent.', 'torrents.details.trackers.type': 'Type', 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Herstel filters', + 'torrents.list.clear.filters': 'Wis filters', 'torrents.list.context.check.hash': 'Controleer hash', - 'torrents.list.context.details': 'Torrent Details', + 'torrents.list.context.details': 'Torrent details', 'torrents.list.context.move': 'Downloadlocatie...', 'torrents.list.context.pause': 'Pauzeer', + 'torrents.list.context.download': 'Download', 'torrents.list.context.priority': 'Prioriteit', 'torrents.list.context.remove': 'Verwijder', 'torrents.list.context.set.tags': 'Tags instellen', - 'torrents.list.context.start': 'Beginnen', + 'torrents.list.context.start': 'Starten', 'torrents.list.context.stop': 'Stoppen', 'torrents.list.no.torrents': 'Geen torrents om te laten zien.', 'torrents.list.drop': 'Sleep bestanden hier om ze toe te voegen aan Torrent.', @@ -280,6 +284,9 @@ export default { 'torrents.properties.tracker.message': 'Tracker bericht', 'torrents.properties.upload.speed': 'Uploadsnelheid', 'torrents.properties.upload.total': 'Geupload', + 'torrents.properties.seeds': 'Seeders', + 'torrents.properties.peers': 'Peers', + 'torrents.properties.trackers': 'Trackers', 'torrents.remove.are.you.sure': `Weet je zeker dat je {count, plural, =0 {geen torrents} =1 {één torrent} other {# torrents}} wilt verwijderen?`, 'torrents.remove.delete.data': 'Gegevens verwijderen', 'torrents.remove.error.no.torrents.selected': 'Je hebt geen torrents geselecteerd.', @@ -294,4 +301,10 @@ export default { 'connection-interruption.verification-success': 'Verbinding succesvol', 'status.diskusage.title': 'Schijf gebruik', 'locale.language.auto': 'Automatisch', + 'window.title': '↓ {down} ↑ {up} - Flood', + 'dependency.loading.notifications': 'Notificaties', + 'dependency.loading.torrent.taxonomy': 'Torrent Taxonomie', + 'dependency.loading.transfer.rate.details': 'Gegevensoverdracht snelheid details', + 'dependency.loading.transfer.history': 'Gegevensoverdracht geschiedenis', + 'dependency.loading.torrent.list': 'Torrent lijst', }; From 44423533d5a0a113babf543da572d02e44317843 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 21:59:25 +0800 Subject: [PATCH 040/651] i18n: use JSON for strings --- client/src/javascript/i18n/languages.ts | 38 +- client/src/javascript/i18n/strings.js | 348 ------------------ client/src/javascript/i18n/strings.json | 309 ++++++++++++++++ client/src/javascript/i18n/translations/af.js | 296 --------------- client/src/javascript/i18n/translations/ar.js | 296 --------------- .../src/javascript/i18n/translations/ar.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/ca.js | 296 --------------- client/src/javascript/i18n/translations/cs.js | 296 --------------- .../src/javascript/i18n/translations/cs.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/da.js | 296 --------------- client/src/javascript/i18n/translations/de.js | 296 --------------- .../src/javascript/i18n/translations/de.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/el.js | 296 --------------- client/src/javascript/i18n/translations/es.js | 297 --------------- .../src/javascript/i18n/translations/es.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/fi.js | 296 --------------- client/src/javascript/i18n/translations/fr.js | 298 --------------- .../src/javascript/i18n/translations/fr.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/he.js | 296 --------------- client/src/javascript/i18n/translations/hu.js | 296 --------------- client/src/javascript/i18n/translations/it.js | 296 --------------- .../src/javascript/i18n/translations/it.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/ja.js | 296 --------------- .../src/javascript/i18n/translations/ja.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/ko.js | 296 --------------- .../src/javascript/i18n/translations/ko.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/nl.js | 310 ---------------- .../src/javascript/i18n/translations/nl.json | 308 ++++++++++++++++ client/src/javascript/i18n/translations/no.js | 297 --------------- .../src/javascript/i18n/translations/no.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/pl.js | 296 --------------- .../src/javascript/i18n/translations/pl.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/pt.js | 296 --------------- .../src/javascript/i18n/translations/pt.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/ro.js | 297 --------------- .../src/javascript/i18n/translations/ro.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/ru.js | 296 --------------- .../src/javascript/i18n/translations/ru.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/sr.js | 296 --------------- client/src/javascript/i18n/translations/sv.js | 296 --------------- .../src/javascript/i18n/translations/sv.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/tr.js | 296 --------------- client/src/javascript/i18n/translations/uk.js | 296 --------------- .../src/javascript/i18n/translations/uk.json | 295 +++++++++++++++ client/src/javascript/i18n/translations/vi.js | 296 --------------- .../javascript/i18n/translations/zh-Hans.js | 295 --------------- .../javascript/i18n/translations/zh-Hans.json | 295 +++++++++++++++ .../javascript/i18n/translations/zh-Hant.js | 295 --------------- .../javascript/i18n/translations/zh-Hant.json | 295 +++++++++++++++ crowdin.yml | 4 +- tsconfig.json | 1 + 51 files changed, 5654 insertions(+), 8674 deletions(-) delete mode 100644 client/src/javascript/i18n/strings.js create mode 100644 client/src/javascript/i18n/strings.json delete mode 100644 client/src/javascript/i18n/translations/af.js delete mode 100644 client/src/javascript/i18n/translations/ar.js create mode 100644 client/src/javascript/i18n/translations/ar.json delete mode 100644 client/src/javascript/i18n/translations/ca.js delete mode 100644 client/src/javascript/i18n/translations/cs.js create mode 100644 client/src/javascript/i18n/translations/cs.json delete mode 100644 client/src/javascript/i18n/translations/da.js delete mode 100644 client/src/javascript/i18n/translations/de.js create mode 100644 client/src/javascript/i18n/translations/de.json delete mode 100644 client/src/javascript/i18n/translations/el.js delete mode 100644 client/src/javascript/i18n/translations/es.js create mode 100644 client/src/javascript/i18n/translations/es.json delete mode 100644 client/src/javascript/i18n/translations/fi.js delete mode 100644 client/src/javascript/i18n/translations/fr.js create mode 100644 client/src/javascript/i18n/translations/fr.json delete mode 100644 client/src/javascript/i18n/translations/he.js delete mode 100644 client/src/javascript/i18n/translations/hu.js delete mode 100644 client/src/javascript/i18n/translations/it.js create mode 100644 client/src/javascript/i18n/translations/it.json delete mode 100644 client/src/javascript/i18n/translations/ja.js create mode 100644 client/src/javascript/i18n/translations/ja.json delete mode 100644 client/src/javascript/i18n/translations/ko.js create mode 100644 client/src/javascript/i18n/translations/ko.json delete mode 100644 client/src/javascript/i18n/translations/nl.js create mode 100644 client/src/javascript/i18n/translations/nl.json delete mode 100644 client/src/javascript/i18n/translations/no.js create mode 100644 client/src/javascript/i18n/translations/no.json delete mode 100644 client/src/javascript/i18n/translations/pl.js create mode 100644 client/src/javascript/i18n/translations/pl.json delete mode 100644 client/src/javascript/i18n/translations/pt.js create mode 100644 client/src/javascript/i18n/translations/pt.json delete mode 100644 client/src/javascript/i18n/translations/ro.js create mode 100644 client/src/javascript/i18n/translations/ro.json delete mode 100644 client/src/javascript/i18n/translations/ru.js create mode 100644 client/src/javascript/i18n/translations/ru.json delete mode 100644 client/src/javascript/i18n/translations/sr.js delete mode 100644 client/src/javascript/i18n/translations/sv.js create mode 100644 client/src/javascript/i18n/translations/sv.json delete mode 100644 client/src/javascript/i18n/translations/tr.js delete mode 100644 client/src/javascript/i18n/translations/uk.js create mode 100644 client/src/javascript/i18n/translations/uk.json delete mode 100644 client/src/javascript/i18n/translations/vi.js delete mode 100644 client/src/javascript/i18n/translations/zh-Hans.js create mode 100644 client/src/javascript/i18n/translations/zh-Hans.json delete mode 100644 client/src/javascript/i18n/translations/zh-Hant.js create mode 100644 client/src/javascript/i18n/translations/zh-Hant.json diff --git a/client/src/javascript/i18n/languages.ts b/client/src/javascript/i18n/languages.ts index 5f5a9fe10..fecb4ea46 100644 --- a/client/src/javascript/i18n/languages.ts +++ b/client/src/javascript/i18n/languages.ts @@ -1,23 +1,23 @@ -import EN from './strings'; +import EN from './strings.json'; -import CS from './translations/cs'; -import DE from './translations/de'; -import ES from './translations/es'; -import FR from './translations/fr'; -import IT from './translations/it'; -import NL from './translations/nl'; -import NO from './translations/no'; -import PL from './translations/pl'; -import PT from './translations/pt'; -import RU from './translations/ru'; -import RO from './translations/ro'; -import SV from './translations/sv'; -import UK from './translations/uk'; -import KO from './translations/ko'; -import JA from './translations/ja'; -import ZH_HANS from './translations/zh-Hans'; -import ZH_HANT from './translations/zh-Hant'; -import AR from './translations/ar'; +import CS from './translations/cs.json'; +import DE from './translations/de.json'; +import ES from './translations/es.json'; +import FR from './translations/fr.json'; +import IT from './translations/it.json'; +import NL from './translations/nl.json'; +import NO from './translations/no.json'; +import PL from './translations/pl.json'; +import PT from './translations/pt.json'; +import RU from './translations/ru.json'; +import RO from './translations/ro.json'; +import SV from './translations/sv.json'; +import UK from './translations/uk.json'; +import KO from './translations/ko.json'; +import JA from './translations/ja.json'; +import ZH_HANS from './translations/zh-Hans.json'; +import ZH_HANT from './translations/zh-Hant.json'; +import AR from './translations/ar.json'; export const languages = { auto: EN, diff --git a/client/src/javascript/i18n/strings.js b/client/src/javascript/i18n/strings.js deleted file mode 100644 index 018a4ba8d..000000000 --- a/client/src/javascript/i18n/strings.js +++ /dev/null @@ -1,348 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.login.intro': 'Log in to your account.', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.validation.interval.not.positive': 'The interval must be a positive integer.', - 'feeds.browse.feeds': 'Browse feeds', - - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - - 'settings.about.flood': 'About Flood', - - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - - 'sidebar.search.placeholder': 'Search torrents', - - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - - 'sidebar.speedlimits.download': 'DOWNLOAD', - 'sidebar.speedlimits.upload': 'UPLOAD', - - 'speed.unlimited': 'Unlimited', - - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - - 'torrents.destination.base_path': 'Use as Base Path', - - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.download': 'Download', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.properties.seeds': 'Seeds', - 'torrents.properties.peers': 'Peers', - 'torrents.properties.trackers': 'Trackers', - - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - - 'torrents.sort.title': 'Sort By', - - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - - 'status.diskusage.title': 'Disk Usage', - - 'locale.language.auto': 'Automatic', - - 'window.title': '\u2193 {down} \u2191 {up} - Flood', - 'dependency.loading.notifications': 'Notifications', - 'dependency.loading.torrent.taxonomy': 'Torrent Taxonomy', - 'dependency.loading.transfer.rate.details': 'Data Transfer Rate Details', - 'dependency.loading.transfer.history': 'Data Transfer History', - 'dependency.loading.torrent.list': 'Torrent List', -}; diff --git a/client/src/javascript/i18n/strings.json b/client/src/javascript/i18n/strings.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/strings.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/af.js b/client/src/javascript/i18n/translations/af.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/af.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/ar.js b/client/src/javascript/i18n/translations/ar.js deleted file mode 100644 index abf5666f9..000000000 --- a/client/src/javascript/i18n/translations/ar.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'ابدأ التورينت', - 'actionbar.button.stop.torrent': 'إيقاف التورنت', - 'actionbar.button.add.torrent': 'إضافة تورنت', - 'actionbar.button.remove.torrent': 'إزالة التورنت', - 'alert.torrent.add': `تمت إضافة {countElement} {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.torrent.add.failed': `فشل في إضافة {countElement} {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.torrent.move': `تم نقل {countElement} بنجاح {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.torrent.move.failed': `فشل نقل {countElement} {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.torrent.remove': `تم بنجاح إزالة {countElement} {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.torrent.remove.failed': `فشل في إزالة {countElement} {count, plural, =1 {تورنت} other {تورنت}}`, - 'alert.settings.saved': 'تم حفظ الإعدادات بنجاح.', - 'auth.add.user': 'إضافة مستخدم', - 'auth.connectionType': 'نوع اتصال rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'مقبس يونكس', - 'auth.create.account': 'إنشاء حساب', - 'auth.create.an.account': 'إنشاء حساب', - 'auth.create.an.account.intro': 'مرحبا بكم في الفيضان!', - 'auth.current.user': 'المستخدم الحالي', - 'auth.error.username.empty': 'اسم المستخدم لا يمكن أن يكون فارغاً.', - 'auth.log.in': 'تسجيل الدخول', - 'auth.login': 'تسجيل الدخول', - 'auth.password': 'كلمة المرور', - 'auth.user.accounts': 'حسابات المستخدم', - 'auth.username': 'اسم المستخدم', - 'auth.admin': 'المشرف', - 'auth.message.not.admin': 'المستخدم ليس مشرف', - 'auth.rtorrentHost': 'مضيف rTorrent', - 'auth.rtorrentPort': 'منفذ rTorrent', - 'auth.rtorrentSocket': 'مقبس rTorrent', - 'auth.rtorrentSocketPath': 'مسار مقبس rTorrent', - 'button.add': 'إضافة', - 'button.cancel': 'إلغاء', - 'button.no': 'لا', - 'button.save': 'حفظ الإعدادات', - 'button.save.feed': 'حفظ', - 'button.test': 'اختبار', - 'button.state.adding': 'إضافة...', - 'button.yes': 'نعم', - 'button.new': 'جديد', - 'connectivity.modal.title': 'مشكلة في الاتصال', - 'connectivity.modal.content': 'لا يمكن الاتصال بـ rTorrent. الرجاء تحديث المعلومات الآن.', - 'feeds.add.automatic.download.rule': 'إضافة قاعدة تحميل', - 'feeds.add.feed': 'إضافة موجز ويب', - 'feeds.applicable.feed': 'تغذية قابلة للتطبيق', - 'feeds.apply.tags': 'تطبيق العلامات', - 'feeds.exclude.pattern': 'استبعاد النمط', - 'feeds.existing.feeds': 'التحديثات الموجودة', - 'feeds.existing.rules': 'القواعد الحالية', - 'feeds.label': 'تسمية', - 'feeds.match.count': '{count, plural, =1 {# تطابق} other {# يتطابق}}', - 'feeds.match.pattern': 'نمط المطابقة', - 'feeds.match': 'المباراة', - 'feeds.exclude': 'استبعاد', - 'feeds.no.feeds.available': 'لا توجد تغذية متاحة.', - 'feeds.no.feeds.defined': 'لم يتم تعريف أي تغذية.', - 'feeds.no.rules.defined': 'لا توجد قواعد معرفة.', - 'feeds.regEx': 'ريريكس', - 'feeds.select.feed': 'حدد موجز الويب', - 'feeds.select.interval': 'الفاصل', - 'feeds.start.on.load': 'البدء عند التحميل', - 'feeds.tabs.download.rules': 'قواعد التحميل', - 'feeds.tabs.feeds': 'التحديثات', - 'feeds.tabs.heading': 'تغذية تورنت', - 'feeds.tags': 'الوسوم', - 'feeds.time.hr': 'الساعات', - 'feeds.time.min': 'دقائق', - 'feeds.time.day': 'أيام', - 'feeds.torrent.destination': 'وجهة تورنت', - 'feeds.url': 'الرابط', - 'feeds.search': 'مصطلح البحث', - 'feeds.validation.invalid.regular.expression': 'تعبير عادي غير صالح.', - 'feeds.validation.must.select.feed': 'يجب عليك تحديد التغذية.', - 'feeds.validation.must.specify.destination': 'يجب عليك تحديد الوجهة.', - 'feeds.validation.must.specify.label': 'يجب عليك تحديد التسمية.', - 'feeds.validation.must.specify.valid.feed.url': 'يجب عليك تحديد رابط تغذية صالح.', - 'feeds.browse.feeds': 'تصفح الخلاصات', - 'filesystem.empty.directory': 'مجلد فارغ.', - 'filesystem.error.eacces': 'الفيضان ليس لديه الصلاحية لقراءة هذا الدليل.', - 'filesystem.error.enoent': 'هذا المسار غير موجود. سيتم إنشاؤه.', - 'filesystem.fetching': 'جلب بنية الدليل...', - 'filter.all': 'الكل', - 'filter.status.title': 'تصفية حسب الحالة', - 'filter.status.downloading': 'تنزيل', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'نشط', - 'filter.status.inactive': 'غير نشط', - 'filter.status.error': 'خطأ', - 'filter.status.stopped': 'توقفت', - 'filter.status.checking': 'التحقق', - 'filter.tracker.title': 'تصفية حسب التتبع', - 'filter.tag.title': 'تصفية حسب العلامة', - 'filter.untagged': 'غير موسومة', - 'general.ago': 'مضت', - 'general.at': 'في', - 'general.to': 'إلى', - 'general.of': 'من', - 'general.clipboard.copy': 'نسخ', - 'general.clipboard.copied': 'منسوخ', - 'mediainfo.execError': 'حدث خطأ أثناء تشغيل mediainfo على الخادم. تحقق من أن mediainfo مثبت ومتاح في PATH للفيضان.', - 'mediainfo.fetching': 'إحضار ...', - 'mediainfo.heading': 'ناتج ميداينفو', - 'notification.torrent.finished.heading': 'انتهى التحميل', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'تم الإبلاغ عن خطأ', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'مسح الكل', - 'notification.showing': 'عرض', - 'priority.dont.download': 'عدم التحميل', - 'priority.high': 'مرتفع', - 'priority.low': 'منخفض', - 'priority.normal': 'عادي', - 'settings.bandwidth.slots.download.divider.label': 'تنزيل مزود الفتحات', - 'settings.bandwidth.slots.download.global.label': 'تحميل الفتحات العالمية', - 'settings.bandwidth.slots.download.label': 'تنزيل الفتحات لكل تورينت', - 'settings.bandwidth.slots.heading': 'توفر الخانة', - 'settings.bandwidth.slots.upload.divider.label': 'تحميل مقسم الخانات', - 'settings.bandwidth.slots.upload.global.label': 'تحميل خانات عامة', - 'settings.bandwidth.slots.upload.label': 'تحميل الفتحات لكل تورينت', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'المنسدلة مسبقاً: تحميل', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'القائمة المنسدلة مسبقاً: تحميل', - 'settings.bandwidth.transferrate.global.throttle.download': 'خنق معدل التحميل العالمي', - 'settings.bandwidth.transferrate.global.throttle.upload': 'خنق معدل التحميل العالمي', - 'settings.bandwidth.transferrate.heading': 'خانات معدل التحويل', - 'settings.connectivity.dht.label': 'تمكين DHT', - 'settings.connectivity.dht.port.label': 'منفذ DHT', - 'settings.connectivity.dpd.heading': 'اكتشاف الند اللامركزي', - 'settings.connectivity.incoming.heading': 'اتصالات واردة', - 'settings.connectivity.ip.hostname.label': 'اسم IP/المضيف المبلغ عنه', - 'settings.connectivity.max.http.connections': 'الحد الأقصى لاتصالات HTTP', - 'settings.connectivity.peer.exchange.label': 'تمكين تبادل الأقران', - 'settings.connectivity.peers.desired.label': 'الند المنشود', - 'settings.connectivity.peers.heading': 'أقران', - 'settings.connectivity.peers.max.label': 'الحد الأقصى للنظراء', - 'settings.connectivity.peers.min.label': 'الحد الأدنى للنظراء', - 'settings.connectivity.peers.seeding.max.label': 'الحد الأقصى لبذور النظراء', - 'settings.connectivity.peers.seeding.min.label': 'الحد الأدنى لبذور الند', - 'settings.connectivity.port.open.label': 'فتح المنفذ', - 'settings.connectivity.port.randomize.label': 'تصوير المنفذ عشوائي', - 'settings.connectivity.port.range.label': 'نطاق المنفذ', - 'settings.resources.disk.check.hash.label': 'التحقق من التجزئة عند الاكتمال', - 'settings.resources.disk.download.location.label': 'دليل التحميل الافتراضي', - 'settings.resources.disk.heading': 'قرص', - 'settings.resources.max.open.files': 'الحد الأقصى للملفات المفتوحة', - 'settings.resources.memory.heading': 'الذاكرة', - 'settings.resources.memory.max.label': 'الحد الأقصى لاستخدام الذاكرة', - 'settings.tabs.bandwidth': 'عرض التردد', - 'settings.tabs.connectivity': 'الاتصال', - 'settings.tabs.heading': 'الإعدادات', - 'settings.tabs.resources': 'الموارد', - 'settings.tabs.authentication': 'المصادقة', - 'settings.tabs.userinterface': 'واجهة المستخدم', - 'settings.tabs.diskusage': 'استخدام القرص', - 'settings.tabs.about': 'حول', - 'settings.ui.locale': 'محلي', - 'settings.ui.language': 'اللغة', - 'settings.ui.torrent.list': 'عرض قائمة التورينت', - 'settings.ui.torrent.size': 'حجم التورنت', - 'settings.ui.torrent.size.expanded': 'عرض موسع', - 'settings.ui.torrent.size.condensed': 'عرض مكثف', - 'settings.ui.torrent.details.enabled': 'تمكين', - 'settings.ui.torrent.details.tags.placement': - 'ومن وجهة النظر الموسعة، فإن العلامات تعمل على أفضل وجه في نهاية القائمة.', - 'settings.ui.displayed.details': 'أعمدة تفاصيل تورنت', - 'settings.diskusage.show': 'إظهار', - 'settings.diskusage.mount.points': 'نقاط استخدام القرص', - 'settings.about.flood': 'حول الفيضان', - 'sidebar.button.feeds': 'التحديثات', - 'sidebar.button.notifications': 'الإشعارات', - 'sidebar.button.settings': 'الإعدادات', - 'sidebar.button.speedlimits': 'حدود السرعة', - 'sidebar.button.log.out': 'تسجيل الخروج', - 'sidebar.search.placeholder': 'البحث عن التورنت', - 'sidebar.transferdata.downloaded': 'تم التحميل', - 'sidebar.transferdata.uploaded': 'تم الرفع', - 'speed.unlimited': 'غير محدود', - 'unit.size.byte': 'ب', - 'unit.size.kilobyte': 'كيلوبايت', - 'unit.size.megabyte': 'ميغابايت', - 'unit.size.gigabyte': 'جيجابايت', - 'unit.size.terabyte': 'تيلبايت', - 'unit.speed': '{baseUnit}/ث', - 'unit.time.year': 'yr', - 'unit.time.week': 'تأجج', - 'unit.time.day': 'د', - 'unit.time.hour': 'ساعة', - 'unit.time.minute': 'د', - 'unit.time.second': 'ث', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'إضافة تورنت', - 'torrents.add.destination.label': 'الوجهة', - 'torrents.add.destination.placeholder': 'الوجهة', - 'torrents.add.heading': 'إضافة تورينت', - 'torrents.add.start.label': 'ابدأ التورينت', - 'torrents.add.tab.file.browse': 'أو انقر لتصفح', - 'torrents.add.tab.file.drop': 'إسقاط بعض الملفات هنا،', - 'torrents.add.tab.file.title': 'حسب الملف', - 'torrents.add.tab.url.input.placeholder': 'رابط تورينت أو رابط الـ Magnet', - 'torrents.add.tab.url.title': 'حسب عنوان URL', - 'torrents.add.torrents.label': 'تورينتس', - 'torrents.add.tags': 'الوسوم', - 'torrents.destination.base_path': 'استخدام كمسار أساسي', - 'torrents.details.actions.pause': 'إيقاف', - 'torrents.details.actions.start': 'ابدأ', - 'torrents.details.actions.stop': 'توقف', - 'torrents.details.details': 'التفاصيل', - 'torrents.details.files': 'الملفات', - 'torrents.details.files.loading': 'تحميل تفاصيل الملف...', - 'torrents.details.files.download.file': `{count, plural, =1 {تحميل الملف} other {تحميل الملفات}}`, - 'torrents.details.general.comment': 'تعليق', - 'torrents.details.general.connected': '{connected} متصل بـ {total}', - 'torrents.details.general.date.added': 'أضيف', - 'torrents.details.general.date.created': 'تاريخ الإنشاء', - 'torrents.details.general.downloaded': 'تم التحميل', - 'torrents.details.general.free.disk.space': 'مساحة القرص الحرة', - 'torrents.details.general.hash': 'التجزئة', - 'torrents.details.general.heading.general': 'عام', - 'torrents.details.general.heading.torrent': 'تورنت', - 'torrents.details.general.heading.tracker': 'المتتبع', - 'torrents.details.general.heading.transfer': 'نقل', - 'torrents.details.general.location': 'الموقع', - 'torrents.details.general.none': 'لا', - 'torrents.details.general.peers': 'أقران', - 'torrents.details.general.scheduler.ignored': 'تجاهل', - 'torrents.details.general.scheduler.obeyed': 'عقيب', - 'torrents.details.general.scheduler': 'جدولة', - 'torrents.details.general.seeds': 'بذور', - 'torrents.details.general.size': 'الحجم', - 'torrents.details.general.tags': 'الوسوم', - 'torrents.details.general.tracker.message': 'رسالة تتبع', - 'torrents.details.general.type.private': 'خاص', - 'torrents.details.general.type.public': 'عامة', - 'torrents.details.general.type': 'نوع', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'لا توجد بيانات أقران لهذا التورنت.', - 'torrents.details.peers': 'أقران', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} ملف محدد} other {{countElement} ملفات محددة}}`, - 'torrents.details.selected.files.set.priority': 'تعيين الأولوية', - 'torrents.details.trackers.no.data': 'لا توجد بيانات تتبع لهذا التورنت.', - 'torrents.details.trackers.type': 'نوع', - 'torrents.details.trackers': 'المتتبعون', - 'torrents.list.clear.filters': 'مسح الفلاتر', - 'torrents.list.context.check.hash': 'تحقق من التجزئة', - 'torrents.list.context.details': 'تفاصيل التورنت', - 'torrents.list.context.move': 'تعيين موقع التورنت', - 'torrents.list.context.pause': 'إيقاف', - 'torrents.list.context.priority': 'الأولوية', - 'torrents.list.context.remove': 'إزالة', - 'torrents.list.context.set.tags': 'تعيين العلامات', - 'torrents.list.context.start': 'ابدأ', - 'torrents.list.context.stop': 'توقف', - 'torrents.list.no.torrents': 'لا يوجد سلالات لعرضها.', - 'torrents.list.drop': 'إسقاط الملفات هنا لإضافتها إلى rTorrent.', - 'torrents.list.cannot.connect': 'لا يمكن الاتصال بـ rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'من', - 'torrents.move.button.set.location': 'تعيين الموقع', - 'torrents.move.button.state.setting': 'إعداد...', - 'torrents.move.data.label': 'نقل البيانات', - 'torrents.move.check_hash.label': 'تحقق من التجزئة', - 'torrents.move.heading': 'تعيين موقع التورنت', - 'torrents.properties.date.added': 'أضيف', - 'torrents.properties.base.path': 'المسار الأساسي', - 'torrents.properties.comment': 'تعليق', - 'torrents.properties.creation.date': 'تاريخ الإنشاء', - 'torrents.properties.download.speed': 'سرعة التنزيل', - 'torrents.properties.download.total': 'تم التحميل', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'مساحة القرص الحرة', - 'torrents.properties.hash': 'التجزئة', - 'torrents.properties.ignore.schedule': 'تجاهل المجدول', - 'torrents.properties.is.private': 'خاص', - 'torrents.properties.name': 'الاسم', - 'torrents.properties.percentage': 'اكتمل النسبة', - 'torrents.properties.ratio': 'النسبة', - 'torrents.properties.size': 'حجم الملف', - 'torrents.properties.tags': 'الوسوم', - 'torrents.properties.tracker.message': 'رسالة تتبع', - 'torrents.properties.upload.speed': 'سرعة التحميل', - 'torrents.properties.upload.total': 'تم الرفع', - 'torrents.remove.are.you.sure': `هل أنت متأكد من أنك تريد إزالة {count, plural, =1 {# تورنت} other {# تورنت}}?`, - 'torrents.remove.delete.data': 'حذف البيانات', - 'torrents.remove.error.no.torrents.selected': 'لم تقم باختيار أي تورنات.', - 'torrents.remove': 'إزالة التورنت', - 'torrents.set.tags.button.set': 'تعيين العلامات', - 'torrents.set.tags.heading': 'تعيين العلامات', - 'torrents.set.tags.enter.tags': 'أدخل العلامات', - 'torrents.sort.title': 'الترتيب حسب', - 'connection-interruption.heading': 'لا يمكن الاتصال بـ rTorrent', - 'connection-interruption.verify-settings-prompt': 'دعونا نتحقق من إعدادات الاتصال الخاصة بك.', - 'connection-interruption.verification-error': 'تعذر التحقق من الاتصال.', - 'connection-interruption.verification-success': 'تم الاتصال بنجاح', - 'status.diskusage.title': 'استخدام القرص', - 'locale.language.auto': 'تلقائي', -}; diff --git a/client/src/javascript/i18n/translations/ar.json b/client/src/javascript/i18n/translations/ar.json new file mode 100644 index 000000000..0c0165976 --- /dev/null +++ b/client/src/javascript/i18n/translations/ar.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "ابدأ التورينت", + "actionbar.button.stop.torrent": "إيقاف التورنت", + "actionbar.button.add.torrent": "إضافة تورنت", + "actionbar.button.remove.torrent": "إزالة التورنت", + "alert.torrent.add": "تمت إضافة {countElement} {count, plural, =1 {تورنت} other {تورنت}}", + "alert.torrent.add.failed": "فشل في إضافة {countElement} {count, plural, =1 {تورنت} other {تورنت}}", + "alert.torrent.move": "تم نقل {countElement} بنجاح {count, plural, =1 {تورنت} other {تورنت}}", + "alert.torrent.move.failed": "فشل نقل {countElement} {count, plural, =1 {تورنت} other {تورنت}}", + "alert.torrent.remove": "تم بنجاح إزالة {countElement} {count, plural, =1 {تورنت} other {تورنت}}", + "alert.torrent.remove.failed": "فشل في إزالة {countElement} {count, plural, =1 {تورنت} other {تورنت}}", + "alert.settings.saved": "تم حفظ الإعدادات بنجاح.", + "auth.add.user": "إضافة مستخدم", + "auth.connectionType": "نوع اتصال rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "مقبس يونكس", + "auth.create.account": "إنشاء حساب", + "auth.create.an.account": "إنشاء حساب", + "auth.create.an.account.intro": "مرحبا بكم في الفيضان!", + "auth.current.user": "المستخدم الحالي", + "auth.error.username.empty": "اسم المستخدم لا يمكن أن يكون فارغاً.", + "auth.log.in": "تسجيل الدخول", + "auth.login": "تسجيل الدخول", + "auth.password": "كلمة المرور", + "auth.user.accounts": "حسابات المستخدم", + "auth.username": "اسم المستخدم", + "auth.admin": "المشرف", + "auth.message.not.admin": "المستخدم ليس مشرف", + "auth.rtorrentHost": "مضيف rTorrent", + "auth.rtorrentPort": "منفذ rTorrent", + "auth.rtorrentSocket": "مقبس rTorrent", + "auth.rtorrentSocketPath": "مسار مقبس rTorrent", + "button.add": "إضافة", + "button.cancel": "إلغاء", + "button.no": "لا", + "button.save": "حفظ الإعدادات", + "button.save.feed": "حفظ", + "button.test": "اختبار", + "button.state.adding": "إضافة...", + "button.yes": "نعم", + "button.new": "جديد", + "connectivity.modal.title": "مشكلة في الاتصال", + "connectivity.modal.content": "لا يمكن الاتصال بـ rTorrent. الرجاء تحديث المعلومات الآن.", + "feeds.add.automatic.download.rule": "إضافة قاعدة تحميل", + "feeds.add.feed": "إضافة موجز ويب", + "feeds.applicable.feed": "تغذية قابلة للتطبيق", + "feeds.apply.tags": "تطبيق العلامات", + "feeds.exclude.pattern": "استبعاد النمط", + "feeds.existing.feeds": "التحديثات الموجودة", + "feeds.existing.rules": "القواعد الحالية", + "feeds.label": "تسمية", + "feeds.match.count": "{count, plural, =1 {# تطابق} other {# يتطابق}}", + "feeds.match.pattern": "نمط المطابقة", + "feeds.match": "المباراة", + "feeds.exclude": "استبعاد", + "feeds.no.feeds.available": "لا توجد تغذية متاحة.", + "feeds.no.feeds.defined": "لم يتم تعريف أي تغذية.", + "feeds.no.rules.defined": "لا توجد قواعد معرفة.", + "feeds.regEx": "ريريكس", + "feeds.select.feed": "حدد موجز الويب", + "feeds.select.interval": "الفاصل", + "feeds.start.on.load": "البدء عند التحميل", + "feeds.tabs.download.rules": "قواعد التحميل", + "feeds.tabs.feeds": "التحديثات", + "feeds.tabs.heading": "تغذية تورنت", + "feeds.tags": "الوسوم", + "feeds.time.hr": "الساعات", + "feeds.time.min": "دقائق", + "feeds.time.day": "أيام", + "feeds.torrent.destination": "وجهة تورنت", + "feeds.url": "الرابط", + "feeds.search": "مصطلح البحث", + "feeds.validation.invalid.regular.expression": "تعبير عادي غير صالح.", + "feeds.validation.must.select.feed": "يجب عليك تحديد التغذية.", + "feeds.validation.must.specify.destination": "يجب عليك تحديد الوجهة.", + "feeds.validation.must.specify.label": "يجب عليك تحديد التسمية.", + "feeds.validation.must.specify.valid.feed.url": "يجب عليك تحديد رابط تغذية صالح.", + "feeds.browse.feeds": "تصفح الخلاصات", + "filesystem.empty.directory": "مجلد فارغ.", + "filesystem.error.eacces": "الفيضان ليس لديه الصلاحية لقراءة هذا الدليل.", + "filesystem.error.enoent": "هذا المسار غير موجود. سيتم إنشاؤه.", + "filesystem.fetching": "جلب بنية الدليل...", + "filter.all": "الكل", + "filter.status.title": "تصفية حسب الحالة", + "filter.status.downloading": "تنزيل", + "filter.status.completed": "Complete", + "filter.status.active": "نشط", + "filter.status.inactive": "غير نشط", + "filter.status.error": "خطأ", + "filter.status.stopped": "توقفت", + "filter.status.checking": "التحقق", + "filter.tracker.title": "تصفية حسب التتبع", + "filter.tag.title": "تصفية حسب العلامة", + "filter.untagged": "غير موسومة", + "general.ago": "مضت", + "general.at": "في", + "general.to": "إلى", + "general.of": "من", + "general.clipboard.copy": "نسخ", + "general.clipboard.copied": "منسوخ", + "mediainfo.execError": "حدث خطأ أثناء تشغيل mediainfo على الخادم. تحقق من أن mediainfo مثبت ومتاح في PATH للفيضان.", + "mediainfo.fetching": "إحضار ...", + "mediainfo.heading": "ناتج ميداينفو", + "notification.torrent.finished.heading": "انتهى التحميل", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "تم الإبلاغ عن خطأ", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "مسح الكل", + "notification.showing": "عرض", + "priority.dont.download": "عدم التحميل", + "priority.high": "مرتفع", + "priority.low": "منخفض", + "priority.normal": "عادي", + "settings.bandwidth.slots.download.divider.label": "تنزيل مزود الفتحات", + "settings.bandwidth.slots.download.global.label": "تحميل الفتحات العالمية", + "settings.bandwidth.slots.download.label": "تنزيل الفتحات لكل تورينت", + "settings.bandwidth.slots.heading": "توفر الخانة", + "settings.bandwidth.slots.upload.divider.label": "تحميل مقسم الخانات", + "settings.bandwidth.slots.upload.global.label": "تحميل خانات عامة", + "settings.bandwidth.slots.upload.label": "تحميل الفتحات لكل تورينت", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "المنسدلة مسبقاً: تحميل", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "القائمة المنسدلة مسبقاً: تحميل", + "settings.bandwidth.transferrate.global.throttle.download": "خنق معدل التحميل العالمي", + "settings.bandwidth.transferrate.global.throttle.upload": "خنق معدل التحميل العالمي", + "settings.bandwidth.transferrate.heading": "خانات معدل التحويل", + "settings.connectivity.dht.label": "تمكين DHT", + "settings.connectivity.dht.port.label": "منفذ DHT", + "settings.connectivity.dpd.heading": "اكتشاف الند اللامركزي", + "settings.connectivity.incoming.heading": "اتصالات واردة", + "settings.connectivity.ip.hostname.label": "اسم IP/المضيف المبلغ عنه", + "settings.connectivity.max.http.connections": "الحد الأقصى لاتصالات HTTP", + "settings.connectivity.peer.exchange.label": "تمكين تبادل الأقران", + "settings.connectivity.peers.desired.label": "الند المنشود", + "settings.connectivity.peers.heading": "أقران", + "settings.connectivity.peers.max.label": "الحد الأقصى للنظراء", + "settings.connectivity.peers.min.label": "الحد الأدنى للنظراء", + "settings.connectivity.peers.seeding.max.label": "الحد الأقصى لبذور النظراء", + "settings.connectivity.peers.seeding.min.label": "الحد الأدنى لبذور الند", + "settings.connectivity.port.open.label": "فتح المنفذ", + "settings.connectivity.port.randomize.label": "تصوير المنفذ عشوائي", + "settings.connectivity.port.range.label": "نطاق المنفذ", + "settings.resources.disk.check.hash.label": "التحقق من التجزئة عند الاكتمال", + "settings.resources.disk.download.location.label": "دليل التحميل الافتراضي", + "settings.resources.disk.heading": "قرص", + "settings.resources.max.open.files": "الحد الأقصى للملفات المفتوحة", + "settings.resources.memory.heading": "الذاكرة", + "settings.resources.memory.max.label": "الحد الأقصى لاستخدام الذاكرة", + "settings.tabs.bandwidth": "عرض التردد", + "settings.tabs.connectivity": "الاتصال", + "settings.tabs.heading": "الإعدادات", + "settings.tabs.resources": "الموارد", + "settings.tabs.authentication": "المصادقة", + "settings.tabs.userinterface": "واجهة المستخدم", + "settings.tabs.diskusage": "استخدام القرص", + "settings.tabs.about": "حول", + "settings.ui.locale": "محلي", + "settings.ui.language": "اللغة", + "settings.ui.torrent.list": "عرض قائمة التورينت", + "settings.ui.torrent.size": "حجم التورنت", + "settings.ui.torrent.size.expanded": "عرض موسع", + "settings.ui.torrent.size.condensed": "عرض مكثف", + "settings.ui.torrent.details.enabled": "تمكين", + "settings.ui.torrent.details.tags.placement": "ومن وجهة النظر الموسعة، فإن العلامات تعمل على أفضل وجه في نهاية القائمة.", + "settings.ui.displayed.details": "أعمدة تفاصيل تورنت", + "settings.diskusage.show": "إظهار", + "settings.diskusage.mount.points": "نقاط استخدام القرص", + "settings.about.flood": "حول الفيضان", + "sidebar.button.feeds": "التحديثات", + "sidebar.button.notifications": "الإشعارات", + "sidebar.button.settings": "الإعدادات", + "sidebar.button.speedlimits": "حدود السرعة", + "sidebar.button.log.out": "تسجيل الخروج", + "sidebar.search.placeholder": "البحث عن التورنت", + "sidebar.transferdata.downloaded": "تم التحميل", + "sidebar.transferdata.uploaded": "تم الرفع", + "speed.unlimited": "غير محدود", + "unit.size.byte": "ب", + "unit.size.kilobyte": "كيلوبايت", + "unit.size.megabyte": "ميغابايت", + "unit.size.gigabyte": "جيجابايت", + "unit.size.terabyte": "تيلبايت", + "unit.speed": "{baseUnit}/ث", + "unit.time.year": "yr", + "unit.time.week": "تأجج", + "unit.time.day": "د", + "unit.time.hour": "ساعة", + "unit.time.minute": "د", + "unit.time.second": "ث", + "unit.time.infinity": "∞", + "torrents.add.button.add": "إضافة تورنت", + "torrents.add.destination.label": "الوجهة", + "torrents.add.destination.placeholder": "الوجهة", + "torrents.add.heading": "إضافة تورينت", + "torrents.add.start.label": "ابدأ التورينت", + "torrents.add.tab.file.browse": "أو انقر لتصفح", + "torrents.add.tab.file.drop": "إسقاط بعض الملفات هنا،", + "torrents.add.tab.file.title": "حسب الملف", + "torrents.add.tab.url.input.placeholder": "رابط تورينت أو رابط الـ Magnet", + "torrents.add.tab.url.title": "حسب عنوان URL", + "torrents.add.torrents.label": "تورينتس", + "torrents.add.tags": "الوسوم", + "torrents.destination.base_path": "استخدام كمسار أساسي", + "torrents.details.actions.pause": "إيقاف", + "torrents.details.actions.start": "ابدأ", + "torrents.details.actions.stop": "توقف", + "torrents.details.details": "التفاصيل", + "torrents.details.files": "الملفات", + "torrents.details.files.loading": "تحميل تفاصيل الملف...", + "torrents.details.files.download.file": "{count, plural, =1 {تحميل الملف} other {تحميل الملفات}}", + "torrents.details.general.comment": "تعليق", + "torrents.details.general.connected": "{connected} متصل بـ {total}", + "torrents.details.general.date.added": "أضيف", + "torrents.details.general.date.created": "تاريخ الإنشاء", + "torrents.details.general.downloaded": "تم التحميل", + "torrents.details.general.free.disk.space": "مساحة القرص الحرة", + "torrents.details.general.hash": "التجزئة", + "torrents.details.general.heading.general": "عام", + "torrents.details.general.heading.torrent": "تورنت", + "torrents.details.general.heading.tracker": "المتتبع", + "torrents.details.general.heading.transfer": "نقل", + "torrents.details.general.location": "الموقع", + "torrents.details.general.none": "لا", + "torrents.details.general.peers": "أقران", + "torrents.details.general.scheduler.ignored": "تجاهل", + "torrents.details.general.scheduler.obeyed": "عقيب", + "torrents.details.general.scheduler": "جدولة", + "torrents.details.general.seeds": "بذور", + "torrents.details.general.size": "الحجم", + "torrents.details.general.tags": "الوسوم", + "torrents.details.general.tracker.message": "رسالة تتبع", + "torrents.details.general.type.private": "خاص", + "torrents.details.general.type.public": "عامة", + "torrents.details.general.type": "نوع", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "لا توجد بيانات أقران لهذا التورنت.", + "torrents.details.peers": "أقران", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} ملف محدد} other {{countElement} ملفات محددة}}", + "torrents.details.selected.files.set.priority": "تعيين الأولوية", + "torrents.details.trackers.no.data": "لا توجد بيانات تتبع لهذا التورنت.", + "torrents.details.trackers.type": "نوع", + "torrents.details.trackers": "المتتبعون", + "torrents.list.clear.filters": "مسح الفلاتر", + "torrents.list.context.check.hash": "تحقق من التجزئة", + "torrents.list.context.details": "تفاصيل التورنت", + "torrents.list.context.move": "تعيين موقع التورنت", + "torrents.list.context.pause": "إيقاف", + "torrents.list.context.priority": "الأولوية", + "torrents.list.context.remove": "إزالة", + "torrents.list.context.set.tags": "تعيين العلامات", + "torrents.list.context.start": "ابدأ", + "torrents.list.context.stop": "توقف", + "torrents.list.no.torrents": "لا يوجد سلالات لعرضها.", + "torrents.list.drop": "إسقاط الملفات هنا لإضافتها إلى rTorrent.", + "torrents.list.cannot.connect": "لا يمكن الاتصال بـ rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "من", + "torrents.move.button.set.location": "تعيين الموقع", + "torrents.move.button.state.setting": "إعداد...", + "torrents.move.data.label": "نقل البيانات", + "torrents.move.check_hash.label": "تحقق من التجزئة", + "torrents.move.heading": "تعيين موقع التورنت", + "torrents.properties.date.added": "أضيف", + "torrents.properties.base.path": "المسار الأساسي", + "torrents.properties.comment": "تعليق", + "torrents.properties.creation.date": "تاريخ الإنشاء", + "torrents.properties.download.speed": "سرعة التنزيل", + "torrents.properties.download.total": "تم التحميل", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "مساحة القرص الحرة", + "torrents.properties.hash": "التجزئة", + "torrents.properties.ignore.schedule": "تجاهل المجدول", + "torrents.properties.is.private": "خاص", + "torrents.properties.name": "الاسم", + "torrents.properties.percentage": "اكتمل النسبة", + "torrents.properties.ratio": "النسبة", + "torrents.properties.size": "حجم الملف", + "torrents.properties.tags": "الوسوم", + "torrents.properties.tracker.message": "رسالة تتبع", + "torrents.properties.upload.speed": "سرعة التحميل", + "torrents.properties.upload.total": "تم الرفع", + "torrents.remove.are.you.sure": "هل أنت متأكد من أنك تريد إزالة {count, plural, =1 {# تورنت} other {# تورنت}}?", + "torrents.remove.delete.data": "حذف البيانات", + "torrents.remove.error.no.torrents.selected": "لم تقم باختيار أي تورنات.", + "torrents.remove": "إزالة التورنت", + "torrents.set.tags.button.set": "تعيين العلامات", + "torrents.set.tags.heading": "تعيين العلامات", + "torrents.set.tags.enter.tags": "أدخل العلامات", + "torrents.sort.title": "الترتيب حسب", + "connection-interruption.heading": "لا يمكن الاتصال بـ rTorrent", + "connection-interruption.verify-settings-prompt": "دعونا نتحقق من إعدادات الاتصال الخاصة بك.", + "connection-interruption.verification-error": "تعذر التحقق من الاتصال.", + "connection-interruption.verification-success": "تم الاتصال بنجاح", + "status.diskusage.title": "استخدام القرص", + "locale.language.auto": "تلقائي" +} diff --git a/client/src/javascript/i18n/translations/ca.js b/client/src/javascript/i18n/translations/ca.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/ca.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/cs.js b/client/src/javascript/i18n/translations/cs.js deleted file mode 100644 index 71d207a24..000000000 --- a/client/src/javascript/i18n/translations/cs.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Spustit Torrent', - 'actionbar.button.stop.torrent': 'Zastavit Torrent', - 'actionbar.button.add.torrent': 'Přidat Torrent', - 'actionbar.button.remove.torrent': 'Odebrat Torrent', - 'alert.torrent.add': `Úspěšně přidáno {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.torrent.add.failed': `Nepodařilo se přidat {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.torrent.move': `Úspěšně přesunuto {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.torrent.move.failed': `Nepodařilo se přesunout {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.torrent.remove': `Úspěšně odstraněno {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.torrent.remove.failed': `Nepodařilo se odstranit {countElement} {count, plural, =1 {torrent} other {torrenty}}`, - 'alert.settings.saved': 'Nastavení bylo úspěšně uloženo.', - 'auth.add.user': 'Přidat uživatele', - 'auth.connectionType': 'Typ připojení rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unixní raketa', - 'auth.create.account': 'Vytvořit účet', - 'auth.create.an.account': 'Vytvořit účet', - 'auth.create.an.account.intro': 'Vítejte v záplavě!', - 'auth.current.user': 'Aktuální uživatel', - 'auth.error.username.empty': 'Uživatelské jméno nemůže být prázdné.', - 'auth.log.in': 'Přihlásit se', - 'auth.login': 'Přihlásit se', - 'auth.password': 'Heslo', - 'auth.user.accounts': 'Uživatelské účty', - 'auth.username': 'Uživatelské jméno', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'Uživatel není správce', - 'auth.rtorrentHost': 'Hostitel rTorrentu', - 'auth.rtorrentPort': 'Port rTorrentu', - 'auth.rtorrentSocket': 'Raketa rTorrentu', - 'auth.rtorrentSocketPath': 'Cesta k rtorrentu', - 'button.add': 'Přidat', - 'button.cancel': 'Zrušit', - 'button.no': 'Ne', - 'button.save': 'Uložit nastavení', - 'button.save.feed': 'Uložit', - 'button.test': 'Zkouška', - 'button.state.adding': 'Přidávání...', - 'button.yes': 'Ano', - 'button.new': 'Nové', - 'connectivity.modal.title': 'Problém s připojením', - 'connectivity.modal.content': 'Nelze se připojit k rTorrent. Aktualizujte prosím informace nyní.', - 'feeds.add.automatic.download.rule': 'Přidat pravidlo pro stahování', - 'feeds.add.feed': 'Přidat kanál', - 'feeds.applicable.feed': 'Použitelný kanál', - 'feeds.apply.tags': 'Použít štítky', - 'feeds.exclude.pattern': 'Vyloučit vzor', - 'feeds.existing.feeds': 'Existující kanály', - 'feeds.existing.rules': 'Stávající pravidla', - 'feeds.label': 'Popisek', - 'feeds.match.count': '{count, plural, =1 {# shoduje se s} other {# se shoduje s}}', - 'feeds.match.pattern': 'Vzor zápasu', - 'feeds.match': 'Zápas', - 'feeds.exclude': 'Vyjmout', - 'feeds.no.feeds.available': 'Žádné zdroje nejsou k dispozici.', - 'feeds.no.feeds.defined': 'Nebyly definovány žádné kanály.', - 'feeds.no.rules.defined': 'Nebyla definována žádná pravidla.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Vybrat kanál', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Spustit při načítání', - 'feeds.tabs.download.rules': 'Pravidla pro stahování', - 'feeds.tabs.feeds': 'Zdroje', - 'feeds.tabs.heading': 'Torrent kanály', - 'feeds.tags': 'Štítky', - 'feeds.time.hr': 'Hodiny', - 'feeds.time.min': 'Zápis z jednání', - 'feeds.time.day': 'Dny', - 'feeds.torrent.destination': 'Cíl Torrentu', - 'feeds.url': 'URL', - 'feeds.search': 'Hledat termín', - 'feeds.validation.invalid.regular.expression': 'Neplatný regulární výraz.', - 'feeds.validation.must.select.feed': 'Musíte vybrat kanál.', - 'feeds.validation.must.specify.destination': 'Musíte zadat destinaci.', - 'feeds.validation.must.specify.label': 'Musíte zadat popisek.', - 'feeds.validation.must.specify.valid.feed.url': 'Musíte zadat platnou URL kanálu.', - 'feeds.browse.feeds': 'Procházet kanály', - 'filesystem.empty.directory': 'Prázdný adresář.', - 'filesystem.error.eacces': 'Záplava nemá oprávnění ke čtení tohoto adresáře.', - 'filesystem.error.enoent': 'Tato cesta neexistuje. Bude vytvořena.', - 'filesystem.fetching': 'Načítání adresářové struktury...', - 'filter.all': 'Vše', - 'filter.status.title': 'Filtrovat podle stavu', - 'filter.status.downloading': 'Stahování', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Aktivní', - 'filter.status.inactive': 'Neaktivní', - 'filter.status.error': 'Chyba', - 'filter.status.stopped': 'Zastaveno', - 'filter.status.checking': 'Kontrola', - 'filter.tracker.title': 'Filtrovat podle sledovače', - 'filter.tag.title': 'Filtrovat podle tagu', - 'filter.untagged': 'Neoznačeno', - 'general.ago': 'zpět', - 'general.at': 'v', - 'general.to': 'do', - 'general.of': 'z', - 'general.clipboard.copy': 'Kopírovat', - 'general.clipboard.copied': 'Zkopírováno', - 'mediainfo.execError': - 'Došlo k chybě při běhu mediainfo na serveru. Zkontrolujte, zda je mediainfo nainstalováno a dostupné v PATH na Flood.', - 'mediainfo.fetching': 'Načítání...', - 'mediainfo.heading': 'Mediainfo výstup', - 'notification.torrent.finished.heading': 'Dokončené stahování', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Nahlášena chyba', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Vymazat vše', - 'notification.showing': 'Zobrazení', - 'priority.dont.download': 'Nestahovat', - 'priority.high': 'Vysoká', - 'priority.low': 'Nízká', - 'priority.normal': 'Normální', - 'settings.bandwidth.slots.download.divider.label': 'Stáhnout Slot Divider', - 'settings.bandwidth.slots.download.global.label': 'Stáhnout sloty globálně', - 'settings.bandwidth.slots.download.label': 'Stáhnout Slot Per Torrent', - 'settings.bandwidth.slots.heading': 'Dostupnost slotu', - 'settings.bandwidth.slots.upload.divider.label': 'Nahrát rozdělovač slotů', - 'settings.bandwidth.slots.upload.global.label': 'Nahrát globální sloty', - 'settings.bandwidth.slots.upload.label': 'Nahrát sloty na Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Přednastavení rozbalovacího seznamu: Stáhnout', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Předvolby rozbalovacího seznamu: Nahrát', - 'settings.bandwidth.transferrate.global.throttle.download': 'Globální rychlost stahování plynu', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Plyn globální rychlosti nahrávání', - 'settings.bandwidth.transferrate.heading': 'Převodní rychlost tahů', - 'settings.connectivity.dht.label': 'Povolit DHT', - 'settings.connectivity.dht.port.label': 'Port DHT', - 'settings.connectivity.dpd.heading': 'Decentralizované objevení Klienta', - 'settings.connectivity.incoming.heading': 'Příchozí připojení', - 'settings.connectivity.ip.hostname.label': 'Nahlášený IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximální HTTP připojení', - 'settings.connectivity.peer.exchange.label': 'Povolit Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Klienti požadováni', - 'settings.connectivity.peers.heading': 'Klienti', - 'settings.connectivity.peers.max.label': 'Maximální počet klientů', - 'settings.connectivity.peers.min.label': 'Minimální počet klientů', - 'settings.connectivity.peers.seeding.max.label': 'Maximální počet Distribucí Klientů', - 'settings.connectivity.peers.seeding.min.label': 'Minimální počet Distribucí Klientů', - 'settings.connectivity.port.open.label': 'Otevřít port', - 'settings.connectivity.port.randomize.label': 'Náhodné nastavení portu', - 'settings.connectivity.port.range.label': 'Rozsah portu', - 'settings.resources.disk.check.hash.label': 'Ověřit hash po dokončení', - 'settings.resources.disk.download.location.label': 'Výchozí adresář pro stahování', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximální počet otevřených souborů', - 'settings.resources.memory.heading': 'Paměť', - 'settings.resources.memory.max.label': 'Maximální využití paměti', - 'settings.tabs.bandwidth': 'Šířka pásma', - 'settings.tabs.connectivity': 'Připojení', - 'settings.tabs.heading': 'Nastavení', - 'settings.tabs.resources': 'Zdroje', - 'settings.tabs.authentication': 'Ověření', - 'settings.tabs.userinterface': 'Uživatelské rozhraní', - 'settings.tabs.diskusage': 'Využití disku', - 'settings.tabs.about': 'O aplikaci', - 'settings.ui.locale': 'Místní prostředí', - 'settings.ui.language': 'Jazyk', - 'settings.ui.torrent.list': 'Zobrazení seznamu Torrentů', - 'settings.ui.torrent.size': 'Velikost Torrentu', - 'settings.ui.torrent.size.expanded': 'Rozšířené zobrazení', - 'settings.ui.torrent.size.condensed': 'Zkrácené zobrazení', - 'settings.ui.torrent.details.enabled': 'Povoleno', - 'settings.ui.torrent.details.tags.placement': 'V rozšířeném zobrazení, značky fungují nejlépe na konci seznamu.', - 'settings.ui.displayed.details': 'Detailní torrent sloupce', - 'settings.diskusage.show': 'Zobrazit', - 'settings.diskusage.mount.points': 'Využití přípojných bodů disku', - 'settings.about.flood': 'O záplavách', - 'sidebar.button.feeds': 'Zdroje', - 'sidebar.button.notifications': 'Oznámení', - 'sidebar.button.settings': 'Nastavení', - 'sidebar.button.speedlimits': 'Omezení rychlosti', - 'sidebar.button.log.out': 'Odhlásit se', - 'sidebar.search.placeholder': 'Hledat torrenty', - 'sidebar.transferdata.downloaded': 'Staženo', - 'sidebar.transferdata.uploaded': 'Nahráno', - 'speed.unlimited': 'Bez omezení', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'CZ', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hod.', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Přidat Torrent', - 'torrents.add.destination.label': 'Místo určení', - 'torrents.add.destination.placeholder': 'Místo určení', - 'torrents.add.heading': 'Přidat torrenty', - 'torrents.add.start.label': 'Spustit Torrent', - 'torrents.add.tab.file.browse': 'nebo klikněte pro procházení', - 'torrents.add.tab.file.drop': 'Sem přetáhněte některé soubory.', - 'torrents.add.tab.file.title': 'Podle souboru', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL nebo Magnet odkaz', - 'torrents.add.tab.url.title': 'Podle URL', - 'torrents.add.torrents.label': 'Torrenty', - 'torrents.add.tags': 'Štítky', - 'torrents.destination.base_path': 'Použít jako základní cestu', - 'torrents.details.actions.pause': 'Pozastavit', - 'torrents.details.actions.start': 'Začít', - 'torrents.details.actions.stop': 'Zastavit', - 'torrents.details.details': 'Detaily', - 'torrents.details.files': 'Soubory', - 'torrents.details.files.loading': 'Načítání detailu souboru...', - 'torrents.details.files.download.file': `{count, plural, =1 {Stáhněte soubor} other {Stáhněte soubory}}`, - 'torrents.details.general.comment': 'Komentář', - 'torrents.details.general.connected': '{connected} připojen k {total}', - 'torrents.details.general.date.added': 'Přidáno', - 'torrents.details.general.date.created': 'Datum vytvoření', - 'torrents.details.general.downloaded': 'Staženo', - 'torrents.details.general.free.disk.space': 'Volné místo na disku', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Obecná ustanovení', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Sledování', - 'torrents.details.general.heading.transfer': 'Převod', - 'torrents.details.general.location': 'Poloha', - 'torrents.details.general.none': 'Nic', - 'torrents.details.general.peers': 'Klienti', - 'torrents.details.general.scheduler.ignored': 'Ignorováno', - 'torrents.details.general.scheduler.obeyed': 'Ovesné', - 'torrents.details.general.scheduler': 'Plánovač', - 'torrents.details.general.seeds': 'Semena', - 'torrents.details.general.size': 'Velikost', - 'torrents.details.general.tags': 'Štítky', - 'torrents.details.general.tracker.message': 'Sledovací zpráva', - 'torrents.details.general.type.private': 'Soukromé', - 'torrents.details.general.type.public': 'Veřejnost', - 'torrents.details.general.type': 'Typ', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Pro tento torrent nejsou k dispozici žádná klientská data.', - 'torrents.details.peers': 'Klienti', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} vybral soubor} other {{countElement} vybrané soubory}}`, - 'torrents.details.selected.files.set.priority': 'Nastavit prioritu', - 'torrents.details.trackers.no.data': 'Pro tento torrent nejsou k dispozici žádná data trackeru.', - 'torrents.details.trackers.type': 'Typ', - 'torrents.details.trackers': 'Sledovače', - 'torrents.list.clear.filters': 'Vymazat filtry', - 'torrents.list.context.check.hash': 'Zkontrolovat Hash', - 'torrents.list.context.details': 'Podrobnosti Torrentu', - 'torrents.list.context.move': 'Nastavit umístění Torrentu', - 'torrents.list.context.pause': 'Pozastavit', - 'torrents.list.context.priority': 'Priorita', - 'torrents.list.context.remove': 'Odebrat', - 'torrents.list.context.set.tags': 'Nastavit štítky', - 'torrents.list.context.start': 'Začít', - 'torrents.list.context.stop': 'Zastavit', - 'torrents.list.no.torrents': 'Žádné torrenty k zobrazení.', - 'torrents.list.drop': 'Přetáhněte soubory pro jejich přidání do rTorrent.', - 'torrents.list.cannot.connect': 'Nelze se připojit k rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'z', - 'torrents.move.button.set.location': 'Nastavit umístění', - 'torrents.move.button.state.setting': 'Nastavení...', - 'torrents.move.data.label': 'Přesunout data', - 'torrents.move.check_hash.label': 'Zkontrolovat hash', - 'torrents.move.heading': 'Nastavit umístění Torrentu', - 'torrents.properties.date.added': 'Přidáno', - 'torrents.properties.base.path': 'Základní cesta', - 'torrents.properties.comment': 'Komentář', - 'torrents.properties.creation.date': 'Datum vytvoření', - 'torrents.properties.download.speed': 'Rychlost stahování', - 'torrents.properties.download.total': 'Staženo', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Volné místo na disku', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignorovat plánovač', - 'torrents.properties.is.private': 'Soukromé', - 'torrents.properties.name': 'Název', - 'torrents.properties.percentage': 'Procento dokončeno', - 'torrents.properties.ratio': 'Poměr', - 'torrents.properties.size': 'Velikost souboru', - 'torrents.properties.tags': 'Štítky', - 'torrents.properties.tracker.message': 'Sledovací zpráva', - 'torrents.properties.upload.speed': 'Rychlost nahrávání', - 'torrents.properties.upload.total': 'Nahráno', - 'torrents.remove.are.you.sure': `Jste si jisti, že chcete odstranit {count, plural, =1 {# torrent} other {# torrentů}}?`, - 'torrents.remove.delete.data': 'Odstranit data', - 'torrents.remove.error.no.torrents.selected': 'Nevybrali jste žádné torrenty.', - 'torrents.remove': 'Odebrat Torrenty', - 'torrents.set.tags.button.set': 'Nastavit štítky', - 'torrents.set.tags.heading': 'Nastavit štítky', - 'torrents.set.tags.enter.tags': 'Zadejte štítky', - 'torrents.sort.title': 'Seřadit podle', - 'connection-interruption.heading': 'Nelze se připojit k rTorrent', - 'connection-interruption.verify-settings-prompt': 'Pojďme ověřit nastavení připojení.', - 'connection-interruption.verification-error': 'Nelze ověřit spojení.', - 'connection-interruption.verification-success': 'Připojení bylo úspěšné', - 'status.diskusage.title': 'Využití disku', - 'locale.language.auto': 'Automaticky', -}; diff --git a/client/src/javascript/i18n/translations/cs.json b/client/src/javascript/i18n/translations/cs.json new file mode 100644 index 000000000..e9177e09b --- /dev/null +++ b/client/src/javascript/i18n/translations/cs.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Spustit Torrent", + "actionbar.button.stop.torrent": "Zastavit Torrent", + "actionbar.button.add.torrent": "Přidat Torrent", + "actionbar.button.remove.torrent": "Odebrat Torrent", + "alert.torrent.add": "Úspěšně přidáno {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.torrent.add.failed": "Nepodařilo se přidat {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.torrent.move": "Úspěšně přesunuto {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.torrent.move.failed": "Nepodařilo se přesunout {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.torrent.remove": "Úspěšně odstraněno {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.torrent.remove.failed": "Nepodařilo se odstranit {countElement} {count, plural, =1 {torrent} other {torrenty}}", + "alert.settings.saved": "Nastavení bylo úspěšně uloženo.", + "auth.add.user": "Přidat uživatele", + "auth.connectionType": "Typ připojení rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unixní raketa", + "auth.create.account": "Vytvořit účet", + "auth.create.an.account": "Vytvořit účet", + "auth.create.an.account.intro": "Vítejte v záplavě!", + "auth.current.user": "Aktuální uživatel", + "auth.error.username.empty": "Uživatelské jméno nemůže být prázdné.", + "auth.log.in": "Přihlásit se", + "auth.login": "Přihlásit se", + "auth.password": "Heslo", + "auth.user.accounts": "Uživatelské účty", + "auth.username": "Uživatelské jméno", + "auth.admin": "Admin", + "auth.message.not.admin": "Uživatel není správce", + "auth.rtorrentHost": "Hostitel rTorrentu", + "auth.rtorrentPort": "Port rTorrentu", + "auth.rtorrentSocket": "Raketa rTorrentu", + "auth.rtorrentSocketPath": "Cesta k rtorrentu", + "button.add": "Přidat", + "button.cancel": "Zrušit", + "button.no": "Ne", + "button.save": "Uložit nastavení", + "button.save.feed": "Uložit", + "button.test": "Zkouška", + "button.state.adding": "Přidávání...", + "button.yes": "Ano", + "button.new": "Nové", + "connectivity.modal.title": "Problém s připojením", + "connectivity.modal.content": "Nelze se připojit k rTorrent. Aktualizujte prosím informace nyní.", + "feeds.add.automatic.download.rule": "Přidat pravidlo pro stahování", + "feeds.add.feed": "Přidat kanál", + "feeds.applicable.feed": "Použitelný kanál", + "feeds.apply.tags": "Použít štítky", + "feeds.exclude.pattern": "Vyloučit vzor", + "feeds.existing.feeds": "Existující kanály", + "feeds.existing.rules": "Stávající pravidla", + "feeds.label": "Popisek", + "feeds.match.count": "{count, plural, =1 {# shoduje se s} other {# se shoduje s}}", + "feeds.match.pattern": "Vzor zápasu", + "feeds.match": "Zápas", + "feeds.exclude": "Vyjmout", + "feeds.no.feeds.available": "Žádné zdroje nejsou k dispozici.", + "feeds.no.feeds.defined": "Nebyly definovány žádné kanály.", + "feeds.no.rules.defined": "Nebyla definována žádná pravidla.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Vybrat kanál", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Spustit při načítání", + "feeds.tabs.download.rules": "Pravidla pro stahování", + "feeds.tabs.feeds": "Zdroje", + "feeds.tabs.heading": "Torrent kanály", + "feeds.tags": "Štítky", + "feeds.time.hr": "Hodiny", + "feeds.time.min": "Zápis z jednání", + "feeds.time.day": "Dny", + "feeds.torrent.destination": "Cíl Torrentu", + "feeds.url": "URL", + "feeds.search": "Hledat termín", + "feeds.validation.invalid.regular.expression": "Neplatný regulární výraz.", + "feeds.validation.must.select.feed": "Musíte vybrat kanál.", + "feeds.validation.must.specify.destination": "Musíte zadat destinaci.", + "feeds.validation.must.specify.label": "Musíte zadat popisek.", + "feeds.validation.must.specify.valid.feed.url": "Musíte zadat platnou URL kanálu.", + "feeds.browse.feeds": "Procházet kanály", + "filesystem.empty.directory": "Prázdný adresář.", + "filesystem.error.eacces": "Záplava nemá oprávnění ke čtení tohoto adresáře.", + "filesystem.error.enoent": "Tato cesta neexistuje. Bude vytvořena.", + "filesystem.fetching": "Načítání adresářové struktury...", + "filter.all": "Vše", + "filter.status.title": "Filtrovat podle stavu", + "filter.status.downloading": "Stahování", + "filter.status.completed": "Complete", + "filter.status.active": "Aktivní", + "filter.status.inactive": "Neaktivní", + "filter.status.error": "Chyba", + "filter.status.stopped": "Zastaveno", + "filter.status.checking": "Kontrola", + "filter.tracker.title": "Filtrovat podle sledovače", + "filter.tag.title": "Filtrovat podle tagu", + "filter.untagged": "Neoznačeno", + "general.ago": "zpět", + "general.at": "v", + "general.to": "do", + "general.of": "z", + "general.clipboard.copy": "Kopírovat", + "general.clipboard.copied": "Zkopírováno", + "mediainfo.execError": "Došlo k chybě při běhu mediainfo na serveru. Zkontrolujte, zda je mediainfo nainstalováno a dostupné v PATH na Flood.", + "mediainfo.fetching": "Načítání...", + "mediainfo.heading": "Mediainfo výstup", + "notification.torrent.finished.heading": "Dokončené stahování", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Nahlášena chyba", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Vymazat vše", + "notification.showing": "Zobrazení", + "priority.dont.download": "Nestahovat", + "priority.high": "Vysoká", + "priority.low": "Nízká", + "priority.normal": "Normální", + "settings.bandwidth.slots.download.divider.label": "Stáhnout Slot Divider", + "settings.bandwidth.slots.download.global.label": "Stáhnout sloty globálně", + "settings.bandwidth.slots.download.label": "Stáhnout Slot Per Torrent", + "settings.bandwidth.slots.heading": "Dostupnost slotu", + "settings.bandwidth.slots.upload.divider.label": "Nahrát rozdělovač slotů", + "settings.bandwidth.slots.upload.global.label": "Nahrát globální sloty", + "settings.bandwidth.slots.upload.label": "Nahrát sloty na Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Přednastavení rozbalovacího seznamu: Stáhnout", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Předvolby rozbalovacího seznamu: Nahrát", + "settings.bandwidth.transferrate.global.throttle.download": "Globální rychlost stahování plynu", + "settings.bandwidth.transferrate.global.throttle.upload": "Plyn globální rychlosti nahrávání", + "settings.bandwidth.transferrate.heading": "Převodní rychlost tahů", + "settings.connectivity.dht.label": "Povolit DHT", + "settings.connectivity.dht.port.label": "Port DHT", + "settings.connectivity.dpd.heading": "Decentralizované objevení Klienta", + "settings.connectivity.incoming.heading": "Příchozí připojení", + "settings.connectivity.ip.hostname.label": "Nahlášený IP/Hostname", + "settings.connectivity.max.http.connections": "Maximální HTTP připojení", + "settings.connectivity.peer.exchange.label": "Povolit Peer Exchange", + "settings.connectivity.peers.desired.label": "Klienti požadováni", + "settings.connectivity.peers.heading": "Klienti", + "settings.connectivity.peers.max.label": "Maximální počet klientů", + "settings.connectivity.peers.min.label": "Minimální počet klientů", + "settings.connectivity.peers.seeding.max.label": "Maximální počet Distribucí Klientů", + "settings.connectivity.peers.seeding.min.label": "Minimální počet Distribucí Klientů", + "settings.connectivity.port.open.label": "Otevřít port", + "settings.connectivity.port.randomize.label": "Náhodné nastavení portu", + "settings.connectivity.port.range.label": "Rozsah portu", + "settings.resources.disk.check.hash.label": "Ověřit hash po dokončení", + "settings.resources.disk.download.location.label": "Výchozí adresář pro stahování", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximální počet otevřených souborů", + "settings.resources.memory.heading": "Paměť", + "settings.resources.memory.max.label": "Maximální využití paměti", + "settings.tabs.bandwidth": "Šířka pásma", + "settings.tabs.connectivity": "Připojení", + "settings.tabs.heading": "Nastavení", + "settings.tabs.resources": "Zdroje", + "settings.tabs.authentication": "Ověření", + "settings.tabs.userinterface": "Uživatelské rozhraní", + "settings.tabs.diskusage": "Využití disku", + "settings.tabs.about": "O aplikaci", + "settings.ui.locale": "Místní prostředí", + "settings.ui.language": "Jazyk", + "settings.ui.torrent.list": "Zobrazení seznamu Torrentů", + "settings.ui.torrent.size": "Velikost Torrentu", + "settings.ui.torrent.size.expanded": "Rozšířené zobrazení", + "settings.ui.torrent.size.condensed": "Zkrácené zobrazení", + "settings.ui.torrent.details.enabled": "Povoleno", + "settings.ui.torrent.details.tags.placement": "V rozšířeném zobrazení, značky fungují nejlépe na konci seznamu.", + "settings.ui.displayed.details": "Detailní torrent sloupce", + "settings.diskusage.show": "Zobrazit", + "settings.diskusage.mount.points": "Využití přípojných bodů disku", + "settings.about.flood": "O záplavách", + "sidebar.button.feeds": "Zdroje", + "sidebar.button.notifications": "Oznámení", + "sidebar.button.settings": "Nastavení", + "sidebar.button.speedlimits": "Omezení rychlosti", + "sidebar.button.log.out": "Odhlásit se", + "sidebar.search.placeholder": "Hledat torrenty", + "sidebar.transferdata.downloaded": "Staženo", + "sidebar.transferdata.uploaded": "Nahráno", + "speed.unlimited": "Bez omezení", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "CZ", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hod.", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Přidat Torrent", + "torrents.add.destination.label": "Místo určení", + "torrents.add.destination.placeholder": "Místo určení", + "torrents.add.heading": "Přidat torrenty", + "torrents.add.start.label": "Spustit Torrent", + "torrents.add.tab.file.browse": "nebo klikněte pro procházení", + "torrents.add.tab.file.drop": "Sem přetáhněte některé soubory.", + "torrents.add.tab.file.title": "Podle souboru", + "torrents.add.tab.url.input.placeholder": "Torrent URL nebo Magnet odkaz", + "torrents.add.tab.url.title": "Podle URL", + "torrents.add.torrents.label": "Torrenty", + "torrents.add.tags": "Štítky", + "torrents.destination.base_path": "Použít jako základní cestu", + "torrents.details.actions.pause": "Pozastavit", + "torrents.details.actions.start": "Začít", + "torrents.details.actions.stop": "Zastavit", + "torrents.details.details": "Detaily", + "torrents.details.files": "Soubory", + "torrents.details.files.loading": "Načítání detailu souboru...", + "torrents.details.files.download.file": "{count, plural, =1 {Stáhněte soubor} other {Stáhněte soubory}}", + "torrents.details.general.comment": "Komentář", + "torrents.details.general.connected": "{connected} připojen k {total}", + "torrents.details.general.date.added": "Přidáno", + "torrents.details.general.date.created": "Datum vytvoření", + "torrents.details.general.downloaded": "Staženo", + "torrents.details.general.free.disk.space": "Volné místo na disku", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Obecná ustanovení", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Sledování", + "torrents.details.general.heading.transfer": "Převod", + "torrents.details.general.location": "Poloha", + "torrents.details.general.none": "Nic", + "torrents.details.general.peers": "Klienti", + "torrents.details.general.scheduler.ignored": "Ignorováno", + "torrents.details.general.scheduler.obeyed": "Ovesné", + "torrents.details.general.scheduler": "Plánovač", + "torrents.details.general.seeds": "Semena", + "torrents.details.general.size": "Velikost", + "torrents.details.general.tags": "Štítky", + "torrents.details.general.tracker.message": "Sledovací zpráva", + "torrents.details.general.type.private": "Soukromé", + "torrents.details.general.type.public": "Veřejnost", + "torrents.details.general.type": "Typ", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Pro tento torrent nejsou k dispozici žádná klientská data.", + "torrents.details.peers": "Klienti", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} vybral soubor} other {{countElement} vybrané soubory}}", + "torrents.details.selected.files.set.priority": "Nastavit prioritu", + "torrents.details.trackers.no.data": "Pro tento torrent nejsou k dispozici žádná data trackeru.", + "torrents.details.trackers.type": "Typ", + "torrents.details.trackers": "Sledovače", + "torrents.list.clear.filters": "Vymazat filtry", + "torrents.list.context.check.hash": "Zkontrolovat Hash", + "torrents.list.context.details": "Podrobnosti Torrentu", + "torrents.list.context.move": "Nastavit umístění Torrentu", + "torrents.list.context.pause": "Pozastavit", + "torrents.list.context.priority": "Priorita", + "torrents.list.context.remove": "Odebrat", + "torrents.list.context.set.tags": "Nastavit štítky", + "torrents.list.context.start": "Začít", + "torrents.list.context.stop": "Zastavit", + "torrents.list.no.torrents": "Žádné torrenty k zobrazení.", + "torrents.list.drop": "Přetáhněte soubory pro jejich přidání do rTorrent.", + "torrents.list.cannot.connect": "Nelze se připojit k rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "z", + "torrents.move.button.set.location": "Nastavit umístění", + "torrents.move.button.state.setting": "Nastavení...", + "torrents.move.data.label": "Přesunout data", + "torrents.move.check_hash.label": "Zkontrolovat hash", + "torrents.move.heading": "Nastavit umístění Torrentu", + "torrents.properties.date.added": "Přidáno", + "torrents.properties.base.path": "Základní cesta", + "torrents.properties.comment": "Komentář", + "torrents.properties.creation.date": "Datum vytvoření", + "torrents.properties.download.speed": "Rychlost stahování", + "torrents.properties.download.total": "Staženo", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Volné místo na disku", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignorovat plánovač", + "torrents.properties.is.private": "Soukromé", + "torrents.properties.name": "Název", + "torrents.properties.percentage": "Procento dokončeno", + "torrents.properties.ratio": "Poměr", + "torrents.properties.size": "Velikost souboru", + "torrents.properties.tags": "Štítky", + "torrents.properties.tracker.message": "Sledovací zpráva", + "torrents.properties.upload.speed": "Rychlost nahrávání", + "torrents.properties.upload.total": "Nahráno", + "torrents.remove.are.you.sure": "Jste si jisti, že chcete odstranit {count, plural, =1 {# torrent} other {# torrentů}}?", + "torrents.remove.delete.data": "Odstranit data", + "torrents.remove.error.no.torrents.selected": "Nevybrali jste žádné torrenty.", + "torrents.remove": "Odebrat Torrenty", + "torrents.set.tags.button.set": "Nastavit štítky", + "torrents.set.tags.heading": "Nastavit štítky", + "torrents.set.tags.enter.tags": "Zadejte štítky", + "torrents.sort.title": "Seřadit podle", + "connection-interruption.heading": "Nelze se připojit k rTorrent", + "connection-interruption.verify-settings-prompt": "Pojďme ověřit nastavení připojení.", + "connection-interruption.verification-error": "Nelze ověřit spojení.", + "connection-interruption.verification-success": "Připojení bylo úspěšné", + "status.diskusage.title": "Využití disku", + "locale.language.auto": "Automaticky" +} diff --git a/client/src/javascript/i18n/translations/da.js b/client/src/javascript/i18n/translations/da.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/da.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/de.js b/client/src/javascript/i18n/translations/de.js deleted file mode 100644 index f1dedeb31..000000000 --- a/client/src/javascript/i18n/translations/de.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Torrent starten', - 'actionbar.button.stop.torrent': 'Torrent stoppen', - 'actionbar.button.add.torrent': 'Torrent hinzufügen', - 'actionbar.button.remove.torrent': 'Torrent entfernen', - 'alert.torrent.add': `{countElement} {count, plural, =1 {torrent} other {torrents}}hinzugefügt.`, - 'alert.torrent.add.failed': `Fehler beim Hinzufügen von {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.move': `{countElement} erfolgreich verschoben {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Fehler beim Verschieben von {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.remove': `{countElement} erfolgreich entfernt {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Fehler beim Entfernen von {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.settings.saved': 'Einstellungen erfolgreich gespeichert.', - 'auth.add.user': 'Neuer Benutzer', - 'auth.connectionType': 'rTorrent Verbindungstyp', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix-Socket', - 'auth.create.account': 'Konto erstellen', - 'auth.create.an.account': 'Ein Konto erstellen', - 'auth.create.an.account.intro': 'Willkommen bei Flood!', - 'auth.current.user': 'Aktueller Benutzer', - 'auth.error.username.empty': 'Benutzername darf nicht leer sein.', - 'auth.log.in': 'Anmelden', - 'auth.login': 'Anmelden', - 'auth.password': 'Passwort', - 'auth.user.accounts': 'Benutzerkonten', - 'auth.username': 'Benutzername', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'Benutzer ist kein Admin', - 'auth.rtorrentHost': 'rTorrent-Host', - 'auth.rtorrentPort': 'rTorrent-Port', - 'auth.rtorrentSocket': 'rTorrent-Socket', - 'auth.rtorrentSocketPath': 'rTorrent-Socket-Pfad', - 'button.add': 'Neu', - 'button.cancel': 'Abbrechen', - 'button.no': 'Nein', - 'button.save': 'Einstellungen speichern', - 'button.save.feed': 'Speichern', - 'button.test': 'Testen', - 'button.state.adding': 'Hinzufügen...', - 'button.yes': 'Ja', - 'button.new': 'Neu', - 'connectivity.modal.title': 'Verbindungsproblem', - 'connectivity.modal.content': 'Keine Verbindung zu rTorrent. Bitte aktualisieren Sie die Informationen jetzt.', - 'feeds.add.automatic.download.rule': 'Download-Regel hinzufügen', - 'feeds.add.feed': 'Neuer Feed', - 'feeds.applicable.feed': 'Anwendbarer Feed', - 'feeds.apply.tags': 'Tags anwenden', - 'feeds.exclude.pattern': 'Muster ausschließen', - 'feeds.existing.feeds': 'Vorhandene Feeds', - 'feeds.existing.rules': 'Bestehende Regeln', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# Spiel} other {# Spiele}}', - 'feeds.match.pattern': 'Match-Muster', - 'feeds.match': 'Spiel', - 'feeds.exclude': 'Ausschließen', - 'feeds.no.feeds.available': 'Keine Feeds verfügbar.', - 'feeds.no.feeds.defined': 'Keine Feeds definiert.', - 'feeds.no.rules.defined': 'Keine Regeln definiert.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Feed auswählen', - 'feeds.select.interval': 'Intervall', - 'feeds.start.on.load': 'Beim Laden starten', - 'feeds.tabs.download.rules': 'Download-Regeln', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent-Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Stunden', - 'feeds.time.min': 'Minuten', - 'feeds.time.day': 'Tage', - 'feeds.torrent.destination': 'Torrent-Ziel', - 'feeds.url': 'URL', - 'feeds.search': 'Suchbegriff', - 'feeds.validation.invalid.regular.expression': 'Ungültiger regulärer Ausdruck.', - 'feeds.validation.must.select.feed': 'Sie müssen einen Feed auswählen.', - 'feeds.validation.must.specify.destination': 'Sie müssen ein Ziel angeben.', - 'feeds.validation.must.specify.label': 'Sie müssen ein Label angeben.', - 'feeds.validation.must.specify.valid.feed.url': 'Sie müssen eine gültige Feed-URL angeben.', - 'feeds.browse.feeds': 'Feeds durchsuchen', - 'filesystem.empty.directory': 'Leeres Verzeichnis.', - 'filesystem.error.eacces': 'Flood hat keine Berechtigung, dieses Verzeichnis zu lesen.', - 'filesystem.error.enoent': 'Dieser Pfad existiert nicht. Er wird erstellt.', - 'filesystem.fetching': 'Lade Verzeichnisstruktur ab...', - 'filter.all': 'Alle', - 'filter.status.title': 'Nach Status filtern', - 'filter.status.downloading': 'Herunterladen', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Aktiv', - 'filter.status.inactive': 'Inaktiv', - 'filter.status.error': 'Fehler', - 'filter.status.stopped': 'Stoppt', - 'filter.status.checking': 'Prüfe', - 'filter.tracker.title': 'Nach Tracker filtern', - 'filter.tag.title': 'Nach Tag filtern', - 'filter.untagged': 'Ohne Markierung', - 'general.ago': 'vor', - 'general.at': 'am', - 'general.to': 'zu', - 'general.of': 'von', - 'general.clipboard.copy': 'Kopieren', - 'general.clipboard.copied': 'Kopiert', - 'mediainfo.execError': - 'Beim Ausführen von mediainfo auf dem Server ist ein Fehler aufgetreten. Überprüfen Sie, ob mediainfo installiert ist und im PATH to Flood verfügbar ist.', - 'mediainfo.fetching': 'Abrufe...', - 'mediainfo.heading': 'Mediainfo-Ausgabe', - 'notification.torrent.finished.heading': 'Download abgeschlossen', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Fehler gemeldet', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Alles löschen', - 'notification.showing': 'Anzeigen', - 'priority.dont.download': 'Nicht herunterladen', - 'priority.high': 'Hoch', - 'priority.low': 'Niedrig', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Slots-Trenner herunterladen', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Slots pro Torrent herunterladen', - 'settings.bandwidth.slots.heading': 'Slot-Verfügbarkeit', - 'settings.bandwidth.slots.upload.divider.label': 'Slots-Trenner hochladen', - 'settings.bandwidth.slots.upload.global.label': 'Hochladen Slots global', - 'settings.bandwidth.slots.upload.label': 'Slots pro Torrent hochladen', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown-Voreinstellungen: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown-Voreinstellungen: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Globale Download-Rate drosseln', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Globale Upload-Rate Drosselung', - 'settings.bandwidth.transferrate.heading': 'Transferrate Drosseln', - 'settings.connectivity.dht.label': 'DHT aktivieren', - 'settings.connectivity.dht.port.label': 'DHT-Port', - 'settings.connectivity.dpd.heading': 'Dezentralisierte Peer Discovery', - 'settings.connectivity.incoming.heading': 'Eingehende Verbindungen', - 'settings.connectivity.ip.hostname.label': 'Gemeldeter IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximale HTTP-Verbindungen', - 'settings.connectivity.peer.exchange.label': 'Peer-Exchange aktivieren', - 'settings.connectivity.peers.desired.label': 'Gewünschte Partner', - 'settings.connectivity.peers.heading': 'Partner', - 'settings.connectivity.peers.max.label': 'Maximale Peers', - 'settings.connectivity.peers.min.label': 'Minimale Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximales Verteilen der Teilnehmer', - 'settings.connectivity.peers.seeding.min.label': 'Minimale Verteilen der Teilnehmer', - 'settings.connectivity.port.open.label': 'Port öffnen', - 'settings.connectivity.port.randomize.label': 'Port zufällig', - 'settings.connectivity.port.range.label': 'Port-Bereich', - 'settings.resources.disk.check.hash.label': 'Hash nach Abschluss verifizieren', - 'settings.resources.disk.download.location.label': 'Standard-Download-Verzeichnis', - 'settings.resources.disk.heading': 'Platte', - 'settings.resources.max.open.files': 'Maximal geöffnete Dateien', - 'settings.resources.memory.heading': 'Speicher', - 'settings.resources.memory.max.label': 'Maximale Speicherauslastung', - 'settings.tabs.bandwidth': 'Bandbreite', - 'settings.tabs.connectivity': 'Verbindung', - 'settings.tabs.heading': 'Einstellungen', - 'settings.tabs.resources': 'Ressourcen', - 'settings.tabs.authentication': 'Authentifizierung', - 'settings.tabs.userinterface': 'Benutzeroberfläche', - 'settings.tabs.diskusage': 'Plattennutzung', - 'settings.tabs.about': 'Über', - 'settings.ui.locale': 'Lokal', - 'settings.ui.language': 'Sprache', - 'settings.ui.torrent.list': 'Torrent-Listen-Anzeige', - 'settings.ui.torrent.size': 'Torrent-Größe', - 'settings.ui.torrent.size.expanded': 'Erweiterte Ansicht', - 'settings.ui.torrent.size.condensed': 'Verengte Ansicht', - 'settings.ui.torrent.details.enabled': 'Aktiviert', - 'settings.ui.torrent.details.tags.placement': 'In der erweiterten Ansicht funktionieren Tags am Ende der Liste.', - 'settings.ui.displayed.details': 'Torrent-Detailspalten', - 'settings.diskusage.show': 'Zeigen', - 'settings.diskusage.mount.points': 'Festplattenauslastungspunkte', - 'settings.about.flood': 'Über Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Benachrichtigungen', - 'sidebar.button.settings': 'Einstellungen', - 'sidebar.button.speedlimits': 'Geschwindigkeitsbegrenzungen', - 'sidebar.button.log.out': 'Abmelden', - 'sidebar.search.placeholder': 'Suche Torrents', - 'sidebar.transferdata.downloaded': 'Heruntergeladen', - 'sidebar.transferdata.uploaded': 'Hochgeladen', - 'speed.unlimited': 'Unbegrenzt', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MN', - 'unit.size.gigabyte': 'SF', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'h', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Torrent hinzufügen', - 'torrents.add.destination.label': 'Ziel', - 'torrents.add.destination.placeholder': 'Ziel', - 'torrents.add.heading': 'Torrents hinzufügen', - 'torrents.add.start.label': 'Torrent starten', - 'torrents.add.tab.file.browse': 'oder klicken, um zu durchsuchen', - 'torrents.add.tab.file.drop': 'Dateien hier ablegen', - 'torrents.add.tab.file.title': 'Nach Datei', - 'torrents.add.tab.url.input.placeholder': 'Torrent-URL oder Magnetlink', - 'torrents.add.tab.url.title': 'Nach URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Als Basispfad verwenden', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stoppen', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Dateien', - 'torrents.details.files.loading': 'Lade Dateidetail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download Datei} other {Laden Sie Dateien herunter}}`, - 'torrents.details.general.comment': 'Kommentar', - 'torrents.details.general.connected': '{connected} verbunden von {total}', - 'torrents.details.general.date.added': 'Hinzugefügt', - 'torrents.details.general.date.created': 'Erstellungsdatum', - 'torrents.details.general.downloaded': 'Heruntergeladen', - 'torrents.details.general.free.disk.space': 'Freier Speicherplatz', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Allgemein', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Überweisung', - 'torrents.details.general.location': 'Standort', - 'torrents.details.general.none': 'Keine', - 'torrents.details.general.peers': 'Partner', - 'torrents.details.general.scheduler.ignored': 'Ignoriert', - 'torrents.details.general.scheduler.obeyed': 'Obeed', - 'torrents.details.general.scheduler': 'Zeitplaner', - 'torrents.details.general.seeds': 'Samen', - 'torrents.details.general.size': 'Größe', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker-Nachricht', - 'torrents.details.general.type.private': 'Privat', - 'torrents.details.general.type.public': 'Öffentlich', - 'torrents.details.general.type': 'Typ', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Es gibt keine Peer-Daten für diesen Torrent.', - 'torrents.details.peers': 'Partner', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} ausgewählte Datei} other {{countElement} ausgewählte Dateien}}`, - 'torrents.details.selected.files.set.priority': 'Priorität setzen', - 'torrents.details.trackers.no.data': 'Es gibt keine Tracker-Daten für diesen Torrent.', - 'torrents.details.trackers.type': 'Typ', - 'torrents.details.trackers': 'Tracker', - 'torrents.list.clear.filters': 'Filter löschen', - 'torrents.list.context.check.hash': 'Hash prüfen', - 'torrents.list.context.details': 'Torrent-Details', - 'torrents.list.context.move': 'Torrent-Standort festlegen', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priorität', - 'torrents.list.context.remove': 'Entfernen', - 'torrents.list.context.set.tags': 'Tags setzen', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stoppen', - 'torrents.list.no.torrents': 'Keine Torrents zum Anzeigen.', - 'torrents.list.drop': 'Ziehen Sie Dateien hierher, um sie zu rTorrent hinzuzufügen.', - 'torrents.list.cannot.connect': 'Keine Verbindung zu rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'von', - 'torrents.move.button.set.location': 'Ort festlegen', - 'torrents.move.button.state.setting': 'Einstellung...', - 'torrents.move.data.label': 'Daten verschieben', - 'torrents.move.check_hash.label': 'Hash überprüfen', - 'torrents.move.heading': 'Torrent-Standort festlegen', - 'torrents.properties.date.added': 'Hinzugefügt', - 'torrents.properties.base.path': 'Basispfad', - 'torrents.properties.comment': 'Kommentar', - 'torrents.properties.creation.date': 'Erstellungsdatum', - 'torrents.properties.download.speed': 'Download-Geschwindigkeit', - 'torrents.properties.download.total': 'Heruntergeladen', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Freier Speicherplatz', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Terminplaner ignorieren', - 'torrents.properties.is.private': 'Privat', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Prozent abgeschlossen', - 'torrents.properties.ratio': 'Verhältnis', - 'torrents.properties.size': 'Größe der Datei', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker-Nachricht', - 'torrents.properties.upload.speed': 'Upload-Geschwindigkeit', - 'torrents.properties.upload.total': 'Hochgeladen', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Daten löschen', - 'torrents.remove.error.no.torrents.selected': 'Sie haben keine Torrents ausgewählt.', - 'torrents.remove': 'Torrents entfernen', - 'torrents.set.tags.button.set': 'Tags setzen', - 'torrents.set.tags.heading': 'Tags setzen', - 'torrents.set.tags.enter.tags': 'Tags eingeben', - 'torrents.sort.title': 'Sortieren nach', - 'connection-interruption.heading': 'Verbindung zu rTorrent nicht möglich', - 'connection-interruption.verify-settings-prompt': 'Überprüfen wir Ihre Verbindungseinstellungen.', - 'connection-interruption.verification-error': 'Verbindung konnte nicht verifiziert werden.', - 'connection-interruption.verification-success': 'Verbindung erfolgreich', - 'status.diskusage.title': 'Plattennutzung', - 'locale.language.auto': 'Automatisch', -}; diff --git a/client/src/javascript/i18n/translations/de.json b/client/src/javascript/i18n/translations/de.json new file mode 100644 index 000000000..f7bc21082 --- /dev/null +++ b/client/src/javascript/i18n/translations/de.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Torrent starten", + "actionbar.button.stop.torrent": "Torrent stoppen", + "actionbar.button.add.torrent": "Torrent hinzufügen", + "actionbar.button.remove.torrent": "Torrent entfernen", + "alert.torrent.add": "{countElement} {count, plural, =1 {torrent} other {torrents}}hinzugefügt.", + "alert.torrent.add.failed": "Fehler beim Hinzufügen von {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.move": "{countElement} erfolgreich verschoben {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Fehler beim Verschieben von {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.remove": "{countElement} erfolgreich entfernt {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Fehler beim Entfernen von {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.settings.saved": "Einstellungen erfolgreich gespeichert.", + "auth.add.user": "Neuer Benutzer", + "auth.connectionType": "rTorrent Verbindungstyp", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix-Socket", + "auth.create.account": "Konto erstellen", + "auth.create.an.account": "Ein Konto erstellen", + "auth.create.an.account.intro": "Willkommen bei Flood!", + "auth.current.user": "Aktueller Benutzer", + "auth.error.username.empty": "Benutzername darf nicht leer sein.", + "auth.log.in": "Anmelden", + "auth.login": "Anmelden", + "auth.password": "Passwort", + "auth.user.accounts": "Benutzerkonten", + "auth.username": "Benutzername", + "auth.admin": "Admin", + "auth.message.not.admin": "Benutzer ist kein Admin", + "auth.rtorrentHost": "rTorrent-Host", + "auth.rtorrentPort": "rTorrent-Port", + "auth.rtorrentSocket": "rTorrent-Socket", + "auth.rtorrentSocketPath": "rTorrent-Socket-Pfad", + "button.add": "Neu", + "button.cancel": "Abbrechen", + "button.no": "Nein", + "button.save": "Einstellungen speichern", + "button.save.feed": "Speichern", + "button.test": "Testen", + "button.state.adding": "Hinzufügen...", + "button.yes": "Ja", + "button.new": "Neu", + "connectivity.modal.title": "Verbindungsproblem", + "connectivity.modal.content": "Keine Verbindung zu rTorrent. Bitte aktualisieren Sie die Informationen jetzt.", + "feeds.add.automatic.download.rule": "Download-Regel hinzufügen", + "feeds.add.feed": "Neuer Feed", + "feeds.applicable.feed": "Anwendbarer Feed", + "feeds.apply.tags": "Tags anwenden", + "feeds.exclude.pattern": "Muster ausschließen", + "feeds.existing.feeds": "Vorhandene Feeds", + "feeds.existing.rules": "Bestehende Regeln", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# Spiel} other {# Spiele}}", + "feeds.match.pattern": "Match-Muster", + "feeds.match": "Spiel", + "feeds.exclude": "Ausschließen", + "feeds.no.feeds.available": "Keine Feeds verfügbar.", + "feeds.no.feeds.defined": "Keine Feeds definiert.", + "feeds.no.rules.defined": "Keine Regeln definiert.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Feed auswählen", + "feeds.select.interval": "Intervall", + "feeds.start.on.load": "Beim Laden starten", + "feeds.tabs.download.rules": "Download-Regeln", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent-Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Stunden", + "feeds.time.min": "Minuten", + "feeds.time.day": "Tage", + "feeds.torrent.destination": "Torrent-Ziel", + "feeds.url": "URL", + "feeds.search": "Suchbegriff", + "feeds.validation.invalid.regular.expression": "Ungültiger regulärer Ausdruck.", + "feeds.validation.must.select.feed": "Sie müssen einen Feed auswählen.", + "feeds.validation.must.specify.destination": "Sie müssen ein Ziel angeben.", + "feeds.validation.must.specify.label": "Sie müssen ein Label angeben.", + "feeds.validation.must.specify.valid.feed.url": "Sie müssen eine gültige Feed-URL angeben.", + "feeds.browse.feeds": "Feeds durchsuchen", + "filesystem.empty.directory": "Leeres Verzeichnis.", + "filesystem.error.eacces": "Flood hat keine Berechtigung, dieses Verzeichnis zu lesen.", + "filesystem.error.enoent": "Dieser Pfad existiert nicht. Er wird erstellt.", + "filesystem.fetching": "Lade Verzeichnisstruktur ab...", + "filter.all": "Alle", + "filter.status.title": "Nach Status filtern", + "filter.status.downloading": "Herunterladen", + "filter.status.completed": "Complete", + "filter.status.active": "Aktiv", + "filter.status.inactive": "Inaktiv", + "filter.status.error": "Fehler", + "filter.status.stopped": "Stoppt", + "filter.status.checking": "Prüfe", + "filter.tracker.title": "Nach Tracker filtern", + "filter.tag.title": "Nach Tag filtern", + "filter.untagged": "Ohne Markierung", + "general.ago": "vor", + "general.at": "am", + "general.to": "zu", + "general.of": "von", + "general.clipboard.copy": "Kopieren", + "general.clipboard.copied": "Kopiert", + "mediainfo.execError": "Beim Ausführen von mediainfo auf dem Server ist ein Fehler aufgetreten. Überprüfen Sie, ob mediainfo installiert ist und im PATH to Flood verfügbar ist.", + "mediainfo.fetching": "Abrufe...", + "mediainfo.heading": "Mediainfo-Ausgabe", + "notification.torrent.finished.heading": "Download abgeschlossen", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Fehler gemeldet", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Alles löschen", + "notification.showing": "Anzeigen", + "priority.dont.download": "Nicht herunterladen", + "priority.high": "Hoch", + "priority.low": "Niedrig", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Slots-Trenner herunterladen", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Slots pro Torrent herunterladen", + "settings.bandwidth.slots.heading": "Slot-Verfügbarkeit", + "settings.bandwidth.slots.upload.divider.label": "Slots-Trenner hochladen", + "settings.bandwidth.slots.upload.global.label": "Hochladen Slots global", + "settings.bandwidth.slots.upload.label": "Slots pro Torrent hochladen", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown-Voreinstellungen: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown-Voreinstellungen: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Globale Download-Rate drosseln", + "settings.bandwidth.transferrate.global.throttle.upload": "Globale Upload-Rate Drosselung", + "settings.bandwidth.transferrate.heading": "Transferrate Drosseln", + "settings.connectivity.dht.label": "DHT aktivieren", + "settings.connectivity.dht.port.label": "DHT-Port", + "settings.connectivity.dpd.heading": "Dezentralisierte Peer Discovery", + "settings.connectivity.incoming.heading": "Eingehende Verbindungen", + "settings.connectivity.ip.hostname.label": "Gemeldeter IP/Hostname", + "settings.connectivity.max.http.connections": "Maximale HTTP-Verbindungen", + "settings.connectivity.peer.exchange.label": "Peer-Exchange aktivieren", + "settings.connectivity.peers.desired.label": "Gewünschte Partner", + "settings.connectivity.peers.heading": "Partner", + "settings.connectivity.peers.max.label": "Maximale Peers", + "settings.connectivity.peers.min.label": "Minimale Peers", + "settings.connectivity.peers.seeding.max.label": "Maximales Verteilen der Teilnehmer", + "settings.connectivity.peers.seeding.min.label": "Minimale Verteilen der Teilnehmer", + "settings.connectivity.port.open.label": "Port öffnen", + "settings.connectivity.port.randomize.label": "Port zufällig", + "settings.connectivity.port.range.label": "Port-Bereich", + "settings.resources.disk.check.hash.label": "Hash nach Abschluss verifizieren", + "settings.resources.disk.download.location.label": "Standard-Download-Verzeichnis", + "settings.resources.disk.heading": "Platte", + "settings.resources.max.open.files": "Maximal geöffnete Dateien", + "settings.resources.memory.heading": "Speicher", + "settings.resources.memory.max.label": "Maximale Speicherauslastung", + "settings.tabs.bandwidth": "Bandbreite", + "settings.tabs.connectivity": "Verbindung", + "settings.tabs.heading": "Einstellungen", + "settings.tabs.resources": "Ressourcen", + "settings.tabs.authentication": "Authentifizierung", + "settings.tabs.userinterface": "Benutzeroberfläche", + "settings.tabs.diskusage": "Plattennutzung", + "settings.tabs.about": "Über", + "settings.ui.locale": "Lokal", + "settings.ui.language": "Sprache", + "settings.ui.torrent.list": "Torrent-Listen-Anzeige", + "settings.ui.torrent.size": "Torrent-Größe", + "settings.ui.torrent.size.expanded": "Erweiterte Ansicht", + "settings.ui.torrent.size.condensed": "Verengte Ansicht", + "settings.ui.torrent.details.enabled": "Aktiviert", + "settings.ui.torrent.details.tags.placement": "In der erweiterten Ansicht funktionieren Tags am Ende der Liste.", + "settings.ui.displayed.details": "Torrent-Detailspalten", + "settings.diskusage.show": "Zeigen", + "settings.diskusage.mount.points": "Festplattenauslastungspunkte", + "settings.about.flood": "Über Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Benachrichtigungen", + "sidebar.button.settings": "Einstellungen", + "sidebar.button.speedlimits": "Geschwindigkeitsbegrenzungen", + "sidebar.button.log.out": "Abmelden", + "sidebar.search.placeholder": "Suche Torrents", + "sidebar.transferdata.downloaded": "Heruntergeladen", + "sidebar.transferdata.uploaded": "Hochgeladen", + "speed.unlimited": "Unbegrenzt", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MN", + "unit.size.gigabyte": "SF", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "h", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Torrent hinzufügen", + "torrents.add.destination.label": "Ziel", + "torrents.add.destination.placeholder": "Ziel", + "torrents.add.heading": "Torrents hinzufügen", + "torrents.add.start.label": "Torrent starten", + "torrents.add.tab.file.browse": "oder klicken, um zu durchsuchen", + "torrents.add.tab.file.drop": "Dateien hier ablegen", + "torrents.add.tab.file.title": "Nach Datei", + "torrents.add.tab.url.input.placeholder": "Torrent-URL oder Magnetlink", + "torrents.add.tab.url.title": "Nach URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Als Basispfad verwenden", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stoppen", + "torrents.details.details": "Details", + "torrents.details.files": "Dateien", + "torrents.details.files.loading": "Lade Dateidetail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download Datei} other {Laden Sie Dateien herunter}}", + "torrents.details.general.comment": "Kommentar", + "torrents.details.general.connected": "{connected} verbunden von {total}", + "torrents.details.general.date.added": "Hinzugefügt", + "torrents.details.general.date.created": "Erstellungsdatum", + "torrents.details.general.downloaded": "Heruntergeladen", + "torrents.details.general.free.disk.space": "Freier Speicherplatz", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Allgemein", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Überweisung", + "torrents.details.general.location": "Standort", + "torrents.details.general.none": "Keine", + "torrents.details.general.peers": "Partner", + "torrents.details.general.scheduler.ignored": "Ignoriert", + "torrents.details.general.scheduler.obeyed": "Obeed", + "torrents.details.general.scheduler": "Zeitplaner", + "torrents.details.general.seeds": "Samen", + "torrents.details.general.size": "Größe", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker-Nachricht", + "torrents.details.general.type.private": "Privat", + "torrents.details.general.type.public": "Öffentlich", + "torrents.details.general.type": "Typ", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Es gibt keine Peer-Daten für diesen Torrent.", + "torrents.details.peers": "Partner", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} ausgewählte Datei} other {{countElement} ausgewählte Dateien}}", + "torrents.details.selected.files.set.priority": "Priorität setzen", + "torrents.details.trackers.no.data": "Es gibt keine Tracker-Daten für diesen Torrent.", + "torrents.details.trackers.type": "Typ", + "torrents.details.trackers": "Tracker", + "torrents.list.clear.filters": "Filter löschen", + "torrents.list.context.check.hash": "Hash prüfen", + "torrents.list.context.details": "Torrent-Details", + "torrents.list.context.move": "Torrent-Standort festlegen", + "torrents.list.context.pause": "Pause", + "torrents.list.context.priority": "Priorität", + "torrents.list.context.remove": "Entfernen", + "torrents.list.context.set.tags": "Tags setzen", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stoppen", + "torrents.list.no.torrents": "Keine Torrents zum Anzeigen.", + "torrents.list.drop": "Ziehen Sie Dateien hierher, um sie zu rTorrent hinzuzufügen.", + "torrents.list.cannot.connect": "Keine Verbindung zu rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "von", + "torrents.move.button.set.location": "Ort festlegen", + "torrents.move.button.state.setting": "Einstellung...", + "torrents.move.data.label": "Daten verschieben", + "torrents.move.check_hash.label": "Hash überprüfen", + "torrents.move.heading": "Torrent-Standort festlegen", + "torrents.properties.date.added": "Hinzugefügt", + "torrents.properties.base.path": "Basispfad", + "torrents.properties.comment": "Kommentar", + "torrents.properties.creation.date": "Erstellungsdatum", + "torrents.properties.download.speed": "Download-Geschwindigkeit", + "torrents.properties.download.total": "Heruntergeladen", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Freier Speicherplatz", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Terminplaner ignorieren", + "torrents.properties.is.private": "Privat", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Prozent abgeschlossen", + "torrents.properties.ratio": "Verhältnis", + "torrents.properties.size": "Größe der Datei", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker-Nachricht", + "torrents.properties.upload.speed": "Upload-Geschwindigkeit", + "torrents.properties.upload.total": "Hochgeladen", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Daten löschen", + "torrents.remove.error.no.torrents.selected": "Sie haben keine Torrents ausgewählt.", + "torrents.remove": "Torrents entfernen", + "torrents.set.tags.button.set": "Tags setzen", + "torrents.set.tags.heading": "Tags setzen", + "torrents.set.tags.enter.tags": "Tags eingeben", + "torrents.sort.title": "Sortieren nach", + "connection-interruption.heading": "Verbindung zu rTorrent nicht möglich", + "connection-interruption.verify-settings-prompt": "Überprüfen wir Ihre Verbindungseinstellungen.", + "connection-interruption.verification-error": "Verbindung konnte nicht verifiziert werden.", + "connection-interruption.verification-success": "Verbindung erfolgreich", + "status.diskusage.title": "Plattennutzung", + "locale.language.auto": "Automatisch" +} diff --git a/client/src/javascript/i18n/translations/el.js b/client/src/javascript/i18n/translations/el.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/el.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/es.js b/client/src/javascript/i18n/translations/es.js deleted file mode 100644 index 0e61749f6..000000000 --- a/client/src/javascript/i18n/translations/es.js +++ /dev/null @@ -1,297 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Iniciar Torrent', - 'actionbar.button.stop.torrent': 'Detener Torrent', - 'actionbar.button.add.torrent': 'Añadir Torrent', - 'actionbar.button.remove.torrent': 'Eliminar Torrent', - 'alert.torrent.add': `{countElement} {count, plural, =1 {torrent agregado} other {torrents agregados}}.`, - 'alert.torrent.add.failed': `{countElement} {count, plural, =1 {torrent fallo al agregar} other {torrents fallaron al agregarse}}.`, - 'alert.torrent.move': `{countElement} {count, plural, =1 {torrent se ha movido} other {torrents se han movido}}.`, - 'alert.torrent.move.failed': `{countElement} {count, plural, =1 {torrent fallo al moverse} other {torrents fallaron al moverse}}.`, - 'alert.torrent.remove': `{countElement} {count, plural, =1 {torrent se ha eliminado} other {torrents se han eliminado}}.`, - 'alert.torrent.remove.failed': `{countElement} {count, plural, =1 {torrent fallo al eliminarse} other {torrents fallaron al eliminarse}}.`, - 'alert.settings.saved': 'Configuración Guardada.', - 'auth.add.user': 'Agregar usuario', - 'auth.connectionType': 'tipo de conexión rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Socket Unix', - 'auth.create.account': 'Crear Cuenta', - 'auth.create.an.account': 'Crear una Cuenta', - 'auth.create.an.account.intro': '¡Bienvenido a Flood!', - 'auth.current.user': 'Usuario actual', - 'auth.error.username.empty': 'Nombre de usuario no puede estar en blanco.', - 'auth.log.in': 'Iniciar Sesión', - 'auth.login': 'Acceder', - 'auth.password': 'Contraseña', - 'auth.user.accounts': 'Cuentas de Usuario', - 'auth.username': 'Nombre de Usuario', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'El Usuario no es Administrador', - 'auth.rtorrentHost': 'anfitrión torrent', - 'auth.rtorrentPort': 'puerto de torrent', - 'auth.rtorrentSocket': 'enchufe rTorrent', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Agregar', - 'button.cancel': 'Cancelar', - 'button.no': 'Nu', - 'button.save': 'Guardar Configuración', - 'button.save.feed': 'Guardar', - 'button.test': 'Prueba', - 'button.state.adding': 'Agregando...', - 'button.yes': 'Sí', - 'button.new': 'Nuevo', - 'connectivity.modal.title': 'Problema de conectividad', - 'connectivity.modal.content': 'No se puede conectar a rTorrent. Por favor, actualice la información ahora.', - 'feeds.add.automatic.download.rule': 'Agregar Regla de Descarga', - 'feeds.add.feed': 'Agregar Fuente', - 'feeds.applicable.feed': 'Fuente Correspondiente', - 'feeds.apply.tags': 'Aplicar Etiquetas', - 'feeds.exclude.pattern': 'Patrón de Exclusión', - 'feeds.existing.feeds': 'Fuentes Existentes', - 'feeds.existing.rules': 'Reglas Existentes', - 'feeds.label': 'Rótulo', - 'feeds.match.count': '{count, plural, =1 {# Encontrado} other {# Encontrados}}', - 'feeds.match.pattern': 'Patrón de Inclusión', - 'feeds.match': 'Encontrado', - 'feeds.exclude': 'Excluir', - 'feeds.no.feeds.available': 'No hay fuentes disponibles', - 'feeds.no.feeds.defined': 'No hay fuentes definidas', - 'feeds.no.rules.defined': 'No hay reglas definidas', - 'feeds.regEx': 'Regular', - 'feeds.select.feed': 'Seleccionar Fuente', - 'feeds.select.interval': 'Intervalo', - 'feeds.start.on.load': 'Iniciar al Cargar', - 'feeds.tabs.download.rules': 'Reglas de Descarga', - 'feeds.tabs.feeds': 'Fuentes', - 'feeds.tabs.heading': 'Fuentes de Torrent', - 'feeds.tags': 'Etiquetas', - 'feeds.time.hr': '{durationValue} hr', - 'feeds.time.min': '{durationValue} min', - 'feeds.time.day': 'Días', - 'feeds.torrent.destination': 'Destinación de Torrent', - 'feeds.url': 'URL', - 'feeds.search': 'Buscar término', - 'feeds.validation.invalid.regular.expression': 'RegEx invalida.', - 'feeds.validation.must.select.feed': 'Debe seleccionar una fuente', - 'feeds.validation.must.specify.destination': 'Debe seleccionar una destinación.', - 'feeds.validation.must.specify.label': 'Debe seleccionar un rotulo', - 'feeds.validation.must.specify.valid.feed.url': 'Debe seleccionar un URL de fuente valido.', - 'feeds.browse.feeds': 'Ver feeds', - 'filesystem.empty.directory': 'Carpeta vacía', - 'filesystem.error.eacces': 'Flood no tiene permisos para leer esta carpeta.', - 'filesystem.error.enoent': 'Esta ruta no existe. Se creara.', - 'filesystem.fetching': 'Cargando estructura de carpeta...', - 'filter.all': 'Todo', - 'filter.status.title': 'Filtrar por Estado', - 'filter.status.downloading': 'Descargando', - 'filter.status.completed': 'Completo', - 'filter.status.active': 'Activo', - 'filter.status.inactive': 'Inactivo', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Detenido', - 'filter.status.checking': 'Comprobando', - 'filter.tracker.title': 'Filtrar por Tracker', - 'filter.tag.title': 'Filtrar por Etiqueta', - 'filter.untagged': 'Sin Etiqueta', - 'general.ago': 'hace', - 'general.at': 'en', - 'general.to': 'hasta', - 'general.of': 'de', - 'general.clipboard.copy': 'Copiar', - 'general.clipboard.copied': 'Copiado', - 'mediainfo.execError': - 'Se ha encontrado un error al correr Mediainfo. Confirme que Mediainfo este instalado y disponible a Flood en el PATH', - 'mediainfo.fetching': 'Obteniendo...', - 'mediainfo.heading': 'Salida de Mediainfo', - 'notification.torrent.finished.heading': 'Descarga Completada', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reportado', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Borrar Todos', - 'notification.showing': 'Mostrando', - 'priority.dont.download': 'No Descargar', - 'priority.high': 'Alta', - 'priority.low': 'Baja', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Divisor de Espacios de Descarga', - 'settings.bandwidth.slots.download.global.label': 'Cant. Global de Espacios de Descargas', - 'settings.bandwidth.slots.download.label': 'Cant. por Torrent de Espacios de Descarga', - 'settings.bandwidth.slots.heading': 'Disponibilidad de Espacios', - 'settings.bandwidth.slots.upload.divider.label': 'Divisor de Espacios de Subida', - 'settings.bandwidth.slots.upload.global.label': 'Cant. Global de Espacios de Subida', - 'settings.bandwidth.slots.upload.label': 'Cant. por Torrent de Espacios de Descarga', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Predeterminados de Desplegable: Descarga', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Predeterminados de Desplegable: Subida', - 'settings.bandwidth.transferrate.global.throttle.download': 'Regulador Global de Velocidad de Descarga', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Regulador Global de Velocidad de Subida', - 'settings.bandwidth.transferrate.heading': 'Reguladores de Velocidad', - 'settings.connectivity.dht.label': 'Habilitar DHT', - 'settings.connectivity.dht.port.label': 'Puerto para DHT', - 'settings.connectivity.dpd.heading': 'Descubrimiento de Peers Descentralizado', - 'settings.connectivity.incoming.heading': 'Conexiones Entrantes', - 'settings.connectivity.ip.hostname.label': 'IP/Hostname Presentado', - 'settings.connectivity.max.http.connections': 'Máxima Cant. de Conexiones HTTP', - 'settings.connectivity.peer.exchange.label': 'Habilitar Intercambio de Peers', - 'settings.connectivity.peers.desired.label': 'Cant. de Peers Deseada', - 'settings.connectivity.peers.heading': 'Pares', - 'settings.connectivity.peers.max.label': 'Cant. Máxima de Peers', - 'settings.connectivity.peers.min.label': 'Cant. Mínima de Peers', - 'settings.connectivity.peers.seeding.max.label': 'Cant. Máxima de Peers en Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Cant. Mínima de Peers en Seeding', - 'settings.connectivity.port.open.label': 'Puerto Abierto', - 'settings.connectivity.port.randomize.label': 'Puerto Aleatorio', - 'settings.connectivity.port.range.label': 'Rango de Puertos', - 'settings.resources.disk.check.hash.label': 'Verificar Hash al Terminar', - 'settings.resources.disk.download.location.label': 'Carpeta de Descargas Predeterminada', - 'settings.resources.disk.heading': 'Disco', - 'settings.resources.max.open.files': 'Cant. Máxima de Archivos Abiertos', - 'settings.resources.memory.heading': 'Memoria', - 'settings.resources.memory.max.label': 'Utilización Máxima de Memoria', - 'settings.tabs.bandwidth': 'Ancho de Banda', - 'settings.tabs.connectivity': 'Conectividad', - 'settings.tabs.heading': 'Configuración', - 'settings.tabs.resources': 'Recursos', - 'settings.tabs.authentication': 'Autenticación', - 'settings.tabs.userinterface': 'Interfaz de Usuario', - 'settings.tabs.diskusage': 'Uso del disco', - 'settings.tabs.about': 'Acerca de', - 'settings.ui.locale': 'Región', - 'settings.ui.language': 'Idioma', - 'settings.ui.torrent.list': 'Exhibición de Torrents', - 'settings.ui.torrent.size': 'Tamaño de Torrent', - 'settings.ui.torrent.size.expanded': 'Modo Expandido', - 'settings.ui.torrent.size.condensed': 'Modo Condensado', - 'settings.ui.torrent.details.enabled': 'Activado', - 'settings.ui.torrent.details.tags.placement': - 'En el modo expandido, las etiquetas se ven mejor al final de la lista.', - 'settings.ui.displayed.details': 'Columnas de detalles de torrent', - 'settings.diskusage.show': 'Mostrar', - 'settings.diskusage.mount.points': 'Puntos de Montura de Uso de Disco', - 'settings.about.flood': 'Acerca de Flood', - 'sidebar.button.feeds': 'Fuentes', - 'sidebar.button.notifications': 'Notificaciones', - 'sidebar.button.settings': 'Ajustes', - 'sidebar.button.speedlimits': 'Limites de Velocidad', - 'sidebar.button.log.out': 'Cerrar sesión', - 'sidebar.search.placeholder': 'Buscar torrents', - 'sidebar.transferdata.downloaded': 'Descargado', - 'sidebar.transferdata.uploaded': 'Subido', - 'speed.unlimited': 'Sín Límite', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'Mb', - 'unit.size.gigabyte': 'GR', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'h', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Agregar Torrent', - 'torrents.add.destination.label': 'Destinación', - 'torrents.add.destination.placeholder': 'Destinación', - 'torrents.add.heading': 'Agregar Torrents', - 'torrents.add.start.label': 'Iniciar Descarga', - 'torrents.add.tab.file.browse': 'o haga clic para navegar', - 'torrents.add.tab.file.drop': 'Arrastrar archivos hacia aquí,', - 'torrents.add.tab.file.title': 'Con Archivo', - 'torrents.add.tab.url.input.placeholder': 'URL de Torrent o Magnet Link', - 'torrents.add.tab.url.title': 'Con URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Etiquetas', - 'torrents.destination.base_path': 'Usar como Base Path', - 'torrents.details.actions.pause': 'Pausar', - 'torrents.details.actions.start': 'Comenzar', - 'torrents.details.actions.stop': 'Parar', - 'torrents.details.details': 'Detalles', - 'torrents.details.files': 'Archivos', - 'torrents.details.files.loading': 'Cargando detalles del archivo...', - 'torrents.details.files.download.file': `{count, plural, =1 {Archivo} other {Archivos}}`, - 'torrents.details.general.comment': 'Comentario', - 'torrents.details.general.connected': '{connected} conectados de {total}', - 'torrents.details.general.date.added': 'Agregado en', - 'torrents.details.general.date.created': 'Creado en', - 'torrents.details.general.downloaded': 'Descargado', - 'torrents.details.general.free.disk.space': 'Espacio de Disco Libre', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrente', - 'torrents.details.general.heading.tracker': 'Rastreador', - 'torrents.details.general.heading.transfer': 'Transferencia', - 'torrents.details.general.location': 'Carpeta', - 'torrents.details.general.none': 'Ninguno', - 'torrents.details.general.peers': 'Pares', - 'torrents.details.general.scheduler.ignored': 'Ignorado', - 'torrents.details.general.scheduler.obeyed': 'Seguido', - 'torrents.details.general.scheduler': 'Programador', - 'torrents.details.general.seeds': 'Semillas', - 'torrents.details.general.size': 'Tamaño', - 'torrents.details.general.tags': 'Etiquetas', - 'torrents.details.general.tracker.message': 'Mensaje de Tracker', - 'torrents.details.general.type.private': 'Privado', - 'torrents.details.general.type.public': 'Publico', - 'torrents.details.general.type': 'Tipo', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'No existen Peers para este torrent.', - 'torrents.details.peers': 'Pares', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} archivo seleccionado} other {{countElement} archivos seleccionados}}`, - 'torrents.details.selected.files.set.priority': 'Ajustar Prioridad', - 'torrents.details.trackers.no.data': 'No existe información de tracker para este torrent.', - 'torrents.details.trackers.type': 'Tipo', - 'torrents.details.trackers': 'Rastreadores', - 'torrents.list.clear.filters': 'Borrar Filtros', - 'torrents.list.context.check.hash': 'Verificar Hash', - 'torrents.list.context.details': 'Detalles de Torrent', - 'torrents.list.context.move': 'Configurar Carpeta de Descarga', - 'torrents.list.context.pause': 'Pausar', - 'torrents.list.context.priority': 'Prioridad', - 'torrents.list.context.remove': 'Eliminar', - 'torrents.list.context.set.tags': 'Configurar Etiquetas', - 'torrents.list.context.start': 'Comenzar', - 'torrents.list.context.stop': 'Parar', - 'torrents.list.no.torrents': 'No hay torrents', - 'torrents.list.drop': 'Arrastra los archivos aquí para añadirlos a rTorrent.', - 'torrents.list.cannot.connect': 'No se puede conectar a rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'de', - 'torrents.move.button.set.location': 'Configurar', - 'torrents.move.button.state.setting': 'Guardando...', - 'torrents.move.data.label': 'Mover archivos', - 'torrents.move.check_hash.label': 'Comprobar hash', - 'torrents.move.heading': 'Configurar Carpeta de Descarga', - 'torrents.properties.date.added': 'Agregado en', - 'torrents.properties.base.path': 'Carpeta Base', - 'torrents.properties.comment': 'Comentario', - 'torrents.properties.creation.date': 'Creado en', - 'torrents.properties.download.speed': 'Velocidad de Descarga', - 'torrents.properties.download.total': 'Cant. Descargada', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Espcio de Disco Libre', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignorar Programador', - 'torrents.properties.is.private': 'Privado', - 'torrents.properties.name': 'Nombre', - 'torrents.properties.percentage': 'Porcentaje Descargado', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'Tamaño de Archivo', - 'torrents.properties.tags': 'Etiquetas', - 'torrents.properties.tracker.message': 'Mensaje de Tracker', - 'torrents.properties.upload.speed': 'Velocidad de Subida', - 'torrents.properties.upload.total': 'Cant. Subida', - 'torrents.remove.are.you.sure': `¿Seguro que quiere eliminar {count, plural, =0 {cero torrents} =1 {un torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Eliminar datos', - 'torrents.remove.error.no.torrents.selected': 'No ha seleccionado un torrent.', - 'torrents.remove': 'Eliminar Torrents', - 'torrents.set.tags.button.set': 'Configurar', - 'torrents.set.tags.heading': 'Configurar Etiquetas', - 'torrents.set.tags.enter.tags': 'Introducir etiquetas', - 'torrents.sort.title': 'Ordenar Por', - 'connection-interruption.heading': 'No se puede conectar con rTorrent', - 'connection-interruption.verify-settings-prompt': 'Verifiquemos tu configuración de conexión.', - 'connection-interruption.verification-error': 'No se pudo verificar la conexión.', - 'connection-interruption.verification-success': 'Conexión exitosa', - 'status.diskusage.title': 'Uso del disco', - 'locale.language.auto': 'Automátic', -}; diff --git a/client/src/javascript/i18n/translations/es.json b/client/src/javascript/i18n/translations/es.json new file mode 100644 index 000000000..08212625d --- /dev/null +++ b/client/src/javascript/i18n/translations/es.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Iniciar Torrent", + "actionbar.button.stop.torrent": "Detener Torrent", + "actionbar.button.add.torrent": "Añadir Torrent", + "actionbar.button.remove.torrent": "Eliminar Torrent", + "alert.torrent.add": "{countElement} {count, plural, =1 {torrent agregado} other {torrents agregados}}.", + "alert.torrent.add.failed": "{countElement} {count, plural, =1 {torrent fallo al agregar} other {torrents fallaron al agregarse}}.", + "alert.torrent.move": "{countElement} {count, plural, =1 {torrent se ha movido} other {torrents se han movido}}.", + "alert.torrent.move.failed": "{countElement} {count, plural, =1 {torrent fallo al moverse} other {torrents fallaron al moverse}}.", + "alert.torrent.remove": "{countElement} {count, plural, =1 {torrent se ha eliminado} other {torrents se han eliminado}}.", + "alert.torrent.remove.failed": "{countElement} {count, plural, =1 {torrent fallo al eliminarse} other {torrents fallaron al eliminarse}}.", + "alert.settings.saved": "Configuración Guardada.", + "auth.add.user": "Agregar usuario", + "auth.connectionType": "tipo de conexión rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Socket Unix", + "auth.create.account": "Crear Cuenta", + "auth.create.an.account": "Crear una Cuenta", + "auth.create.an.account.intro": "¡Bienvenido a Flood!", + "auth.current.user": "Usuario actual", + "auth.error.username.empty": "Nombre de usuario no puede estar en blanco.", + "auth.log.in": "Iniciar Sesión", + "auth.login": "Acceder", + "auth.password": "Contraseña", + "auth.user.accounts": "Cuentas de Usuario", + "auth.username": "Nombre de Usuario", + "auth.admin": "Admin", + "auth.message.not.admin": "El Usuario no es Administrador", + "auth.rtorrentHost": "anfitrión torrent", + "auth.rtorrentPort": "puerto de torrent", + "auth.rtorrentSocket": "enchufe rTorrent", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Agregar", + "button.cancel": "Cancelar", + "button.no": "Nu", + "button.save": "Guardar Configuración", + "button.save.feed": "Guardar", + "button.test": "Prueba", + "button.state.adding": "Agregando...", + "button.yes": "Sí", + "button.new": "Nuevo", + "connectivity.modal.title": "Problema de conectividad", + "connectivity.modal.content": "No se puede conectar a rTorrent. Por favor, actualice la información ahora.", + "feeds.add.automatic.download.rule": "Agregar Regla de Descarga", + "feeds.add.feed": "Agregar Fuente", + "feeds.applicable.feed": "Fuente Correspondiente", + "feeds.apply.tags": "Aplicar Etiquetas", + "feeds.exclude.pattern": "Patrón de Exclusión", + "feeds.existing.feeds": "Fuentes Existentes", + "feeds.existing.rules": "Reglas Existentes", + "feeds.label": "Rótulo", + "feeds.match.count": "{count, plural, =1 {# Encontrado} other {# Encontrados}}", + "feeds.match.pattern": "Patrón de Inclusión", + "feeds.match": "Encontrado", + "feeds.exclude": "Excluir", + "feeds.no.feeds.available": "No hay fuentes disponibles", + "feeds.no.feeds.defined": "No hay fuentes definidas", + "feeds.no.rules.defined": "No hay reglas definidas", + "feeds.regEx": "Regular", + "feeds.select.feed": "Seleccionar Fuente", + "feeds.select.interval": "Intervalo", + "feeds.start.on.load": "Iniciar al Cargar", + "feeds.tabs.download.rules": "Reglas de Descarga", + "feeds.tabs.feeds": "Fuentes", + "feeds.tabs.heading": "Fuentes de Torrent", + "feeds.tags": "Etiquetas", + "feeds.time.hr": "{durationValue} hr", + "feeds.time.min": "{durationValue} min", + "feeds.time.day": "Días", + "feeds.torrent.destination": "Destinación de Torrent", + "feeds.url": "URL", + "feeds.search": "Buscar término", + "feeds.validation.invalid.regular.expression": "RegEx invalida.", + "feeds.validation.must.select.feed": "Debe seleccionar una fuente", + "feeds.validation.must.specify.destination": "Debe seleccionar una destinación.", + "feeds.validation.must.specify.label": "Debe seleccionar un rotulo", + "feeds.validation.must.specify.valid.feed.url": "Debe seleccionar un URL de fuente valido.", + "feeds.browse.feeds": "Ver feeds", + "filesystem.empty.directory": "Carpeta vacía", + "filesystem.error.eacces": "Flood no tiene permisos para leer esta carpeta.", + "filesystem.error.enoent": "Esta ruta no existe. Se creara.", + "filesystem.fetching": "Cargando estructura de carpeta...", + "filter.all": "Todo", + "filter.status.title": "Filtrar por Estado", + "filter.status.downloading": "Descargando", + "filter.status.completed": "Completo", + "filter.status.active": "Activo", + "filter.status.inactive": "Inactivo", + "filter.status.error": "Error", + "filter.status.stopped": "Detenido", + "filter.status.checking": "Comprobando", + "filter.tracker.title": "Filtrar por Tracker", + "filter.tag.title": "Filtrar por Etiqueta", + "filter.untagged": "Sin Etiqueta", + "general.ago": "hace", + "general.at": "en", + "general.to": "hasta", + "general.of": "de", + "general.clipboard.copy": "Copiar", + "general.clipboard.copied": "Copiado", + "mediainfo.execError": "Se ha encontrado un error al correr Mediainfo. Confirme que Mediainfo este instalado y disponible a Flood en el PATH", + "mediainfo.fetching": "Obteniendo...", + "mediainfo.heading": "Salida de Mediainfo", + "notification.torrent.finished.heading": "Descarga Completada", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reportado", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Borrar Todos", + "notification.showing": "Mostrando", + "priority.dont.download": "No Descargar", + "priority.high": "Alta", + "priority.low": "Baja", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Divisor de Espacios de Descarga", + "settings.bandwidth.slots.download.global.label": "Cant. Global de Espacios de Descargas", + "settings.bandwidth.slots.download.label": "Cant. por Torrent de Espacios de Descarga", + "settings.bandwidth.slots.heading": "Disponibilidad de Espacios", + "settings.bandwidth.slots.upload.divider.label": "Divisor de Espacios de Subida", + "settings.bandwidth.slots.upload.global.label": "Cant. Global de Espacios de Subida", + "settings.bandwidth.slots.upload.label": "Cant. por Torrent de Espacios de Descarga", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Predeterminados de Desplegable: Descarga", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Predeterminados de Desplegable: Subida", + "settings.bandwidth.transferrate.global.throttle.download": "Regulador Global de Velocidad de Descarga", + "settings.bandwidth.transferrate.global.throttle.upload": "Regulador Global de Velocidad de Subida", + "settings.bandwidth.transferrate.heading": "Reguladores de Velocidad", + "settings.connectivity.dht.label": "Habilitar DHT", + "settings.connectivity.dht.port.label": "Puerto para DHT", + "settings.connectivity.dpd.heading": "Descubrimiento de Peers Descentralizado", + "settings.connectivity.incoming.heading": "Conexiones Entrantes", + "settings.connectivity.ip.hostname.label": "IP/Hostname Presentado", + "settings.connectivity.max.http.connections": "Máxima Cant. de Conexiones HTTP", + "settings.connectivity.peer.exchange.label": "Habilitar Intercambio de Peers", + "settings.connectivity.peers.desired.label": "Cant. de Peers Deseada", + "settings.connectivity.peers.heading": "Pares", + "settings.connectivity.peers.max.label": "Cant. Máxima de Peers", + "settings.connectivity.peers.min.label": "Cant. Mínima de Peers", + "settings.connectivity.peers.seeding.max.label": "Cant. Máxima de Peers en Seeding", + "settings.connectivity.peers.seeding.min.label": "Cant. Mínima de Peers en Seeding", + "settings.connectivity.port.open.label": "Puerto Abierto", + "settings.connectivity.port.randomize.label": "Puerto Aleatorio", + "settings.connectivity.port.range.label": "Rango de Puertos", + "settings.resources.disk.check.hash.label": "Verificar Hash al Terminar", + "settings.resources.disk.download.location.label": "Carpeta de Descargas Predeterminada", + "settings.resources.disk.heading": "Disco", + "settings.resources.max.open.files": "Cant. Máxima de Archivos Abiertos", + "settings.resources.memory.heading": "Memoria", + "settings.resources.memory.max.label": "Utilización Máxima de Memoria", + "settings.tabs.bandwidth": "Ancho de Banda", + "settings.tabs.connectivity": "Conectividad", + "settings.tabs.heading": "Configuración", + "settings.tabs.resources": "Recursos", + "settings.tabs.authentication": "Autenticación", + "settings.tabs.userinterface": "Interfaz de Usuario", + "settings.tabs.diskusage": "Uso del disco", + "settings.tabs.about": "Acerca de", + "settings.ui.locale": "Región", + "settings.ui.language": "Idioma", + "settings.ui.torrent.list": "Exhibición de Torrents", + "settings.ui.torrent.size": "Tamaño de Torrent", + "settings.ui.torrent.size.expanded": "Modo Expandido", + "settings.ui.torrent.size.condensed": "Modo Condensado", + "settings.ui.torrent.details.enabled": "Activado", + "settings.ui.torrent.details.tags.placement": "En el modo expandido, las etiquetas se ven mejor al final de la lista.", + "settings.ui.displayed.details": "Columnas de detalles de torrent", + "settings.diskusage.show": "Mostrar", + "settings.diskusage.mount.points": "Puntos de Montura de Uso de Disco", + "settings.about.flood": "Acerca de Flood", + "sidebar.button.feeds": "Fuentes", + "sidebar.button.notifications": "Notificaciones", + "sidebar.button.settings": "Ajustes", + "sidebar.button.speedlimits": "Limites de Velocidad", + "sidebar.button.log.out": "Cerrar sesión", + "sidebar.search.placeholder": "Buscar torrents", + "sidebar.transferdata.downloaded": "Descargado", + "sidebar.transferdata.uploaded": "Subido", + "speed.unlimited": "Sín Límite", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "Mb", + "unit.size.gigabyte": "GR", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "h", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Agregar Torrent", + "torrents.add.destination.label": "Destinación", + "torrents.add.destination.placeholder": "Destinación", + "torrents.add.heading": "Agregar Torrents", + "torrents.add.start.label": "Iniciar Descarga", + "torrents.add.tab.file.browse": "o haga clic para navegar", + "torrents.add.tab.file.drop": "Arrastrar archivos hacia aquí,", + "torrents.add.tab.file.title": "Con Archivo", + "torrents.add.tab.url.input.placeholder": "URL de Torrent o Magnet Link", + "torrents.add.tab.url.title": "Con URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Etiquetas", + "torrents.destination.base_path": "Usar como Base Path", + "torrents.details.actions.pause": "Pausar", + "torrents.details.actions.start": "Comenzar", + "torrents.details.actions.stop": "Parar", + "torrents.details.details": "Detalles", + "torrents.details.files": "Archivos", + "torrents.details.files.loading": "Cargando detalles del archivo...", + "torrents.details.files.download.file": "{count, plural, =1 {Archivo} other {Archivos}}", + "torrents.details.general.comment": "Comentario", + "torrents.details.general.connected": "{connected} conectados de {total}", + "torrents.details.general.date.added": "Agregado en", + "torrents.details.general.date.created": "Creado en", + "torrents.details.general.downloaded": "Descargado", + "torrents.details.general.free.disk.space": "Espacio de Disco Libre", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrente", + "torrents.details.general.heading.tracker": "Rastreador", + "torrents.details.general.heading.transfer": "Transferencia", + "torrents.details.general.location": "Carpeta", + "torrents.details.general.none": "Ninguno", + "torrents.details.general.peers": "Pares", + "torrents.details.general.scheduler.ignored": "Ignorado", + "torrents.details.general.scheduler.obeyed": "Seguido", + "torrents.details.general.scheduler": "Programador", + "torrents.details.general.seeds": "Semillas", + "torrents.details.general.size": "Tamaño", + "torrents.details.general.tags": "Etiquetas", + "torrents.details.general.tracker.message": "Mensaje de Tracker", + "torrents.details.general.type.private": "Privado", + "torrents.details.general.type.public": "Publico", + "torrents.details.general.type": "Tipo", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "No existen Peers para este torrent.", + "torrents.details.peers": "Pares", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} archivo seleccionado} other {{countElement} archivos seleccionados}}", + "torrents.details.selected.files.set.priority": "Ajustar Prioridad", + "torrents.details.trackers.no.data": "No existe información de tracker para este torrent.", + "torrents.details.trackers.type": "Tipo", + "torrents.details.trackers": "Rastreadores", + "torrents.list.clear.filters": "Borrar Filtros", + "torrents.list.context.check.hash": "Verificar Hash", + "torrents.list.context.details": "Detalles de Torrent", + "torrents.list.context.move": "Configurar Carpeta de Descarga", + "torrents.list.context.pause": "Pausar", + "torrents.list.context.priority": "Prioridad", + "torrents.list.context.remove": "Eliminar", + "torrents.list.context.set.tags": "Configurar Etiquetas", + "torrents.list.context.start": "Comenzar", + "torrents.list.context.stop": "Parar", + "torrents.list.no.torrents": "No hay torrents", + "torrents.list.drop": "Arrastra los archivos aquí para añadirlos a rTorrent.", + "torrents.list.cannot.connect": "No se puede conectar a rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "de", + "torrents.move.button.set.location": "Configurar", + "torrents.move.button.state.setting": "Guardando...", + "torrents.move.data.label": "Mover archivos", + "torrents.move.check_hash.label": "Comprobar hash", + "torrents.move.heading": "Configurar Carpeta de Descarga", + "torrents.properties.date.added": "Agregado en", + "torrents.properties.base.path": "Carpeta Base", + "torrents.properties.comment": "Comentario", + "torrents.properties.creation.date": "Creado en", + "torrents.properties.download.speed": "Velocidad de Descarga", + "torrents.properties.download.total": "Cant. Descargada", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Espcio de Disco Libre", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignorar Programador", + "torrents.properties.is.private": "Privado", + "torrents.properties.name": "Nombre", + "torrents.properties.percentage": "Porcentaje Descargado", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "Tamaño de Archivo", + "torrents.properties.tags": "Etiquetas", + "torrents.properties.tracker.message": "Mensaje de Tracker", + "torrents.properties.upload.speed": "Velocidad de Subida", + "torrents.properties.upload.total": "Cant. Subida", + "torrents.remove.are.you.sure": "¿Seguro que quiere eliminar {count, plural, =0 {cero torrents} =1 {un torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Eliminar datos", + "torrents.remove.error.no.torrents.selected": "No ha seleccionado un torrent.", + "torrents.remove": "Eliminar Torrents", + "torrents.set.tags.button.set": "Configurar", + "torrents.set.tags.heading": "Configurar Etiquetas", + "torrents.set.tags.enter.tags": "Introducir etiquetas", + "torrents.sort.title": "Ordenar Por", + "connection-interruption.heading": "No se puede conectar con rTorrent", + "connection-interruption.verify-settings-prompt": "Verifiquemos tu configuración de conexión.", + "connection-interruption.verification-error": "No se pudo verificar la conexión.", + "connection-interruption.verification-success": "Conexión exitosa", + "status.diskusage.title": "Uso del disco", + "locale.language.auto": "Automátic" +} diff --git a/client/src/javascript/i18n/translations/fi.js b/client/src/javascript/i18n/translations/fi.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/fi.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/fr.js b/client/src/javascript/i18n/translations/fr.js deleted file mode 100644 index 5e87eaf49..000000000 --- a/client/src/javascript/i18n/translations/fr.js +++ /dev/null @@ -1,298 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Démarrer le Torrent', - 'actionbar.button.stop.torrent': 'Arrêter le torrent', - 'actionbar.button.add.torrent': 'Ajouter un torrent', - 'actionbar.button.remove.torrent': 'Supprimer le torrent', - 'alert.torrent.add': `L'ajout de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.`, - 'alert.torrent.add.failed': `L'ajout de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.`, - 'alert.torrent.move': `Le déplacement de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.`, - 'alert.torrent.move.failed': `Le déplacement de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.`, - 'alert.torrent.remove': `La suppression de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.`, - 'alert.torrent.remove.failed': `La suppression de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.`, - 'alert.settings.saved': 'Paramètres modifiés.', - 'auth.add.user': 'Ajouter un Utilisateur', - 'auth.connectionType': 'Type de connexion rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Socket Unix', - 'auth.create.account': 'Créer un Compte', - 'auth.create.an.account': 'Créer un Compte', - 'auth.create.an.account.intro': 'Bienvenue dans Flood!', - 'auth.current.user': 'Utilisateur actuel', - 'auth.error.username.empty': "Le nom d'utilisateur ne peut pas être vide.", - 'auth.log.in': 'Connexion', - 'auth.login': 'Identifiant', - 'auth.password': 'Mot de Passe', - 'auth.user.accounts': 'Comptes', - 'auth.username': "Nom d'Utilisateur", - 'auth.admin': 'Administrateur', - 'auth.message.not.admin': "L'Utilisateur n'est pas Administrateur", - 'auth.rtorrentHost': 'Hôte rTorrent', - 'auth.rtorrentPort': 'Port rTorrent', - 'auth.rtorrentSocket': 'Socket rTorrent', - 'auth.rtorrentSocketPath': 'Chemin de la chaussure rTorrent', - 'button.add': 'Ajouter', - 'button.cancel': 'Annuler', - 'button.no': 'Non', - 'button.save': 'Enregistrer', - 'button.save.feed': 'Enregistrer', - 'button.test': 'Tester', - 'button.state.adding': 'Ajout...', - 'button.yes': 'Oui', - 'button.new': 'Nouveau', - 'connectivity.modal.title': 'Problème de connectivité', - 'connectivity.modal.content': - 'Impossible de se connecter à rTorrent. Veuillez mettre à jour les informations maintenant.', - 'feeds.add.automatic.download.rule': 'Ajouter une règle de téléchargement', - 'feeds.add.feed': 'Ajouter un Flux', - 'feeds.applicable.feed': 'Flux Applicable', - 'feeds.apply.tags': 'Appliquer les Tags', - 'feeds.exclude.pattern': 'Exclure le Motif', - 'feeds.existing.feeds': 'Flux Existants', - 'feeds.existing.rules': 'Règles Existantes', - 'feeds.label': 'Étiquette', - 'feeds.match.count': '{count, plural, =1 {# correspond} other {# correspondent}}', - 'feeds.match.pattern': 'Motif Correspondant', - 'feeds.match': 'Correspondance', - 'feeds.exclude': 'Exclure', - 'feeds.no.feeds.available': 'Aucun flux disponible.', - 'feeds.no.feeds.defined': 'Aucun flux défini.', - 'feeds.no.rules.defined': 'Aucune règle définie.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Sélectionner un Flux', - 'feeds.select.interval': 'Intervalle', - 'feeds.start.on.load': 'Démarrer Immédiatement', - 'feeds.tabs.download.rules': 'Règles de Téléchargement', - 'feeds.tabs.feeds': 'Flux', - 'feeds.tabs.heading': 'Flux de Torrent', - 'feeds.tags': 'Tags', - 'feeds.time.hr': '{durationValue} h', - 'feeds.time.min': '{durationValue} min', - 'feeds.time.day': 'Jours', - 'feeds.torrent.destination': 'Destination du Torrent', - 'feeds.url': 'URL', - 'feeds.search': 'Terme de recherche', - 'feeds.validation.invalid.regular.expression': 'Expression régulière invalide.', - 'feeds.validation.must.select.feed': 'Vous devez choisir un flux.', - 'feeds.validation.must.specify.destination': 'Vous devez définir un emplacement.', - 'feeds.validation.must.specify.label': 'Vous devez définir un label.', - 'feeds.validation.must.specify.valid.feed.url': 'Vous devez définir une URL de flux valide.', - 'feeds.browse.feeds': 'Parcourir les flux', - 'filesystem.empty.directory': 'Répertoire vide.', - 'filesystem.error.eacces': "Flood n'a pas la permission de lire ce répertoire.", - 'filesystem.error.enoent': "Ce chemin n'existe pas. Il sera créé.", - 'filesystem.fetching': 'Récupération de la structure du répertoire...', - 'filter.all': 'Tout', - 'filter.status.title': 'Filtrer par Status', - 'filter.status.downloading': 'En Téléchargement', - 'filter.status.completed': 'Terminé', - 'filter.status.active': 'Actif', - 'filter.status.inactive': 'Inactif', - 'filter.status.error': 'Erreur', - 'filter.status.stopped': 'Arrêté', - 'filter.status.checking': 'En cours de vérification', - 'filter.tracker.title': 'Filtrer par Traqueur', - 'filter.tag.title': 'Filtrer par Tag', - 'filter.untagged': 'Sans Tag', - 'general.ago': 'il y a', - 'general.at': 'à', - 'general.to': 'à', - 'general.of': 'de', - 'general.clipboard.copy': 'Copie', - 'general.clipboard.copied': 'Copié', - 'mediainfo.execError': - "Une erreur est survenue lors de l'exécution de mediainfo sur le serveur. Vérifiez que mediainfo est installé et disponible dans le PATH à Flood.", - 'mediainfo.fetching': 'Récupération en cours...', - 'mediainfo.heading': 'Sortie Mediainfo', - 'notification.torrent.finished.heading': 'Téléchargement terminé', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Erreur signalée', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Tout effacer', - 'notification.showing': 'Affichage en cours', - 'priority.dont.download': 'Arrêt', - 'priority.high': 'Haute', - 'priority.low': 'Basse', - 'priority.normal': 'Normale', - 'settings.bandwidth.slots.download.divider.label': 'Diviseur Slots de Réception', - 'settings.bandwidth.slots.download.global.label': 'Slots de Réception (Global)', - 'settings.bandwidth.slots.download.label': 'Slots de Réception par Torrent', - 'settings.bandwidth.slots.heading': 'Configuration des Slots', - 'settings.bandwidth.slots.upload.divider.label': "Diviseur Slots d'Envoi", - 'settings.bandwidth.slots.upload.global.label': "Slots d'Envoi (Global)", - 'settings.bandwidth.slots.upload.label': "Slots d'Envoi par Torrent", - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Pré-réglages du Menu (Réception) :', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Pré-réglages du Menu (Envoi) :', - 'settings.bandwidth.transferrate.global.throttle.download': 'Limitation Globale de Réception', - 'settings.bandwidth.transferrate.global.throttle.upload': "Limitation Globale d'Envoi", - 'settings.bandwidth.transferrate.heading': 'Configuration Taux de Transfert', - 'settings.connectivity.dht.label': 'Activer le DHT', - 'settings.connectivity.dht.port.label': 'Port DHT', - 'settings.connectivity.dpd.heading': 'Découverte de Pairs Décentralisée', - 'settings.connectivity.incoming.heading': 'Connexions Entrantes', - 'settings.connectivity.ip.hostname.label': "Adresse IP/Nom d'Hôte", - 'settings.connectivity.max.http.connections': 'Connexions HTTP Maximum', - 'settings.connectivity.peer.exchange.label': "Activer l'échange de Pairs", - 'settings.connectivity.peers.desired.label': 'Pairs Désirés', - 'settings.connectivity.peers.heading': 'Pairs', - 'settings.connectivity.peers.max.label': 'Pairs Maximum (Réception)', - 'settings.connectivity.peers.min.label': 'Pairs Minimum (Réception)', - 'settings.connectivity.peers.seeding.max.label': 'Pairs en Partage Maximum (Envoi)', - 'settings.connectivity.peers.seeding.min.label': 'Pairs en Partage Minimum (Envoi)', - 'settings.connectivity.port.open.label': 'Port Ouvert', - 'settings.connectivity.port.randomize.label': 'Port Aléatoire', - 'settings.connectivity.port.range.label': 'Plage de Ports', - 'settings.resources.disk.check.hash.label': 'Vérifier le hash après le Téléchargement', - 'settings.resources.disk.download.location.label': 'Répertoire de Téléchargement par défaut', - 'settings.resources.disk.heading': 'Disque Dur', - 'settings.resources.max.open.files': 'Fichiers Ouverts Maximum', - 'settings.resources.memory.heading': 'Mémoire Vive', - 'settings.resources.memory.max.label': "Limite d'utilisation Mémoire Vive", - 'settings.tabs.bandwidth': 'Bande Passante', - 'settings.tabs.connectivity': 'Connectivité', - 'settings.tabs.heading': 'Paramètres', - 'settings.tabs.resources': 'Ressources', - 'settings.tabs.authentication': 'Authentification', - 'settings.tabs.userinterface': 'Interface', - 'settings.tabs.diskusage': 'Utilisation du disque', - 'settings.tabs.about': 'À propos', - 'settings.ui.locale': 'Traductions', - 'settings.ui.language': 'Langue', - 'settings.ui.torrent.list': 'Affichage de la liste des torrents', - 'settings.ui.torrent.size': 'Taille du torrent', - 'settings.ui.torrent.size.expanded': 'Vue étendue', - 'settings.ui.torrent.size.condensed': 'Vue condensée', - 'settings.ui.torrent.details.enabled': 'Activé', - 'settings.ui.torrent.details.tags.placement': - 'Dans la vue étendue, les balises fonctionnent mieux à la fin de la liste.', - 'settings.ui.displayed.details': 'Colonnes de détail du torrent', - 'settings.diskusage.show': 'Afficher', - 'settings.diskusage.mount.points': "Points de montage d'utilisation du disque", - 'settings.about.flood': 'À propos de Flood', - 'sidebar.button.feeds': 'Flux', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Réglages', - 'sidebar.button.speedlimits': 'Limites de Vitesse', - 'sidebar.button.log.out': 'Déconnexion', - 'sidebar.search.placeholder': 'Rechercher des Torrents', - 'sidebar.transferdata.downloaded': 'Reçu', - 'sidebar.transferdata.uploaded': 'Envoyé', - 'speed.unlimited': 'Illimité', - 'unit.size.byte': 'o', - 'unit.size.kilobyte': 'ko', - 'unit.size.megabyte': 'Mo', - 'unit.size.gigabyte': 'Go', - 'unit.size.terabyte': 'To', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'an', - 'unit.time.week': 'sem', - 'unit.time.day': 'j', - 'unit.time.hour': 'h', - 'unit.time.minute': 'min', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Ajouter un Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Ajouter des Torrents', - 'torrents.add.start.label': 'Démarrer', - 'torrents.add.tab.file.browse': 'ou cliquez pour rechercher', - 'torrents.add.tab.file.drop': 'Glissez les fichiers ici,', - 'torrents.add.tab.file.title': 'Par Fichier', - 'torrents.add.tab.url.input.placeholder': 'URL du Torrent', - 'torrents.add.tab.url.title': 'Par URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Utiliser comme chemin de base', - 'torrents.details.actions.pause': 'Mettre en pause', - 'torrents.details.actions.start': 'Démarrer', - 'torrents.details.actions.stop': 'Arrêter', - 'torrents.details.details': 'Détails', - 'torrents.details.files': 'Fichiers', - 'torrents.details.files.loading': 'Chargement des détails du fichier...', - 'torrents.details.files.download.file': `{count, plural, =1 {Téléchargez le fichier} other {Téléchargez les fichiers}}`, - 'torrents.details.general.comment': 'Commentaires', - 'torrents.details.general.connected': '{connected} connectés sur {total}', - 'torrents.details.general.date.added': 'Ajouté', - 'torrents.details.general.date.created': 'Création', - 'torrents.details.general.downloaded': 'Téléchargé', - 'torrents.details.general.free.disk.space': 'Espace Disque Libre', - 'torrents.details.general.hash': 'Hachage', - 'torrents.details.general.heading.general': 'Général', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Traqueur', - 'torrents.details.general.heading.transfer': 'Transfert', - 'torrents.details.general.location': 'Emplacement', - 'torrents.details.general.none': 'Non', - 'torrents.details.general.peers': 'Pairs', - 'torrents.details.general.scheduler.ignored': 'Ignoré', - 'torrents.details.general.scheduler.obeyed': 'Conforme', - 'torrents.details.general.scheduler': 'Planifié', - 'torrents.details.general.seeds': 'En Partage', - 'torrents.details.general.size': 'Taille', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Message du Traqueur', - 'torrents.details.general.type.private': 'Privé', - 'torrents.details.general.type.public': 'Publique', - 'torrents.details.general.type': 'Type de texte', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': "Il n'y a aucun Pair actif pour ce Torrent.", - 'torrents.details.peers': 'Pairs', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} fichier sélectionné} other {{countElement} fichiers sélectionnés}}`, - 'torrents.details.selected.files.set.priority': 'Priorité', - 'torrents.details.trackers.no.data': "Il n'y a aucun Traqueur actif pour ce Torrent.", - 'torrents.details.trackers.type': 'Type de texte', - 'torrents.details.trackers': 'Traqueurs', - 'torrents.list.clear.filters': 'Vider les Filtres', - 'torrents.list.context.check.hash': 'Vérifier le Hash', - 'torrents.list.context.details': 'Détails du torrent', - 'torrents.list.context.move': 'Déplacer', - 'torrents.list.context.pause': 'Mettre en pause', - 'torrents.list.context.priority': 'Priorité', - 'torrents.list.context.remove': 'Supprimer', - 'torrents.list.context.set.tags': 'Définir un Tag', - 'torrents.list.context.start': 'Démarrer', - 'torrents.list.context.stop': 'Arrêter', - 'torrents.list.no.torrents': 'Aucun Torrent à afficher.', - 'torrents.list.drop': 'Déposez les fichiers ici pour les ajouter à rTorrent.', - 'torrents.list.cannot.connect': 'Impossible de se connecter à rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'sur', - 'torrents.move.button.set.location': 'Emplacement', - 'torrents.move.button.state.setting': 'Réglages...', - 'torrents.move.data.label': 'Déplacer les Données', - 'torrents.move.check_hash.label': 'Vérifier le hachage', - 'torrents.move.heading': "Définir l'Emplacement de Téléchargement", - 'torrents.properties.date.added': "Date d'Ajout", - 'torrents.properties.base.path': 'Chemin absolu', - 'torrents.properties.comment': 'Commentaire', - 'torrents.properties.creation.date': 'Date de Création', - 'torrents.properties.download.speed': 'Vitesse de Téléchargement', - 'torrents.properties.download.total': 'Données Reçues', - 'torrents.properties.eta': 'Date de fin estimée', - 'torrents.properties.free.disk.space': 'Espace libre', - 'torrents.properties.hash': 'Hachage', - 'torrents.properties.ignore.schedule': 'Ignorer le Planificateur', - 'torrents.properties.is.private': 'Privé', - 'torrents.properties.name': 'Nom des Fichiers', - 'torrents.properties.percentage': 'Pourcentage Complété', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'Taille des Fichiers', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Message du Tracker', - 'torrents.properties.upload.speed': "Vitesse d'Envoi", - 'torrents.properties.upload.total': 'Données Envoyées', - 'torrents.remove.are.you.sure': `Êtes-vous certain(e) de vouloir supprimer {count, plural, =0 {aucun torrent} =1 {un torrent} other {# torrents}} ?`, - 'torrents.remove.delete.data': 'Supprimer les données', - 'torrents.remove.error.no.torrents.selected': "Vous n'avez sélectionné aucun torrent.", - 'torrents.remove': 'Supprimer les Torrents', - 'torrents.set.tags.button.set': 'Définir des Tags', - 'torrents.set.tags.heading': 'Définir des Tags', - 'torrents.set.tags.enter.tags': 'Entrer des Tags', - 'torrents.sort.title': 'Trier par', - 'connection-interruption.heading': 'Impossible de se connecter à rTorrent', - 'connection-interruption.verify-settings-prompt': 'Vérifions vos paramètres de connexion.', - 'connection-interruption.verification-error': "La connexion n'a pas pu être vérifiée.", - 'connection-interruption.verification-success': 'Connexion réussie', - 'status.diskusage.title': 'Utilisation du disque', - 'locale.language.auto': 'Automatique', -}; diff --git a/client/src/javascript/i18n/translations/fr.json b/client/src/javascript/i18n/translations/fr.json new file mode 100644 index 000000000..6310f6432 --- /dev/null +++ b/client/src/javascript/i18n/translations/fr.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Démarrer le Torrent", + "actionbar.button.stop.torrent": "Arrêter le torrent", + "actionbar.button.add.torrent": "Ajouter un torrent", + "actionbar.button.remove.torrent": "Supprimer le torrent", + "alert.torrent.add": "L'ajout de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.", + "alert.torrent.add.failed": "L'ajout de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.", + "alert.torrent.move": "Le déplacement de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.", + "alert.torrent.move.failed": "Le déplacement de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.", + "alert.torrent.remove": "La suppression de {countElement} {count, plural, =1 {torrent} other {torrents}} a réussi.", + "alert.torrent.remove.failed": "La suppression de {countElement} {count, plural, =1 {torrent} other {torrents}} a échoué.", + "alert.settings.saved": "Paramètres modifiés.", + "auth.add.user": "Ajouter un Utilisateur", + "auth.connectionType": "Type de connexion rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Socket Unix", + "auth.create.account": "Créer un Compte", + "auth.create.an.account": "Créer un Compte", + "auth.create.an.account.intro": "Bienvenue dans Flood!", + "auth.current.user": "Utilisateur actuel", + "auth.error.username.empty": "Le nom d'utilisateur ne peut pas être vide.", + "auth.log.in": "Connexion", + "auth.login": "Identifiant", + "auth.password": "Mot de Passe", + "auth.user.accounts": "Comptes", + "auth.username": "Nom d'Utilisateur", + "auth.admin": "Administrateur", + "auth.message.not.admin": "L'Utilisateur n'est pas Administrateur", + "auth.rtorrentHost": "Hôte rTorrent", + "auth.rtorrentPort": "Port rTorrent", + "auth.rtorrentSocket": "Socket rTorrent", + "auth.rtorrentSocketPath": "Chemin de la chaussure rTorrent", + "button.add": "Ajouter", + "button.cancel": "Annuler", + "button.no": "Non", + "button.save": "Enregistrer", + "button.save.feed": "Enregistrer", + "button.test": "Tester", + "button.state.adding": "Ajout...", + "button.yes": "Oui", + "button.new": "Nouveau", + "connectivity.modal.title": "Problème de connectivité", + "connectivity.modal.content": "Impossible de se connecter à rTorrent. Veuillez mettre à jour les informations maintenant.", + "feeds.add.automatic.download.rule": "Ajouter une règle de téléchargement", + "feeds.add.feed": "Ajouter un Flux", + "feeds.applicable.feed": "Flux Applicable", + "feeds.apply.tags": "Appliquer les Tags", + "feeds.exclude.pattern": "Exclure le Motif", + "feeds.existing.feeds": "Flux Existants", + "feeds.existing.rules": "Règles Existantes", + "feeds.label": "Étiquette", + "feeds.match.count": "{count, plural, =1 {# correspond} other {# correspondent}}", + "feeds.match.pattern": "Motif Correspondant", + "feeds.match": "Correspondance", + "feeds.exclude": "Exclure", + "feeds.no.feeds.available": "Aucun flux disponible.", + "feeds.no.feeds.defined": "Aucun flux défini.", + "feeds.no.rules.defined": "Aucune règle définie.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Sélectionner un Flux", + "feeds.select.interval": "Intervalle", + "feeds.start.on.load": "Démarrer Immédiatement", + "feeds.tabs.download.rules": "Règles de Téléchargement", + "feeds.tabs.feeds": "Flux", + "feeds.tabs.heading": "Flux de Torrent", + "feeds.tags": "Tags", + "feeds.time.hr": "{durationValue} h", + "feeds.time.min": "{durationValue} min", + "feeds.time.day": "Jours", + "feeds.torrent.destination": "Destination du Torrent", + "feeds.url": "URL", + "feeds.search": "Terme de recherche", + "feeds.validation.invalid.regular.expression": "Expression régulière invalide.", + "feeds.validation.must.select.feed": "Vous devez choisir un flux.", + "feeds.validation.must.specify.destination": "Vous devez définir un emplacement.", + "feeds.validation.must.specify.label": "Vous devez définir un label.", + "feeds.validation.must.specify.valid.feed.url": "Vous devez définir une URL de flux valide.", + "feeds.browse.feeds": "Parcourir les flux", + "filesystem.empty.directory": "Répertoire vide.", + "filesystem.error.eacces": "Flood n'a pas la permission de lire ce répertoire.", + "filesystem.error.enoent": "Ce chemin n'existe pas. Il sera créé.", + "filesystem.fetching": "Récupération de la structure du répertoire...", + "filter.all": "Tout", + "filter.status.title": "Filtrer par Status", + "filter.status.downloading": "En Téléchargement", + "filter.status.completed": "Terminé", + "filter.status.active": "Actif", + "filter.status.inactive": "Inactif", + "filter.status.error": "Erreur", + "filter.status.stopped": "Arrêté", + "filter.status.checking": "En cours de vérification", + "filter.tracker.title": "Filtrer par Traqueur", + "filter.tag.title": "Filtrer par Tag", + "filter.untagged": "Sans Tag", + "general.ago": "il y a", + "general.at": "à", + "general.to": "à", + "general.of": "de", + "general.clipboard.copy": "Copie", + "general.clipboard.copied": "Copié", + "mediainfo.execError": "Une erreur est survenue lors de l'exécution de mediainfo sur le serveur. Vérifiez que mediainfo est installé et disponible dans le PATH à Flood.", + "mediainfo.fetching": "Récupération en cours...", + "mediainfo.heading": "Sortie Mediainfo", + "notification.torrent.finished.heading": "Téléchargement terminé", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Erreur signalée", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Tout effacer", + "notification.showing": "Affichage en cours", + "priority.dont.download": "Arrêt", + "priority.high": "Haute", + "priority.low": "Basse", + "priority.normal": "Normale", + "settings.bandwidth.slots.download.divider.label": "Diviseur Slots de Réception", + "settings.bandwidth.slots.download.global.label": "Slots de Réception (Global)", + "settings.bandwidth.slots.download.label": "Slots de Réception par Torrent", + "settings.bandwidth.slots.heading": "Configuration des Slots", + "settings.bandwidth.slots.upload.divider.label": "Diviseur Slots d'Envoi", + "settings.bandwidth.slots.upload.global.label": "Slots d'Envoi (Global)", + "settings.bandwidth.slots.upload.label": "Slots d'Envoi par Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Pré-réglages du Menu (Réception) :", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Pré-réglages du Menu (Envoi) :", + "settings.bandwidth.transferrate.global.throttle.download": "Limitation Globale de Réception", + "settings.bandwidth.transferrate.global.throttle.upload": "Limitation Globale d'Envoi", + "settings.bandwidth.transferrate.heading": "Configuration Taux de Transfert", + "settings.connectivity.dht.label": "Activer le DHT", + "settings.connectivity.dht.port.label": "Port DHT", + "settings.connectivity.dpd.heading": "Découverte de Pairs Décentralisée", + "settings.connectivity.incoming.heading": "Connexions Entrantes", + "settings.connectivity.ip.hostname.label": "Adresse IP/Nom d'Hôte", + "settings.connectivity.max.http.connections": "Connexions HTTP Maximum", + "settings.connectivity.peer.exchange.label": "Activer l'échange de Pairs", + "settings.connectivity.peers.desired.label": "Pairs Désirés", + "settings.connectivity.peers.heading": "Pairs", + "settings.connectivity.peers.max.label": "Pairs Maximum (Réception)", + "settings.connectivity.peers.min.label": "Pairs Minimum (Réception)", + "settings.connectivity.peers.seeding.max.label": "Pairs en Partage Maximum (Envoi)", + "settings.connectivity.peers.seeding.min.label": "Pairs en Partage Minimum (Envoi)", + "settings.connectivity.port.open.label": "Port Ouvert", + "settings.connectivity.port.randomize.label": "Port Aléatoire", + "settings.connectivity.port.range.label": "Plage de Ports", + "settings.resources.disk.check.hash.label": "Vérifier le hash après le Téléchargement", + "settings.resources.disk.download.location.label": "Répertoire de Téléchargement par défaut", + "settings.resources.disk.heading": "Disque Dur", + "settings.resources.max.open.files": "Fichiers Ouverts Maximum", + "settings.resources.memory.heading": "Mémoire Vive", + "settings.resources.memory.max.label": "Limite d'utilisation Mémoire Vive", + "settings.tabs.bandwidth": "Bande Passante", + "settings.tabs.connectivity": "Connectivité", + "settings.tabs.heading": "Paramètres", + "settings.tabs.resources": "Ressources", + "settings.tabs.authentication": "Authentification", + "settings.tabs.userinterface": "Interface", + "settings.tabs.diskusage": "Utilisation du disque", + "settings.tabs.about": "À propos", + "settings.ui.locale": "Traductions", + "settings.ui.language": "Langue", + "settings.ui.torrent.list": "Affichage de la liste des torrents", + "settings.ui.torrent.size": "Taille du torrent", + "settings.ui.torrent.size.expanded": "Vue étendue", + "settings.ui.torrent.size.condensed": "Vue condensée", + "settings.ui.torrent.details.enabled": "Activé", + "settings.ui.torrent.details.tags.placement": "Dans la vue étendue, les balises fonctionnent mieux à la fin de la liste.", + "settings.ui.displayed.details": "Colonnes de détail du torrent", + "settings.diskusage.show": "Afficher", + "settings.diskusage.mount.points": "Points de montage d'utilisation du disque", + "settings.about.flood": "À propos de Flood", + "sidebar.button.feeds": "Flux", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Réglages", + "sidebar.button.speedlimits": "Limites de Vitesse", + "sidebar.button.log.out": "Déconnexion", + "sidebar.search.placeholder": "Rechercher des Torrents", + "sidebar.transferdata.downloaded": "Reçu", + "sidebar.transferdata.uploaded": "Envoyé", + "speed.unlimited": "Illimité", + "unit.size.byte": "o", + "unit.size.kilobyte": "ko", + "unit.size.megabyte": "Mo", + "unit.size.gigabyte": "Go", + "unit.size.terabyte": "To", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "an", + "unit.time.week": "sem", + "unit.time.day": "j", + "unit.time.hour": "h", + "unit.time.minute": "min", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Ajouter un Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Ajouter des Torrents", + "torrents.add.start.label": "Démarrer", + "torrents.add.tab.file.browse": "ou cliquez pour rechercher", + "torrents.add.tab.file.drop": "Glissez les fichiers ici,", + "torrents.add.tab.file.title": "Par Fichier", + "torrents.add.tab.url.input.placeholder": "URL du Torrent", + "torrents.add.tab.url.title": "Par URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Utiliser comme chemin de base", + "torrents.details.actions.pause": "Mettre en pause", + "torrents.details.actions.start": "Démarrer", + "torrents.details.actions.stop": "Arrêter", + "torrents.details.details": "Détails", + "torrents.details.files": "Fichiers", + "torrents.details.files.loading": "Chargement des détails du fichier...", + "torrents.details.files.download.file": "{count, plural, =1 {Téléchargez le fichier} other {Téléchargez les fichiers}}", + "torrents.details.general.comment": "Commentaires", + "torrents.details.general.connected": "{connected} connectés sur {total}", + "torrents.details.general.date.added": "Ajouté", + "torrents.details.general.date.created": "Création", + "torrents.details.general.downloaded": "Téléchargé", + "torrents.details.general.free.disk.space": "Espace Disque Libre", + "torrents.details.general.hash": "Hachage", + "torrents.details.general.heading.general": "Général", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Traqueur", + "torrents.details.general.heading.transfer": "Transfert", + "torrents.details.general.location": "Emplacement", + "torrents.details.general.none": "Non", + "torrents.details.general.peers": "Pairs", + "torrents.details.general.scheduler.ignored": "Ignoré", + "torrents.details.general.scheduler.obeyed": "Conforme", + "torrents.details.general.scheduler": "Planifié", + "torrents.details.general.seeds": "En Partage", + "torrents.details.general.size": "Taille", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Message du Traqueur", + "torrents.details.general.type.private": "Privé", + "torrents.details.general.type.public": "Publique", + "torrents.details.general.type": "Type de texte", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Il n'y a aucun Pair actif pour ce Torrent.", + "torrents.details.peers": "Pairs", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} fichier sélectionné} other {{countElement} fichiers sélectionnés}}", + "torrents.details.selected.files.set.priority": "Priorité", + "torrents.details.trackers.no.data": "Il n'y a aucun Traqueur actif pour ce Torrent.", + "torrents.details.trackers.type": "Type de texte", + "torrents.details.trackers": "Traqueurs", + "torrents.list.clear.filters": "Vider les Filtres", + "torrents.list.context.check.hash": "Vérifier le Hash", + "torrents.list.context.details": "Détails du torrent", + "torrents.list.context.move": "Déplacer", + "torrents.list.context.pause": "Mettre en pause", + "torrents.list.context.priority": "Priorité", + "torrents.list.context.remove": "Supprimer", + "torrents.list.context.set.tags": "Définir un Tag", + "torrents.list.context.start": "Démarrer", + "torrents.list.context.stop": "Arrêter", + "torrents.list.no.torrents": "Aucun Torrent à afficher.", + "torrents.list.drop": "Déposez les fichiers ici pour les ajouter à rTorrent.", + "torrents.list.cannot.connect": "Impossible de se connecter à rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "sur", + "torrents.move.button.set.location": "Emplacement", + "torrents.move.button.state.setting": "Réglages...", + "torrents.move.data.label": "Déplacer les Données", + "torrents.move.check_hash.label": "Vérifier le hachage", + "torrents.move.heading": "Définir l'Emplacement de Téléchargement", + "torrents.properties.date.added": "Date d'Ajout", + "torrents.properties.base.path": "Chemin absolu", + "torrents.properties.comment": "Commentaire", + "torrents.properties.creation.date": "Date de Création", + "torrents.properties.download.speed": "Vitesse de Téléchargement", + "torrents.properties.download.total": "Données Reçues", + "torrents.properties.eta": "Date de fin estimée", + "torrents.properties.free.disk.space": "Espace libre", + "torrents.properties.hash": "Hachage", + "torrents.properties.ignore.schedule": "Ignorer le Planificateur", + "torrents.properties.is.private": "Privé", + "torrents.properties.name": "Nom des Fichiers", + "torrents.properties.percentage": "Pourcentage Complété", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "Taille des Fichiers", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Message du Tracker", + "torrents.properties.upload.speed": "Vitesse d'Envoi", + "torrents.properties.upload.total": "Données Envoyées", + "torrents.remove.are.you.sure": "Êtes-vous certain(e) de vouloir supprimer {count, plural, =0 {aucun torrent} =1 {un torrent} other {# torrents}} ?", + "torrents.remove.delete.data": "Supprimer les données", + "torrents.remove.error.no.torrents.selected": "Vous n'avez sélectionné aucun torrent.", + "torrents.remove": "Supprimer les Torrents", + "torrents.set.tags.button.set": "Définir des Tags", + "torrents.set.tags.heading": "Définir des Tags", + "torrents.set.tags.enter.tags": "Entrer des Tags", + "torrents.sort.title": "Trier par", + "connection-interruption.heading": "Impossible de se connecter à rTorrent", + "connection-interruption.verify-settings-prompt": "Vérifions vos paramètres de connexion.", + "connection-interruption.verification-error": "La connexion n'a pas pu être vérifiée.", + "connection-interruption.verification-success": "Connexion réussie", + "status.diskusage.title": "Utilisation du disque", + "locale.language.auto": "Automatique" +} diff --git a/client/src/javascript/i18n/translations/he.js b/client/src/javascript/i18n/translations/he.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/he.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/hu.js b/client/src/javascript/i18n/translations/hu.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/hu.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/it.js b/client/src/javascript/i18n/translations/it.js deleted file mode 100644 index 9e4ad464f..000000000 --- a/client/src/javascript/i18n/translations/it.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Avvia Torrent', - 'actionbar.button.stop.torrent': 'Ferma Torrent', - 'actionbar.button.add.torrent': 'Aggiungi Torrent', - 'actionbar.button.remove.torrent': 'Rimuovi Torrent', - 'alert.torrent.add': `Hai aggiunto con successo {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.torrent.add.failed': `Impossibile aggiungere {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.torrent.move': `Spostato con successo {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.torrent.move.failed': `Impossibile spostare {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.torrent.remove': `Hai rimosso con successo {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.torrent.remove.failed': `Impossibile rimuovere {countElement} {count, plural, =1 {torrent} other {torrent}}`, - 'alert.settings.saved': 'Impostazioni salvate con successo.', - 'auth.add.user': 'Aggiungi Utente', - 'auth.connectionType': 'rTorrent Tipo di Connessione', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Socket Unix', - 'auth.create.account': 'Crea Account', - 'auth.create.an.account': 'Crea un account', - 'auth.create.an.account.intro': 'Benvenuto a Flood!', - 'auth.current.user': 'Utente Attuale', - 'auth.error.username.empty': 'Il nome utente non può essere vuoto.', - 'auth.log.in': 'Log In', - 'auth.login': 'Accedi', - 'auth.password': 'Password', - 'auth.user.accounts': 'Account Utente', - 'auth.username': 'Username', - 'auth.admin': 'Amministratore', - 'auth.message.not.admin': "L'utente non è amministratore", - 'auth.rtorrentHost': 'host rTorrent', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Aggiungi', - 'button.cancel': 'Annulla', - 'button.no': 'No', - 'button.save': 'Salva Impostazioni', - 'button.save.feed': 'Salva', - 'button.test': 'Prova', - 'button.state.adding': 'Aggiungi...', - 'button.yes': 'Sì', - 'button.new': 'Nuovo', - 'connectivity.modal.title': 'Problema Di Connettività', - 'connectivity.modal.content': 'Impossibile connettersi a rTorrent. Si prega di aggiornare le informazioni ora.', - 'feeds.add.automatic.download.rule': 'Aggiungi Regola Download', - 'feeds.add.feed': 'Aggiungi Feed', - 'feeds.applicable.feed': 'Alimenti Applicabili', - 'feeds.apply.tags': 'Applica Etichette', - 'feeds.exclude.pattern': 'Escludi Motivo', - 'feeds.existing.feeds': 'Feed Esistenti', - 'feeds.existing.rules': 'Regole Esistenti', - 'feeds.label': 'Etichetta', - 'feeds.match.count': '{count, plural, =1 {# partita} other {# partite}}', - 'feeds.match.pattern': 'Modello Di Partita', - 'feeds.match': 'Partita', - 'feeds.exclude': 'Escludi', - 'feeds.no.feeds.available': 'Nessun feed disponibile.', - 'feeds.no.feeds.defined': 'Nessun feed definito.', - 'feeds.no.rules.defined': 'Nessuna regola definita.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Seleziona Feed', - 'feeds.select.interval': 'Intervallo', - 'feeds.start.on.load': 'Avvia al caricamento', - 'feeds.tabs.download.rules': 'Scarica Regole', - 'feeds.tabs.feeds': 'Feed', - 'feeds.tabs.heading': 'Feed Torrent', - 'feeds.tags': 'Etichette', - 'feeds.time.hr': 'Ore', - 'feeds.time.min': 'Minuti', - 'feeds.time.day': 'Giorni', - 'feeds.torrent.destination': 'Destinazione Torrent', - 'feeds.url': 'URL', - 'feeds.search': 'Termine di ricerca', - 'feeds.validation.invalid.regular.expression': 'Espressione regolare non valida.', - 'feeds.validation.must.select.feed': 'Devi selezionare un feed.', - 'feeds.validation.must.specify.destination': 'È necessario specificare una destinazione.', - 'feeds.validation.must.specify.label': "È necessario specificare un'etichetta.", - 'feeds.validation.must.specify.valid.feed.url': 'È necessario specificare un URL feed valido.', - 'feeds.browse.feeds': 'Sfoglia i feed', - 'filesystem.empty.directory': 'Directory vuota.', - 'filesystem.error.eacces': 'Flood non ha il permesso di leggere questa directory.', - 'filesystem.error.enoent': 'Questo percorso non esiste. Sarà creato.', - 'filesystem.fetching': 'Recupero struttura directory...', - 'filter.all': 'Tutti', - 'filter.status.title': 'Filtra per stato', - 'filter.status.downloading': 'Scaricamento', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Attivo', - 'filter.status.inactive': 'Inattivo', - 'filter.status.error': 'Errore', - 'filter.status.stopped': 'Fermato', - 'filter.status.checking': 'Controllo', - 'filter.tracker.title': 'Filtra per Tracker', - 'filter.tag.title': 'Filtra per Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'fa', - 'general.at': 'a', - 'general.to': 'a', - 'general.of': 'di', - 'general.clipboard.copy': 'Copia', - 'general.clipboard.copied': 'Copiato', - 'mediainfo.execError': - "Si è verificato un errore durante l'esecuzione di mediainfo sul server. Verificare che mediainfo sia installato e disponibile nel PATH to Flood.", - 'mediainfo.fetching': 'Recupero...', - 'mediainfo.heading': 'Uscita Mediainfo', - 'notification.torrent.finished.heading': 'Scaricamento Finito', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Errore Segnalato', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Cancella Tutto', - 'notification.showing': 'Mostrando', - 'priority.dont.download': 'Non Scaricare', - 'priority.high': 'Alto', - 'priority.low': 'Basso', - 'priority.normal': 'Normale', - 'settings.bandwidth.slots.download.divider.label': 'Scarica Divisore Slot', - 'settings.bandwidth.slots.download.global.label': 'Scarica Slot Globali', - 'settings.bandwidth.slots.download.label': 'Scarica Slot Per Torrent', - 'settings.bandwidth.slots.heading': 'Disponibilità Slot', - 'settings.bandwidth.slots.upload.divider.label': 'Carica Divisore Slot', - 'settings.bandwidth.slots.upload.global.label': 'Carica Slot Globali', - 'settings.bandwidth.slots.upload.label': 'Carica Slot Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Preimpostazioni A Discesa: Scarica', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Preimpostazioni A Discesa: Carica', - 'settings.bandwidth.transferrate.global.throttle.download': 'Velocità Di Download Globale Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Acceleratore Globale Del Tasso Di Caricamento', - 'settings.bandwidth.transferrate.heading': 'Velocità Di Trasferimento Throttles', - 'settings.connectivity.dht.label': 'Abilita DHT', - 'settings.connectivity.dht.port.label': 'Porta DHT', - 'settings.connectivity.dpd.heading': 'Scoperta Peer Decentralizzata', - 'settings.connectivity.incoming.heading': 'Connessioni In Entrata', - 'settings.connectivity.ip.hostname.label': 'Ip/Hostname Segnalato', - 'settings.connectivity.max.http.connections': 'Connessioni HTTP Massime', - 'settings.connectivity.peer.exchange.label': 'Abilita Scambio Peer', - 'settings.connectivity.peers.desired.label': 'Pari Desiderati', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Peers Massimo', - 'settings.connectivity.peers.min.label': 'Peers Minimo', - 'settings.connectivity.peers.seeding.max.label': 'Massima Seeding Dei Peers', - 'settings.connectivity.peers.seeding.min.label': 'Seeding Dei Peers Minimi', - 'settings.connectivity.port.open.label': 'Porta Aperta', - 'settings.connectivity.port.randomize.label': 'Porta Casuale', - 'settings.connectivity.port.range.label': 'Intervallo Di Porta', - 'settings.resources.disk.check.hash.label': "Verifica l'hash al completamento", - 'settings.resources.disk.download.location.label': 'Directory Di Download Predefinita', - 'settings.resources.disk.heading': 'Disco', - 'settings.resources.max.open.files': 'File Aperti Massimi', - 'settings.resources.memory.heading': 'Memoria', - 'settings.resources.memory.max.label': 'Utilizzo Massimo Della Memoria', - 'settings.tabs.bandwidth': 'Larghezza Di Banda', - 'settings.tabs.connectivity': 'Connettività', - 'settings.tabs.heading': 'Impostazioni', - 'settings.tabs.resources': 'Risorse', - 'settings.tabs.authentication': 'Autenticazione', - 'settings.tabs.userinterface': 'Interfaccia Utente', - 'settings.tabs.diskusage': 'Uso Del Disco', - 'settings.tabs.about': 'Informazioni', - 'settings.ui.locale': 'Localizzazione', - 'settings.ui.language': 'Lingua', - 'settings.ui.torrent.list': 'Visualizzazione Elenco Torrent', - 'settings.ui.torrent.size': 'Dimensione Torrent', - 'settings.ui.torrent.size.expanded': 'Vista Estesa', - 'settings.ui.torrent.size.condensed': 'Vista Condensata', - 'settings.ui.torrent.details.enabled': 'Abilitato', - 'settings.ui.torrent.details.tags.placement': "Nella vista espansa, i tag funzionano meglio alla fine dell'elenco.", - 'settings.ui.displayed.details': 'Colonne Dettagli Torrent', - 'settings.diskusage.show': 'Mostra', - 'settings.diskusage.mount.points': 'Punti Di Montaggio Utilizzo Disco', - 'settings.about.flood': "Informazioni Sull'Inondazione", - 'sidebar.button.feeds': 'Feed', - 'sidebar.button.notifications': 'Notifiche', - 'sidebar.button.settings': 'Impostazioni', - 'sidebar.button.speedlimits': 'Limiti Di Velocità', - 'sidebar.button.log.out': 'Esci', - 'sidebar.search.placeholder': 'Cerca torrent', - 'sidebar.transferdata.downloaded': 'Scaricato', - 'sidebar.transferdata.uploaded': 'Caricato', - 'speed.unlimited': 'Illimitato', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'g', - 'unit.time.hour': 'ora', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Aggiungi Torrent', - 'torrents.add.destination.label': 'Destinazione', - 'torrents.add.destination.placeholder': 'Destinazione', - 'torrents.add.heading': 'Aggiungi Torrent', - 'torrents.add.start.label': 'Avvia Torrent', - 'torrents.add.tab.file.browse': 'o clicca per sfogliare', - 'torrents.add.tab.file.drop': 'Trascina qui alcuni file,', - 'torrents.add.tab.file.title': 'Per File', - 'torrents.add.tab.url.input.placeholder': 'Url Torrent o Magnet Link', - 'torrents.add.tab.url.title': 'Per URL', - 'torrents.add.torrents.label': 'Torrent', - 'torrents.add.tags': 'Etichette', - 'torrents.destination.base_path': 'Usa come percorso base', - 'torrents.details.actions.pause': 'Pausa', - 'torrents.details.actions.start': 'Inizia', - 'torrents.details.actions.stop': 'Ferma', - 'torrents.details.details': 'Dettagli', - 'torrents.details.files': 'File', - 'torrents.details.files.loading': 'Caricamento dettagli del file...', - 'torrents.details.files.download.file': `{count, plural, =1 {Scarica il file} other {Scarica i file}}`, - 'torrents.details.general.comment': 'Commento', - 'torrents.details.general.connected': '{connected} connesso da {total}', - 'torrents.details.general.date.added': 'Aggiunto', - 'torrents.details.general.date.created': 'Data Di Creazione', - 'torrents.details.general.downloaded': 'Scaricato', - 'torrents.details.general.free.disk.space': 'Spazio Libero Su Disco', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Generale', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Trasferisci', - 'torrents.details.general.location': 'Posizione', - 'torrents.details.general.none': 'Nessuno', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignorato', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Pianificatore', - 'torrents.details.general.seeds': 'Semi', - 'torrents.details.general.size': 'Dimensione', - 'torrents.details.general.tags': 'Etichette', - 'torrents.details.general.tracker.message': 'Messaggio Tracker', - 'torrents.details.general.type.private': 'Privato', - 'torrents.details.general.type.public': 'Pubblico', - 'torrents.details.general.type': 'Tipo', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Non ci sono dati peer per questo torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} file selezionato} other {{countElement} file selezionati}}`, - 'torrents.details.selected.files.set.priority': 'Imposta Priorità', - 'torrents.details.trackers.no.data': 'Non ci sono dati tracker per questo torrent.', - 'torrents.details.trackers.type': 'Tipo', - 'torrents.details.trackers': 'Tracker', - 'torrents.list.clear.filters': 'Cancella Filtri', - 'torrents.list.context.check.hash': 'Controlla Hash', - 'torrents.list.context.details': 'Dettagli Torrent', - 'torrents.list.context.move': 'Imposta Posizione Del Torrent', - 'torrents.list.context.pause': 'Pausa', - 'torrents.list.context.priority': 'Priorità', - 'torrents.list.context.remove': 'Rimuovi', - 'torrents.list.context.set.tags': 'Imposta Etichette', - 'torrents.list.context.start': 'Inizia', - 'torrents.list.context.stop': 'Ferma', - 'torrents.list.no.torrents': 'Nessun torrent da visualizzare.', - 'torrents.list.drop': 'Trascina qui i file per aggiungerli a rTorrent.', - 'torrents.list.cannot.connect': 'Impossibile connettersi a rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'di', - 'torrents.move.button.set.location': 'Imposta Posizione', - 'torrents.move.button.state.setting': 'Impostazione...', - 'torrents.move.data.label': 'Sposta dati', - 'torrents.move.check_hash.label': 'Controlla hash', - 'torrents.move.heading': 'Imposta Posizione Del Torrent', - 'torrents.properties.date.added': 'Aggiunto', - 'torrents.properties.base.path': 'Percorso Base', - 'torrents.properties.comment': 'Commento', - 'torrents.properties.creation.date': 'Data Di Creazione', - 'torrents.properties.download.speed': 'Velocità Di Download', - 'torrents.properties.download.total': 'Scaricato', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Spazio Libero Su Disco', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignora Scheduler', - 'torrents.properties.is.private': 'Privato', - 'torrents.properties.name': 'Nome', - 'torrents.properties.percentage': 'Percentuale Completata', - 'torrents.properties.ratio': 'Rapporto', - 'torrents.properties.size': 'Dimensione File', - 'torrents.properties.tags': 'Etichette', - 'torrents.properties.tracker.message': 'Messaggio Tracker', - 'torrents.properties.upload.speed': 'Velocità Di Caricamento', - 'torrents.properties.upload.total': 'Caricato', - 'torrents.remove.are.you.sure': `Sei sicuro di voler rimuovere {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Elimina dati', - 'torrents.remove.error.no.torrents.selected': 'Non hai selezionato alcun torrent.', - 'torrents.remove': 'Rimuovi Torrent', - 'torrents.set.tags.button.set': 'Imposta Etichette', - 'torrents.set.tags.heading': 'Imposta Etichette', - 'torrents.set.tags.enter.tags': 'Inserisci tag', - 'torrents.sort.title': 'Ordina Per', - 'connection-interruption.heading': 'Impossibile connettersi a rTorrent', - 'connection-interruption.verify-settings-prompt': 'Verifichiamo le impostazioni di connessione.', - 'connection-interruption.verification-error': 'La connessione non può essere verificata.', - 'connection-interruption.verification-success': 'Connessione riuscita', - 'status.diskusage.title': 'Uso Del Disco', - 'locale.language.auto': 'Automatico', -}; diff --git a/client/src/javascript/i18n/translations/it.json b/client/src/javascript/i18n/translations/it.json new file mode 100644 index 000000000..08a4d49cd --- /dev/null +++ b/client/src/javascript/i18n/translations/it.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Avvia Torrent", + "actionbar.button.stop.torrent": "Ferma Torrent", + "actionbar.button.add.torrent": "Aggiungi Torrent", + "actionbar.button.remove.torrent": "Rimuovi Torrent", + "alert.torrent.add": "Hai aggiunto con successo {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.torrent.add.failed": "Impossibile aggiungere {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.torrent.move": "Spostato con successo {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.torrent.move.failed": "Impossibile spostare {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.torrent.remove": "Hai rimosso con successo {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.torrent.remove.failed": "Impossibile rimuovere {countElement} {count, plural, =1 {torrent} other {torrent}}", + "alert.settings.saved": "Impostazioni salvate con successo.", + "auth.add.user": "Aggiungi Utente", + "auth.connectionType": "rTorrent Tipo di Connessione", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Socket Unix", + "auth.create.account": "Crea Account", + "auth.create.an.account": "Crea un account", + "auth.create.an.account.intro": "Benvenuto a Flood!", + "auth.current.user": "Utente Attuale", + "auth.error.username.empty": "Il nome utente non può essere vuoto.", + "auth.log.in": "Log In", + "auth.login": "Accedi", + "auth.password": "Password", + "auth.user.accounts": "Account Utente", + "auth.username": "Username", + "auth.admin": "Amministratore", + "auth.message.not.admin": "L'utente non è amministratore", + "auth.rtorrentHost": "host rTorrent", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Aggiungi", + "button.cancel": "Annulla", + "button.no": "No", + "button.save": "Salva Impostazioni", + "button.save.feed": "Salva", + "button.test": "Prova", + "button.state.adding": "Aggiungi...", + "button.yes": "Sì", + "button.new": "Nuovo", + "connectivity.modal.title": "Problema Di Connettività", + "connectivity.modal.content": "Impossibile connettersi a rTorrent. Si prega di aggiornare le informazioni ora.", + "feeds.add.automatic.download.rule": "Aggiungi Regola Download", + "feeds.add.feed": "Aggiungi Feed", + "feeds.applicable.feed": "Alimenti Applicabili", + "feeds.apply.tags": "Applica Etichette", + "feeds.exclude.pattern": "Escludi Motivo", + "feeds.existing.feeds": "Feed Esistenti", + "feeds.existing.rules": "Regole Esistenti", + "feeds.label": "Etichetta", + "feeds.match.count": "{count, plural, =1 {# partita} other {# partite}}", + "feeds.match.pattern": "Modello Di Partita", + "feeds.match": "Partita", + "feeds.exclude": "Escludi", + "feeds.no.feeds.available": "Nessun feed disponibile.", + "feeds.no.feeds.defined": "Nessun feed definito.", + "feeds.no.rules.defined": "Nessuna regola definita.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Seleziona Feed", + "feeds.select.interval": "Intervallo", + "feeds.start.on.load": "Avvia al caricamento", + "feeds.tabs.download.rules": "Scarica Regole", + "feeds.tabs.feeds": "Feed", + "feeds.tabs.heading": "Feed Torrent", + "feeds.tags": "Etichette", + "feeds.time.hr": "Ore", + "feeds.time.min": "Minuti", + "feeds.time.day": "Giorni", + "feeds.torrent.destination": "Destinazione Torrent", + "feeds.url": "URL", + "feeds.search": "Termine di ricerca", + "feeds.validation.invalid.regular.expression": "Espressione regolare non valida.", + "feeds.validation.must.select.feed": "Devi selezionare un feed.", + "feeds.validation.must.specify.destination": "È necessario specificare una destinazione.", + "feeds.validation.must.specify.label": "È necessario specificare un'etichetta.", + "feeds.validation.must.specify.valid.feed.url": "È necessario specificare un URL feed valido.", + "feeds.browse.feeds": "Sfoglia i feed", + "filesystem.empty.directory": "Directory vuota.", + "filesystem.error.eacces": "Flood non ha il permesso di leggere questa directory.", + "filesystem.error.enoent": "Questo percorso non esiste. Sarà creato.", + "filesystem.fetching": "Recupero struttura directory...", + "filter.all": "Tutti", + "filter.status.title": "Filtra per stato", + "filter.status.downloading": "Scaricamento", + "filter.status.completed": "Complete", + "filter.status.active": "Attivo", + "filter.status.inactive": "Inattivo", + "filter.status.error": "Errore", + "filter.status.stopped": "Fermato", + "filter.status.checking": "Controllo", + "filter.tracker.title": "Filtra per Tracker", + "filter.tag.title": "Filtra per Tag", + "filter.untagged": "Untagged", + "general.ago": "fa", + "general.at": "a", + "general.to": "a", + "general.of": "di", + "general.clipboard.copy": "Copia", + "general.clipboard.copied": "Copiato", + "mediainfo.execError": "Si è verificato un errore durante l'esecuzione di mediainfo sul server. Verificare che mediainfo sia installato e disponibile nel PATH to Flood.", + "mediainfo.fetching": "Recupero...", + "mediainfo.heading": "Uscita Mediainfo", + "notification.torrent.finished.heading": "Scaricamento Finito", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Errore Segnalato", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Cancella Tutto", + "notification.showing": "Mostrando", + "priority.dont.download": "Non Scaricare", + "priority.high": "Alto", + "priority.low": "Basso", + "priority.normal": "Normale", + "settings.bandwidth.slots.download.divider.label": "Scarica Divisore Slot", + "settings.bandwidth.slots.download.global.label": "Scarica Slot Globali", + "settings.bandwidth.slots.download.label": "Scarica Slot Per Torrent", + "settings.bandwidth.slots.heading": "Disponibilità Slot", + "settings.bandwidth.slots.upload.divider.label": "Carica Divisore Slot", + "settings.bandwidth.slots.upload.global.label": "Carica Slot Globali", + "settings.bandwidth.slots.upload.label": "Carica Slot Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Preimpostazioni A Discesa: Scarica", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Preimpostazioni A Discesa: Carica", + "settings.bandwidth.transferrate.global.throttle.download": "Velocità Di Download Globale Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Acceleratore Globale Del Tasso Di Caricamento", + "settings.bandwidth.transferrate.heading": "Velocità Di Trasferimento Throttles", + "settings.connectivity.dht.label": "Abilita DHT", + "settings.connectivity.dht.port.label": "Porta DHT", + "settings.connectivity.dpd.heading": "Scoperta Peer Decentralizzata", + "settings.connectivity.incoming.heading": "Connessioni In Entrata", + "settings.connectivity.ip.hostname.label": "Ip/Hostname Segnalato", + "settings.connectivity.max.http.connections": "Connessioni HTTP Massime", + "settings.connectivity.peer.exchange.label": "Abilita Scambio Peer", + "settings.connectivity.peers.desired.label": "Pari Desiderati", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Peers Massimo", + "settings.connectivity.peers.min.label": "Peers Minimo", + "settings.connectivity.peers.seeding.max.label": "Massima Seeding Dei Peers", + "settings.connectivity.peers.seeding.min.label": "Seeding Dei Peers Minimi", + "settings.connectivity.port.open.label": "Porta Aperta", + "settings.connectivity.port.randomize.label": "Porta Casuale", + "settings.connectivity.port.range.label": "Intervallo Di Porta", + "settings.resources.disk.check.hash.label": "Verifica l'hash al completamento", + "settings.resources.disk.download.location.label": "Directory Di Download Predefinita", + "settings.resources.disk.heading": "Disco", + "settings.resources.max.open.files": "File Aperti Massimi", + "settings.resources.memory.heading": "Memoria", + "settings.resources.memory.max.label": "Utilizzo Massimo Della Memoria", + "settings.tabs.bandwidth": "Larghezza Di Banda", + "settings.tabs.connectivity": "Connettività", + "settings.tabs.heading": "Impostazioni", + "settings.tabs.resources": "Risorse", + "settings.tabs.authentication": "Autenticazione", + "settings.tabs.userinterface": "Interfaccia Utente", + "settings.tabs.diskusage": "Uso Del Disco", + "settings.tabs.about": "Informazioni", + "settings.ui.locale": "Localizzazione", + "settings.ui.language": "Lingua", + "settings.ui.torrent.list": "Visualizzazione Elenco Torrent", + "settings.ui.torrent.size": "Dimensione Torrent", + "settings.ui.torrent.size.expanded": "Vista Estesa", + "settings.ui.torrent.size.condensed": "Vista Condensata", + "settings.ui.torrent.details.enabled": "Abilitato", + "settings.ui.torrent.details.tags.placement": "Nella vista espansa, i tag funzionano meglio alla fine dell'elenco.", + "settings.ui.displayed.details": "Colonne Dettagli Torrent", + "settings.diskusage.show": "Mostra", + "settings.diskusage.mount.points": "Punti Di Montaggio Utilizzo Disco", + "settings.about.flood": "Informazioni Sull'Inondazione", + "sidebar.button.feeds": "Feed", + "sidebar.button.notifications": "Notifiche", + "sidebar.button.settings": "Impostazioni", + "sidebar.button.speedlimits": "Limiti Di Velocità", + "sidebar.button.log.out": "Esci", + "sidebar.search.placeholder": "Cerca torrent", + "sidebar.transferdata.downloaded": "Scaricato", + "sidebar.transferdata.uploaded": "Caricato", + "speed.unlimited": "Illimitato", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "g", + "unit.time.hour": "ora", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Aggiungi Torrent", + "torrents.add.destination.label": "Destinazione", + "torrents.add.destination.placeholder": "Destinazione", + "torrents.add.heading": "Aggiungi Torrent", + "torrents.add.start.label": "Avvia Torrent", + "torrents.add.tab.file.browse": "o clicca per sfogliare", + "torrents.add.tab.file.drop": "Trascina qui alcuni file,", + "torrents.add.tab.file.title": "Per File", + "torrents.add.tab.url.input.placeholder": "Url Torrent o Magnet Link", + "torrents.add.tab.url.title": "Per URL", + "torrents.add.torrents.label": "Torrent", + "torrents.add.tags": "Etichette", + "torrents.destination.base_path": "Usa come percorso base", + "torrents.details.actions.pause": "Pausa", + "torrents.details.actions.start": "Inizia", + "torrents.details.actions.stop": "Ferma", + "torrents.details.details": "Dettagli", + "torrents.details.files": "File", + "torrents.details.files.loading": "Caricamento dettagli del file...", + "torrents.details.files.download.file": "{count, plural, =1 {Scarica il file} other {Scarica i file}}", + "torrents.details.general.comment": "Commento", + "torrents.details.general.connected": "{connected} connesso da {total}", + "torrents.details.general.date.added": "Aggiunto", + "torrents.details.general.date.created": "Data Di Creazione", + "torrents.details.general.downloaded": "Scaricato", + "torrents.details.general.free.disk.space": "Spazio Libero Su Disco", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Generale", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Trasferisci", + "torrents.details.general.location": "Posizione", + "torrents.details.general.none": "Nessuno", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignorato", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Pianificatore", + "torrents.details.general.seeds": "Semi", + "torrents.details.general.size": "Dimensione", + "torrents.details.general.tags": "Etichette", + "torrents.details.general.tracker.message": "Messaggio Tracker", + "torrents.details.general.type.private": "Privato", + "torrents.details.general.type.public": "Pubblico", + "torrents.details.general.type": "Tipo", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Non ci sono dati peer per questo torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} file selezionato} other {{countElement} file selezionati}}", + "torrents.details.selected.files.set.priority": "Imposta Priorità", + "torrents.details.trackers.no.data": "Non ci sono dati tracker per questo torrent.", + "torrents.details.trackers.type": "Tipo", + "torrents.details.trackers": "Tracker", + "torrents.list.clear.filters": "Cancella Filtri", + "torrents.list.context.check.hash": "Controlla Hash", + "torrents.list.context.details": "Dettagli Torrent", + "torrents.list.context.move": "Imposta Posizione Del Torrent", + "torrents.list.context.pause": "Pausa", + "torrents.list.context.priority": "Priorità", + "torrents.list.context.remove": "Rimuovi", + "torrents.list.context.set.tags": "Imposta Etichette", + "torrents.list.context.start": "Inizia", + "torrents.list.context.stop": "Ferma", + "torrents.list.no.torrents": "Nessun torrent da visualizzare.", + "torrents.list.drop": "Trascina qui i file per aggiungerli a rTorrent.", + "torrents.list.cannot.connect": "Impossibile connettersi a rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "di", + "torrents.move.button.set.location": "Imposta Posizione", + "torrents.move.button.state.setting": "Impostazione...", + "torrents.move.data.label": "Sposta dati", + "torrents.move.check_hash.label": "Controlla hash", + "torrents.move.heading": "Imposta Posizione Del Torrent", + "torrents.properties.date.added": "Aggiunto", + "torrents.properties.base.path": "Percorso Base", + "torrents.properties.comment": "Commento", + "torrents.properties.creation.date": "Data Di Creazione", + "torrents.properties.download.speed": "Velocità Di Download", + "torrents.properties.download.total": "Scaricato", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Spazio Libero Su Disco", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignora Scheduler", + "torrents.properties.is.private": "Privato", + "torrents.properties.name": "Nome", + "torrents.properties.percentage": "Percentuale Completata", + "torrents.properties.ratio": "Rapporto", + "torrents.properties.size": "Dimensione File", + "torrents.properties.tags": "Etichette", + "torrents.properties.tracker.message": "Messaggio Tracker", + "torrents.properties.upload.speed": "Velocità Di Caricamento", + "torrents.properties.upload.total": "Caricato", + "torrents.remove.are.you.sure": "Sei sicuro di voler rimuovere {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Elimina dati", + "torrents.remove.error.no.torrents.selected": "Non hai selezionato alcun torrent.", + "torrents.remove": "Rimuovi Torrent", + "torrents.set.tags.button.set": "Imposta Etichette", + "torrents.set.tags.heading": "Imposta Etichette", + "torrents.set.tags.enter.tags": "Inserisci tag", + "torrents.sort.title": "Ordina Per", + "connection-interruption.heading": "Impossibile connettersi a rTorrent", + "connection-interruption.verify-settings-prompt": "Verifichiamo le impostazioni di connessione.", + "connection-interruption.verification-error": "La connessione non può essere verificata.", + "connection-interruption.verification-success": "Connessione riuscita", + "status.diskusage.title": "Uso Del Disco", + "locale.language.auto": "Automatico" +} diff --git a/client/src/javascript/i18n/translations/ja.js b/client/src/javascript/i18n/translations/ja.js deleted file mode 100644 index 0b8bc4128..000000000 --- a/client/src/javascript/i18n/translations/ja.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Torrent を開始', - 'actionbar.button.stop.torrent': 'Torrent を停止', - 'actionbar.button.add.torrent': 'トレントを追加', - 'actionbar.button.remove.torrent': 'Torrent を削除', - 'alert.torrent.add': `{countElement} を追加しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.torrent.add.failed': `{countElement} の追加に失敗しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.torrent.move': `{countElement} を移動しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.torrent.move.failed': `{countElement} の移動に失敗しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.torrent.remove': `{countElement} を削除しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.torrent.remove.failed': `{countElement} の削除に失敗しました {count, plural, =1 {Torrent} other {Torrent}}`, - 'alert.settings.saved': '設定を正常に保存しました。', - 'auth.add.user': 'ユーザーを追加', - 'auth.connectionType': 'rTorrent 接続タイプ', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix ソケット', - 'auth.create.account': 'アカウントを作成', - 'auth.create.an.account': 'アカウントを作成', - 'auth.create.an.account.intro': '洪水へようこそ!', - 'auth.current.user': '現在のユーザー', - 'auth.error.username.empty': 'ユーザー名は空にできません。', - 'auth.log.in': 'ログイン', - 'auth.login': 'ログイン', - 'auth.password': 'パスワード', - 'auth.user.accounts': 'ユーザーアカウント', - 'auth.username': 'ユーザー名', - 'auth.admin': '管理者', - 'auth.message.not.admin': 'ユーザーは管理者ではありません', - 'auth.rtorrentHost': 'rTorrent ホスト', - 'auth.rtorrentPort': 'rTorrent ポート', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent ソケットパス', - 'button.add': '追加', - 'button.cancel': 'キャンセル', - 'button.no': 'いいえ', - 'button.save': '設定を保存', - 'button.save.feed': '保存', - 'button.test': 'テスト', - 'button.state.adding': '追加中...', - 'button.yes': 'はい', - 'button.new': '新規作成', - 'connectivity.modal.title': '接続の問題', - 'connectivity.modal.content': 'rTorrent に接続できません。今すぐ情報を更新してください。', - 'feeds.add.automatic.download.rule': 'ダウンロードルールを追加', - 'feeds.add.feed': 'フィードを追加', - 'feeds.applicable.feed': '適用されるフィード', - 'feeds.apply.tags': 'タグを適用', - 'feeds.exclude.pattern': 'パターンを除外', - 'feeds.existing.feeds': '既存のフィード', - 'feeds.existing.rules': '既存のルール', - 'feeds.label': 'ラベル', - 'feeds.match.count': '{count, plural, =1 {# match} other {# match}}', - 'feeds.match.pattern': 'パターンに一致', - 'feeds.match': '一致', - 'feeds.exclude': '除外', - 'feeds.no.feeds.available': '利用可能なフィードはありません。', - 'feeds.no.feeds.defined': 'フィードが定義されていません。', - 'feeds.no.rules.defined': 'ルールが定義されていません。', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'フィードを選択', - 'feeds.select.interval': '間隔', - 'feeds.start.on.load': 'ロード時に開始', - 'feeds.tabs.download.rules': 'ルールをダウンロード', - 'feeds.tabs.feeds': 'フィード', - 'feeds.tabs.heading': 'トレントフィード', - 'feeds.tags': 'タグ', - 'feeds.time.hr': '時間', - 'feeds.time.min': '分', - 'feeds.time.day': '日数', - 'feeds.torrent.destination': 'トレントの宛先', - 'feeds.url': 'URL', - 'feeds.search': '検索キーワード:', - 'feeds.validation.invalid.regular.expression': '無効な正規表現です。', - 'feeds.validation.must.select.feed': 'フィードを選択してください。', - 'feeds.validation.must.specify.destination': '目的地を指定する必要があります。', - 'feeds.validation.must.specify.label': 'ラベルを指定する必要があります。', - 'feeds.validation.must.specify.valid.feed.url': '有効なフィードURLを指定する必要があります。', - 'feeds.browse.feeds': 'フィードを参照', - 'filesystem.empty.directory': '空のディレクトリ。', - 'filesystem.error.eacces': 'このディレクトリを読み込む権限がありません。', - 'filesystem.error.enoent': 'このパスは存在しません。作成されます。', - 'filesystem.fetching': 'ディレクトリ構造を取得しています...', - 'filter.all': 'すべて', - 'filter.status.title': 'ステータスでフィルター', - 'filter.status.downloading': 'ダウンロード中', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'アクティブ', - 'filter.status.inactive': '非アクティブ', - 'filter.status.error': 'エラー', - 'filter.status.stopped': '停止しました', - 'filter.status.checking': '確認中', - 'filter.tracker.title': 'トラッカーでフィルター', - 'filter.tag.title': 'タグでフィルター', - 'filter.untagged': 'タグなし', - 'general.ago': '前', - 'general.at': 'に', - 'general.to': 'to', - 'general.of': '/', - 'general.clipboard.copy': 'コピー', - 'general.clipboard.copied': 'コピーしました', - 'mediainfo.execError': - 'サーバー上でmediainfoを実行中にエラーが発生しました。mediainfoがインストールされ、PATH to Floodで利用できることを確認してください。', - 'mediainfo.fetching': 'フェッチ中...', - 'mediainfo.heading': 'Mediainfo 出力', - 'notification.torrent.finished.heading': 'ダウンロード完了', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': '報告エラー', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'すべてクリア', - 'notification.showing': '表示', - 'priority.dont.download': 'ダウンロードしない', - 'priority.high': '高い', - 'priority.low': '低い', - 'priority.normal': '標準', - 'settings.bandwidth.slots.download.divider.label': 'スロット分割線をダウンロード', - 'settings.bandwidth.slots.download.global.label': 'グローバルスロットをダウンロード', - 'settings.bandwidth.slots.download.label': 'Torrent ごとにスロットをダウンロード', - 'settings.bandwidth.slots.heading': 'スロットの在庫状況', - 'settings.bandwidth.slots.upload.divider.label': 'スロット分割線をアップロード', - 'settings.bandwidth.slots.upload.global.label': 'グローバルスロットをアップロード', - 'settings.bandwidth.slots.upload.label': 'Torrent ごとにスロットをアップロード', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'ドロップダウンプリセット: ダウンロード', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'ドロップダウンプリセット: アップロード', - 'settings.bandwidth.transferrate.global.throttle.download': 'グローバルダウンロードレートスロットル', - 'settings.bandwidth.transferrate.global.throttle.upload': 'グローバルアップロードレートスロットル', - 'settings.bandwidth.transferrate.heading': 'スロットル転送レート', - 'settings.connectivity.dht.label': 'DHTを有効にする', - 'settings.connectivity.dht.port.label': 'DHTポート', - 'settings.connectivity.dpd.heading': '分散型ピアの発見', - 'settings.connectivity.incoming.heading': '受信接続', - 'settings.connectivity.ip.hostname.label': '報告されたIP/ホスト名', - 'settings.connectivity.max.http.connections': '最大HTTP接続', - 'settings.connectivity.peer.exchange.label': 'ピア交換を有効にする', - 'settings.connectivity.peers.desired.label': 'ピアが望ましいです', - 'settings.connectivity.peers.heading': 'ピア', - 'settings.connectivity.peers.max.label': '最大ピア数', - 'settings.connectivity.peers.min.label': 'ピアの最小数', - 'settings.connectivity.peers.seeding.max.label': 'ピアシードの最大数', - 'settings.connectivity.peers.seeding.min.label': 'ピアシードの最小数', - 'settings.connectivity.port.open.label': 'ポートを開く', - 'settings.connectivity.port.randomize.label': 'ポートをランダム化', - 'settings.connectivity.port.range.label': 'ポート範囲', - 'settings.resources.disk.check.hash.label': '完了時にハッシュを確認', - 'settings.resources.disk.download.location.label': 'デフォルトのダウンロードディレクトリ', - 'settings.resources.disk.heading': 'ディスク', - 'settings.resources.max.open.files': '最大開いているファイル', - 'settings.resources.memory.heading': 'メモリ', - 'settings.resources.memory.max.label': '最大メモリ使用量', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': '接続', - 'settings.tabs.heading': '設定', - 'settings.tabs.resources': 'リソース', - 'settings.tabs.authentication': '認証', - 'settings.tabs.userinterface': 'ユーザー インターフェイス', - 'settings.tabs.diskusage': 'ディスクの使用量', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'ロケール', - 'settings.ui.language': '言語', - 'settings.ui.torrent.list': 'トレントリストの表示', - 'settings.ui.torrent.size': 'トレントサイズ', - 'settings.ui.torrent.size.expanded': '展開表示', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': '有効', - 'settings.ui.torrent.details.tags.placement': '展開されたビューでは、タグはリストの最後に最適に動作します。', - 'settings.ui.displayed.details': 'トレントの詳細列', - 'settings.diskusage.show': '表示', - 'settings.diskusage.mount.points': 'ディスク使用量マウントポイント', - 'settings.about.flood': '洪水について', - 'sidebar.button.feeds': 'フィード', - 'sidebar.button.notifications': '通知', - 'sidebar.button.settings': '設定', - 'sidebar.button.speedlimits': '速度制限', - 'sidebar.button.log.out': 'ログアウト', - 'sidebar.search.placeholder': 'Torrent を検索', - 'sidebar.transferdata.downloaded': 'ダウンロード済み', - 'sidebar.transferdata.uploaded': 'アップロードしました', - 'speed.unlimited': '無制限です', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': '時間', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'トレントを追加', - 'torrents.add.destination.label': '保存先', - 'torrents.add.destination.placeholder': '保存先', - 'torrents.add.heading': 'Torrent を追加', - 'torrents.add.start.label': 'Torrent を開始', - 'torrents.add.tab.file.browse': 'を選択します。', - 'torrents.add.tab.file.drop': 'ここにファイルをドロップ', - 'torrents.add.tab.file.title': 'ファイル順', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL または Magnet リンク', - 'torrents.add.tab.url.title': 'URL順', - 'torrents.add.torrents.label': 'Torrent', - 'torrents.add.tags': 'タグ', - 'torrents.destination.base_path': 'ベースパスとして使用', - 'torrents.details.actions.pause': '一時停止', - 'torrents.details.actions.start': '開始', - 'torrents.details.actions.stop': '停止', - 'torrents.details.details': '詳細', - 'torrents.details.files': 'ファイル', - 'torrents.details.files.loading': 'ファイル詳細を読み込んでいます...', - 'torrents.details.files.download.file': `{count, plural, =1 {ファイルをダウンロード} other {ファイルをダウンロード}}`, - 'torrents.details.general.comment': 'コメント', - 'torrents.details.general.connected': '{connected} の {total} が接続されました', - 'torrents.details.general.date.added': '追加しました', - 'torrents.details.general.date.created': '作成日', - 'torrents.details.general.downloaded': 'ダウンロード済み', - 'torrents.details.general.free.disk.space': '空きディスク容量', - 'torrents.details.general.hash': 'ハッシュ', - 'torrents.details.general.heading.general': '全般', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'トラッカー', - 'torrents.details.general.heading.transfer': '送金', - 'torrents.details.general.location': '場所', - 'torrents.details.general.none': 'なし', - 'torrents.details.general.peers': 'ピア', - 'torrents.details.general.scheduler.ignored': '無視', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'スケジューラ', - 'torrents.details.general.seeds': '種', - 'torrents.details.general.size': 'サイズ', - 'torrents.details.general.tags': 'タグ', - 'torrents.details.general.tracker.message': 'トラッカーメッセージ', - 'torrents.details.general.type.private': '非公開', - 'torrents.details.general.type.public': '公開', - 'torrents.details.general.type': 'タイプ', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'このトレントのピアデータはありません。', - 'torrents.details.peers': 'ピア', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} 選択したファイル} other {{countElement} 選択したファイル}}`, - 'torrents.details.selected.files.set.priority': '優先度を設定', - 'torrents.details.trackers.no.data': 'このトレントにはトラッカーデータがありません。', - 'torrents.details.trackers.type': 'タイプ', - 'torrents.details.trackers': 'トラッカー', - 'torrents.list.clear.filters': 'フィルタをクリア', - 'torrents.list.context.check.hash': 'ハッシュを確認', - 'torrents.list.context.details': 'トレントの詳細', - 'torrents.list.context.move': 'トレントの場所を設定', - 'torrents.list.context.pause': '一時停止', - 'torrents.list.context.priority': '優先度', - 'torrents.list.context.remove': '削除', - 'torrents.list.context.set.tags': 'タグを設定', - 'torrents.list.context.start': '開始', - 'torrents.list.context.stop': '停止', - 'torrents.list.no.torrents': '表示するトレントがありません。', - 'torrents.list.drop': 'ここにファイルをドロップして、rTorrentに追加します。', - 'torrents.list.cannot.connect': 'rTorrent に接続できません。', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': '/', - 'torrents.move.button.set.location': '場所を設定', - 'torrents.move.button.state.setting': '設定中...', - 'torrents.move.data.label': 'データを移動', - 'torrents.move.check_hash.label': 'ハッシュをチェック', - 'torrents.move.heading': 'トレントの場所を設定', - 'torrents.properties.date.added': '追加しました', - 'torrents.properties.base.path': 'ベースパス', - 'torrents.properties.comment': 'コメント', - 'torrents.properties.creation.date': '作成日', - 'torrents.properties.download.speed': 'ダウンロード速度', - 'torrents.properties.download.total': 'ダウンロード済み', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': '空きディスク容量', - 'torrents.properties.hash': 'ハッシュ', - 'torrents.properties.ignore.schedule': 'スケジューラを無視', - 'torrents.properties.is.private': '非公開', - 'torrents.properties.name': '名前', - 'torrents.properties.percentage': '完了率', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'ファイルサイズ', - 'torrents.properties.tags': 'タグ', - 'torrents.properties.tracker.message': 'トラッカーメッセージ', - 'torrents.properties.upload.speed': 'アップロード速度', - 'torrents.properties.upload.total': 'アップロードしました', - 'torrents.remove.are.you.sure': `削除してもよろしいですか? {count, plural, =1 {# Torrent} other {# Torrent}}?`, - 'torrents.remove.delete.data': 'データを削除', - 'torrents.remove.error.no.torrents.selected': 'トレントを選択していません。', - 'torrents.remove': 'Torrent を削除', - 'torrents.set.tags.button.set': 'タグを設定', - 'torrents.set.tags.heading': 'タグを設定', - 'torrents.set.tags.enter.tags': 'タグを入力', - 'torrents.sort.title': '並び替え', - 'connection-interruption.heading': 'rTorrent に接続できません', - 'connection-interruption.verify-settings-prompt': '接続設定を確認してみましょう。', - 'connection-interruption.verification-error': '接続を確認できませんでした。', - 'connection-interruption.verification-success': '接続に成功しました', - 'status.diskusage.title': 'ディスクの使用量', - 'locale.language.auto': '自動', -}; diff --git a/client/src/javascript/i18n/translations/ja.json b/client/src/javascript/i18n/translations/ja.json new file mode 100644 index 000000000..fbe8b6618 --- /dev/null +++ b/client/src/javascript/i18n/translations/ja.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Torrent を開始", + "actionbar.button.stop.torrent": "Torrent を停止", + "actionbar.button.add.torrent": "トレントを追加", + "actionbar.button.remove.torrent": "Torrent を削除", + "alert.torrent.add": "{countElement} を追加しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.torrent.add.failed": "{countElement} の追加に失敗しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.torrent.move": "{countElement} を移動しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.torrent.move.failed": "{countElement} の移動に失敗しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.torrent.remove": "{countElement} を削除しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.torrent.remove.failed": "{countElement} の削除に失敗しました {count, plural, =1 {Torrent} other {Torrent}}", + "alert.settings.saved": "設定を正常に保存しました。", + "auth.add.user": "ユーザーを追加", + "auth.connectionType": "rTorrent 接続タイプ", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix ソケット", + "auth.create.account": "アカウントを作成", + "auth.create.an.account": "アカウントを作成", + "auth.create.an.account.intro": "洪水へようこそ!", + "auth.current.user": "現在のユーザー", + "auth.error.username.empty": "ユーザー名は空にできません。", + "auth.log.in": "ログイン", + "auth.login": "ログイン", + "auth.password": "パスワード", + "auth.user.accounts": "ユーザーアカウント", + "auth.username": "ユーザー名", + "auth.admin": "管理者", + "auth.message.not.admin": "ユーザーは管理者ではありません", + "auth.rtorrentHost": "rTorrent ホスト", + "auth.rtorrentPort": "rTorrent ポート", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent ソケットパス", + "button.add": "追加", + "button.cancel": "キャンセル", + "button.no": "いいえ", + "button.save": "設定を保存", + "button.save.feed": "保存", + "button.test": "テスト", + "button.state.adding": "追加中...", + "button.yes": "はい", + "button.new": "新規作成", + "connectivity.modal.title": "接続の問題", + "connectivity.modal.content": "rTorrent に接続できません。今すぐ情報を更新してください。", + "feeds.add.automatic.download.rule": "ダウンロードルールを追加", + "feeds.add.feed": "フィードを追加", + "feeds.applicable.feed": "適用されるフィード", + "feeds.apply.tags": "タグを適用", + "feeds.exclude.pattern": "パターンを除外", + "feeds.existing.feeds": "既存のフィード", + "feeds.existing.rules": "既存のルール", + "feeds.label": "ラベル", + "feeds.match.count": "{count, plural, =1 {# match} other {# match}}", + "feeds.match.pattern": "パターンに一致", + "feeds.match": "一致", + "feeds.exclude": "除外", + "feeds.no.feeds.available": "利用可能なフィードはありません。", + "feeds.no.feeds.defined": "フィードが定義されていません。", + "feeds.no.rules.defined": "ルールが定義されていません。", + "feeds.regEx": "RegEx", + "feeds.select.feed": "フィードを選択", + "feeds.select.interval": "間隔", + "feeds.start.on.load": "ロード時に開始", + "feeds.tabs.download.rules": "ルールをダウンロード", + "feeds.tabs.feeds": "フィード", + "feeds.tabs.heading": "トレントフィード", + "feeds.tags": "タグ", + "feeds.time.hr": "時間", + "feeds.time.min": "分", + "feeds.time.day": "日数", + "feeds.torrent.destination": "トレントの宛先", + "feeds.url": "URL", + "feeds.search": "検索キーワード:", + "feeds.validation.invalid.regular.expression": "無効な正規表現です。", + "feeds.validation.must.select.feed": "フィードを選択してください。", + "feeds.validation.must.specify.destination": "目的地を指定する必要があります。", + "feeds.validation.must.specify.label": "ラベルを指定する必要があります。", + "feeds.validation.must.specify.valid.feed.url": "有効なフィードURLを指定する必要があります。", + "feeds.browse.feeds": "フィードを参照", + "filesystem.empty.directory": "空のディレクトリ。", + "filesystem.error.eacces": "このディレクトリを読み込む権限がありません。", + "filesystem.error.enoent": "このパスは存在しません。作成されます。", + "filesystem.fetching": "ディレクトリ構造を取得しています...", + "filter.all": "すべて", + "filter.status.title": "ステータスでフィルター", + "filter.status.downloading": "ダウンロード中", + "filter.status.completed": "Complete", + "filter.status.active": "アクティブ", + "filter.status.inactive": "非アクティブ", + "filter.status.error": "エラー", + "filter.status.stopped": "停止しました", + "filter.status.checking": "確認中", + "filter.tracker.title": "トラッカーでフィルター", + "filter.tag.title": "タグでフィルター", + "filter.untagged": "タグなし", + "general.ago": "前", + "general.at": "に", + "general.to": "to", + "general.of": "/", + "general.clipboard.copy": "コピー", + "general.clipboard.copied": "コピーしました", + "mediainfo.execError": "サーバー上でmediainfoを実行中にエラーが発生しました。mediainfoがインストールされ、PATH to Floodで利用できることを確認してください。", + "mediainfo.fetching": "フェッチ中...", + "mediainfo.heading": "Mediainfo 出力", + "notification.torrent.finished.heading": "ダウンロード完了", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "報告エラー", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "すべてクリア", + "notification.showing": "表示", + "priority.dont.download": "ダウンロードしない", + "priority.high": "高い", + "priority.low": "低い", + "priority.normal": "標準", + "settings.bandwidth.slots.download.divider.label": "スロット分割線をダウンロード", + "settings.bandwidth.slots.download.global.label": "グローバルスロットをダウンロード", + "settings.bandwidth.slots.download.label": "Torrent ごとにスロットをダウンロード", + "settings.bandwidth.slots.heading": "スロットの在庫状況", + "settings.bandwidth.slots.upload.divider.label": "スロット分割線をアップロード", + "settings.bandwidth.slots.upload.global.label": "グローバルスロットをアップロード", + "settings.bandwidth.slots.upload.label": "Torrent ごとにスロットをアップロード", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "ドロップダウンプリセット: ダウンロード", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "ドロップダウンプリセット: アップロード", + "settings.bandwidth.transferrate.global.throttle.download": "グローバルダウンロードレートスロットル", + "settings.bandwidth.transferrate.global.throttle.upload": "グローバルアップロードレートスロットル", + "settings.bandwidth.transferrate.heading": "スロットル転送レート", + "settings.connectivity.dht.label": "DHTを有効にする", + "settings.connectivity.dht.port.label": "DHTポート", + "settings.connectivity.dpd.heading": "分散型ピアの発見", + "settings.connectivity.incoming.heading": "受信接続", + "settings.connectivity.ip.hostname.label": "報告されたIP/ホスト名", + "settings.connectivity.max.http.connections": "最大HTTP接続", + "settings.connectivity.peer.exchange.label": "ピア交換を有効にする", + "settings.connectivity.peers.desired.label": "ピアが望ましいです", + "settings.connectivity.peers.heading": "ピア", + "settings.connectivity.peers.max.label": "最大ピア数", + "settings.connectivity.peers.min.label": "ピアの最小数", + "settings.connectivity.peers.seeding.max.label": "ピアシードの最大数", + "settings.connectivity.peers.seeding.min.label": "ピアシードの最小数", + "settings.connectivity.port.open.label": "ポートを開く", + "settings.connectivity.port.randomize.label": "ポートをランダム化", + "settings.connectivity.port.range.label": "ポート範囲", + "settings.resources.disk.check.hash.label": "完了時にハッシュを確認", + "settings.resources.disk.download.location.label": "デフォルトのダウンロードディレクトリ", + "settings.resources.disk.heading": "ディスク", + "settings.resources.max.open.files": "最大開いているファイル", + "settings.resources.memory.heading": "メモリ", + "settings.resources.memory.max.label": "最大メモリ使用量", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "接続", + "settings.tabs.heading": "設定", + "settings.tabs.resources": "リソース", + "settings.tabs.authentication": "認証", + "settings.tabs.userinterface": "ユーザー インターフェイス", + "settings.tabs.diskusage": "ディスクの使用量", + "settings.tabs.about": "About", + "settings.ui.locale": "ロケール", + "settings.ui.language": "言語", + "settings.ui.torrent.list": "トレントリストの表示", + "settings.ui.torrent.size": "トレントサイズ", + "settings.ui.torrent.size.expanded": "展開表示", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "有効", + "settings.ui.torrent.details.tags.placement": "展開されたビューでは、タグはリストの最後に最適に動作します。", + "settings.ui.displayed.details": "トレントの詳細列", + "settings.diskusage.show": "表示", + "settings.diskusage.mount.points": "ディスク使用量マウントポイント", + "settings.about.flood": "洪水について", + "sidebar.button.feeds": "フィード", + "sidebar.button.notifications": "通知", + "sidebar.button.settings": "設定", + "sidebar.button.speedlimits": "速度制限", + "sidebar.button.log.out": "ログアウト", + "sidebar.search.placeholder": "Torrent を検索", + "sidebar.transferdata.downloaded": "ダウンロード済み", + "sidebar.transferdata.uploaded": "アップロードしました", + "speed.unlimited": "無制限です", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "時間", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "トレントを追加", + "torrents.add.destination.label": "保存先", + "torrents.add.destination.placeholder": "保存先", + "torrents.add.heading": "Torrent を追加", + "torrents.add.start.label": "Torrent を開始", + "torrents.add.tab.file.browse": "を選択します。", + "torrents.add.tab.file.drop": "ここにファイルをドロップ", + "torrents.add.tab.file.title": "ファイル順", + "torrents.add.tab.url.input.placeholder": "Torrent URL または Magnet リンク", + "torrents.add.tab.url.title": "URL順", + "torrents.add.torrents.label": "Torrent", + "torrents.add.tags": "タグ", + "torrents.destination.base_path": "ベースパスとして使用", + "torrents.details.actions.pause": "一時停止", + "torrents.details.actions.start": "開始", + "torrents.details.actions.stop": "停止", + "torrents.details.details": "詳細", + "torrents.details.files": "ファイル", + "torrents.details.files.loading": "ファイル詳細を読み込んでいます...", + "torrents.details.files.download.file": "{count, plural, =1 {ファイルをダウンロード} other {ファイルをダウンロード}}", + "torrents.details.general.comment": "コメント", + "torrents.details.general.connected": "{connected} の {total} が接続されました", + "torrents.details.general.date.added": "追加しました", + "torrents.details.general.date.created": "作成日", + "torrents.details.general.downloaded": "ダウンロード済み", + "torrents.details.general.free.disk.space": "空きディスク容量", + "torrents.details.general.hash": "ハッシュ", + "torrents.details.general.heading.general": "全般", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "トラッカー", + "torrents.details.general.heading.transfer": "送金", + "torrents.details.general.location": "場所", + "torrents.details.general.none": "なし", + "torrents.details.general.peers": "ピア", + "torrents.details.general.scheduler.ignored": "無視", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "スケジューラ", + "torrents.details.general.seeds": "種", + "torrents.details.general.size": "サイズ", + "torrents.details.general.tags": "タグ", + "torrents.details.general.tracker.message": "トラッカーメッセージ", + "torrents.details.general.type.private": "非公開", + "torrents.details.general.type.public": "公開", + "torrents.details.general.type": "タイプ", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "このトレントのピアデータはありません。", + "torrents.details.peers": "ピア", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} 選択したファイル} other {{countElement} 選択したファイル}}", + "torrents.details.selected.files.set.priority": "優先度を設定", + "torrents.details.trackers.no.data": "このトレントにはトラッカーデータがありません。", + "torrents.details.trackers.type": "タイプ", + "torrents.details.trackers": "トラッカー", + "torrents.list.clear.filters": "フィルタをクリア", + "torrents.list.context.check.hash": "ハッシュを確認", + "torrents.list.context.details": "トレントの詳細", + "torrents.list.context.move": "トレントの場所を設定", + "torrents.list.context.pause": "一時停止", + "torrents.list.context.priority": "優先度", + "torrents.list.context.remove": "削除", + "torrents.list.context.set.tags": "タグを設定", + "torrents.list.context.start": "開始", + "torrents.list.context.stop": "停止", + "torrents.list.no.torrents": "表示するトレントがありません。", + "torrents.list.drop": "ここにファイルをドロップして、rTorrentに追加します。", + "torrents.list.cannot.connect": "rTorrent に接続できません。", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "/", + "torrents.move.button.set.location": "場所を設定", + "torrents.move.button.state.setting": "設定中...", + "torrents.move.data.label": "データを移動", + "torrents.move.check_hash.label": "ハッシュをチェック", + "torrents.move.heading": "トレントの場所を設定", + "torrents.properties.date.added": "追加しました", + "torrents.properties.base.path": "ベースパス", + "torrents.properties.comment": "コメント", + "torrents.properties.creation.date": "作成日", + "torrents.properties.download.speed": "ダウンロード速度", + "torrents.properties.download.total": "ダウンロード済み", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "空きディスク容量", + "torrents.properties.hash": "ハッシュ", + "torrents.properties.ignore.schedule": "スケジューラを無視", + "torrents.properties.is.private": "非公開", + "torrents.properties.name": "名前", + "torrents.properties.percentage": "完了率", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "ファイルサイズ", + "torrents.properties.tags": "タグ", + "torrents.properties.tracker.message": "トラッカーメッセージ", + "torrents.properties.upload.speed": "アップロード速度", + "torrents.properties.upload.total": "アップロードしました", + "torrents.remove.are.you.sure": "削除してもよろしいですか? {count, plural, =1 {# Torrent} other {# Torrent}}?", + "torrents.remove.delete.data": "データを削除", + "torrents.remove.error.no.torrents.selected": "トレントを選択していません。", + "torrents.remove": "Torrent を削除", + "torrents.set.tags.button.set": "タグを設定", + "torrents.set.tags.heading": "タグを設定", + "torrents.set.tags.enter.tags": "タグを入力", + "torrents.sort.title": "並び替え", + "connection-interruption.heading": "rTorrent に接続できません", + "connection-interruption.verify-settings-prompt": "接続設定を確認してみましょう。", + "connection-interruption.verification-error": "接続を確認できませんでした。", + "connection-interruption.verification-success": "接続に成功しました", + "status.diskusage.title": "ディスクの使用量", + "locale.language.auto": "自動" +} diff --git a/client/src/javascript/i18n/translations/ko.js b/client/src/javascript/i18n/translations/ko.js deleted file mode 100644 index b1a443bd5..000000000 --- a/client/src/javascript/i18n/translations/ko.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': '토렌트 시작', - 'actionbar.button.stop.torrent': '토렌트 중지', - 'actionbar.button.add.torrent': '토렌트 추가', - 'actionbar.button.remove.torrent': '토렌트 제거', - 'alert.torrent.add': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 추가했습니다.`, - 'alert.torrent.add.failed': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 추가하지 못했습니다.`, - 'alert.torrent.move': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 이동했습니다.`, - 'alert.torrent.move.failed': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 이동하지 못했습니다.`, - 'alert.torrent.remove': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 제거했습니다.`, - 'alert.torrent.remove.failed': `{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 제거하지 못했습니다.`, - 'alert.settings.saved': '설정을 저장했습니다.', - 'auth.add.user': '사용자 추가', - 'auth.connectionType': 'rTorrent 연결 종류', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': '유닉스 소켓', - 'auth.create.account': '계정 생성', - 'auth.create.an.account': '계정 생성', - 'auth.create.an.account.intro': '환영합니다, Flood입니다!', - 'auth.current.user': '현재 사용자', - 'auth.error.username.empty': '사용자 이름은 비어있을 수 없습니다.', - 'auth.log.in': '로그인', - 'auth.login': '로그인', - 'auth.password': '비밀번호', - 'auth.user.accounts': '사용자 계정', - 'auth.username': '사용자 이름', - 'auth.admin': '관리자', - 'auth.message.not.admin': '관리자가 아닌 사용자입니다', - 'auth.rtorrentHost': 'rTorrent 호스트', - 'auth.rtorrentPort': 'rTorrent 포트', - 'auth.rtorrentSocket': 'rTorrent 소켓', - 'auth.rtorrentSocketPath': 'rTorrent 소켓 경로', - 'button.add': '추가', - 'button.cancel': '취소', - 'button.no': '아니오', - 'button.save': '설정 저장', - 'button.save.feed': 'Save', - 'button.test': '테스트', - 'button.state.adding': '추가 중...', - 'button.yes': '예', - 'button.new': 'New', - 'connectivity.modal.title': '연결 문제', - 'connectivity.modal.content': 'rTorrent에 연결하지 못했습니다. 지금, 설정을 고쳐주세요.', - 'feeds.add.automatic.download.rule': '다운로드 규칙 추가', - 'feeds.add.feed': '피드 추가', - 'feeds.applicable.feed': '가용 피드', - 'feeds.apply.tags': '태그 적용', - 'feeds.exclude.pattern': '제외 패턴', - 'feeds.existing.feeds': '설정된 피드', - 'feeds.existing.rules': '설정된 규칙', - 'feeds.label': '라벨', - 'feeds.match.count': '{count, plural, =1 {# 일치} other {# 일치}}', - 'feeds.match.pattern': '일치 패턴', - 'feeds.match': '일치', - 'feeds.exclude': '제외', - 'feeds.no.feeds.available': '사용할 수 있는 피드가 없습니다.', - 'feeds.no.feeds.defined': '지정된 피드가 없습니다.', - 'feeds.no.rules.defined': '지정된 규칙이 없습니다.', - 'feeds.regEx': '정규 표현식', - 'feeds.select.feed': '피드 선택', - 'feeds.select.interval': '간격', - 'feeds.start.on.load': '시작 시 불러오기', - 'feeds.tabs.download.rules': '다운로드 규칙', - 'feeds.tabs.feeds': '피드', - 'feeds.tabs.heading': '토렌트 피드', - 'feeds.tags': '태그', - 'feeds.time.hr': '{durationValue} 시간', - 'feeds.time.min': '{durationValue} 분', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': '토렌트 저장 경로', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': '정규 표현식이 잘못되었습니다.', - 'feeds.validation.must.select.feed': '피드를 선택해야 합니다.', - 'feeds.validation.must.specify.destination': '저장할 경로를 지정해야 합니다.', - 'feeds.validation.must.specify.label': '라벨을 지정해야 합니다.', - 'feeds.validation.must.specify.valid.feed.url': '올바른 피드 URL을 지정해야 합니다.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': '비어있는 디렉토리입니다.', - 'filesystem.error.eacces': 'Flood에 이 디렉토리를 읽을 권한이 없습니다.', - 'filesystem.error.enoent': '없는 경로입니다. 생성될 것입니다.', - 'filesystem.fetching': '디렉토리 구조 가져오는 중...', - 'filter.all': '전체', - 'filter.status.title': '필터: 상태', - 'filter.status.downloading': '다운로드 중', - 'filter.status.completed': '완료', - 'filter.status.active': '활성', - 'filter.status.inactive': '비활성', - 'filter.status.error': '오류', - 'filter.status.stopped': '중지', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': '필터: 트래커', - 'filter.tag.title': '필터: 태그', - 'filter.untagged': '태그 없음', - 'general.ago': '전', - 'general.at': '@', - 'general.to': '-', - 'general.of': '/', - 'general.clipboard.copy': '복사', - 'general.clipboard.copied': '복사됨', - 'mediainfo.execError': - '서버에서 미디어 정보를 가져오는 중 오류가 발생했습니다. mediainfo가 설치되어 있으며 Flood가 쓸 수 있도록 PATH가 지정되어 있는지 확인하세요.', - 'mediainfo.fetching': '가져오는 중...', - 'mediainfo.heading': 'Mediainfo 출력', - 'notification.torrent.finished.heading': '다운로드 완료', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': '오류 보고', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': '모두 지우기', - 'notification.showing': '표시 중', - 'priority.dont.download': '다운로드하지 않음', - 'priority.high': '높음', - 'priority.low': '낮음', - 'priority.normal': '보통', - 'settings.bandwidth.slots.download.divider.label': '다운로드 슬롯 나눌 값', - 'settings.bandwidth.slots.download.global.label': '전체 다운로드 슬롯 개수', - 'settings.bandwidth.slots.download.label': '토렌트당 다운로드 슬롯 개수', - 'settings.bandwidth.slots.heading': '가용 슬롯', - 'settings.bandwidth.slots.upload.divider.label': '업로드 슬롯 나눌 값', - 'settings.bandwidth.slots.upload.global.label': '전체 업로드 슬롯 개수', - 'settings.bandwidth.slots.upload.label': '토렌트당 업로드 슬롯 개수', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': '드롭다운 메뉴 속도 목록: 다운로드', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': '드롭다운 메뉴 속도 목록: 업로드', - 'settings.bandwidth.transferrate.global.throttle.download': '전체 다운로드 속도 제한', - 'settings.bandwidth.transferrate.global.throttle.upload': '전체 업로드 속도 제한', - 'settings.bandwidth.transferrate.heading': '전송 속도 제한', - 'settings.connectivity.dht.label': 'DHT 사용', - 'settings.connectivity.dht.port.label': 'DHT 포트', - 'settings.connectivity.dpd.heading': '탈중앙 피어 탐색', - 'settings.connectivity.incoming.heading': '들어오는 연결', - 'settings.connectivity.ip.hostname.label': '보고된 IP/호스트명', - 'settings.connectivity.max.http.connections': '최대 HTTP 연결', - 'settings.connectivity.peer.exchange.label': '피어 교환 사용', - 'settings.connectivity.peers.desired.label': '희망 피어 수', - 'settings.connectivity.peers.heading': '피어', - 'settings.connectivity.peers.max.label': '최대 피어 수', - 'settings.connectivity.peers.min.label': '최소 피어 수', - 'settings.connectivity.peers.seeding.max.label': '시딩할 최대 피어 수', - 'settings.connectivity.peers.seeding.min.label': '시딩할 최소 피어 수', - 'settings.connectivity.port.open.label': '포트 열기', - 'settings.connectivity.port.randomize.label': '임의 포트', - 'settings.connectivity.port.range.label': '포트 범위', - 'settings.resources.disk.check.hash.label': '완료 시 해시 검증', - 'settings.resources.disk.download.location.label': '기본 다운로드 경로', - 'settings.resources.disk.heading': '디스크', - 'settings.resources.max.open.files': '최대 열어둘 파일 개수', - 'settings.resources.memory.heading': '메모리', - 'settings.resources.memory.max.label': '최대 메모리 사용량', - 'settings.tabs.bandwidth': '대역폭', - 'settings.tabs.connectivity': '연결', - 'settings.tabs.heading': '설정', - 'settings.tabs.resources': '자원', - 'settings.tabs.authentication': '인증', - 'settings.tabs.userinterface': '사용자 인터페이스', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': '지역', - 'settings.ui.language': '언어', - 'settings.ui.torrent.list': '토렌트 목록 표시', - 'settings.ui.torrent.size': '토렌트 크기', - 'settings.ui.torrent.size.expanded': '확장 보기', - 'settings.ui.torrent.size.condensed': '간략히 보기', - 'settings.ui.torrent.details.enabled': '표시', - 'settings.ui.torrent.details.tags.placement': '확장 보기에서는, 태그를 목록 끝에 배치하면 제일 잘 작동합니다.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': '피드', - 'sidebar.button.notifications': '알림', - 'sidebar.button.settings': '설정', - 'sidebar.button.speedlimits': '속도 제한', - 'sidebar.button.log.out': '로그아웃', - 'sidebar.search.placeholder': '토렌트 검색', - 'sidebar.transferdata.downloaded': '다운로드한 크기', - 'sidebar.transferdata.uploaded': '업로드한 크기', - 'speed.unlimited': '무제한', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': '년', - 'unit.time.week': '주', - 'unit.time.day': '일', - 'unit.time.hour': '시', - 'unit.time.minute': '분', - 'unit.time.second': '초', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': '토렌트 추가', - 'torrents.add.destination.label': '저장 경로', - 'torrents.add.destination.placeholder': '저장 경로', - 'torrents.add.heading': '토렌트 추가', - 'torrents.add.start.label': '토렌트 시작', - 'torrents.add.tab.file.browse': '또는 클릭해서 파일 열기', - 'torrents.add.tab.file.drop': '파일을 여기로 끌어넣거나,', - 'torrents.add.tab.file.title': '파일', - 'torrents.add.tab.url.input.placeholder': '토렌트 URL 또는 마그넷 주소', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': '토렌트', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': '기본 경로로 사용', - 'torrents.details.actions.pause': '일시중지', - 'torrents.details.actions.start': '시작', - 'torrents.details.actions.stop': '중지', - 'torrents.details.details': '속성', - 'torrents.details.files': '파일', - 'torrents.details.files.loading': '파일 목록 불러오는 중...', - 'torrents.details.files.download.file': `{count, plural, =1 {선택한 파일 다운로드} other {선택한 파일 다운로드}}`, - 'torrents.details.general.comment': '설명', - 'torrents.details.general.connected': '{total} 중 {connected} 연결됨', - 'torrents.details.general.date.added': '추가한 날', - 'torrents.details.general.date.created': '만든 날', - 'torrents.details.general.downloaded': '다운로드한 크기', - 'torrents.details.general.free.disk.space': '남은 디스크 공간', - 'torrents.details.general.hash': '해시', - 'torrents.details.general.heading.general': '일반', - 'torrents.details.general.heading.torrent': '토렌트', - 'torrents.details.general.heading.tracker': '트래커', - 'torrents.details.general.heading.transfer': '전송', - 'torrents.details.general.location': '다운로드 경로', - 'torrents.details.general.none': '없음', - 'torrents.details.general.peers': '피어', - 'torrents.details.general.scheduler.ignored': '무시', - 'torrents.details.general.scheduler.obeyed': '준수', - 'torrents.details.general.scheduler': '스케줄러', - 'torrents.details.general.seeds': '시드', - 'torrents.details.general.size': '크기', - 'torrents.details.general.tags': '태그', - 'torrents.details.general.tracker.message': '트래커 메시지', - 'torrents.details.general.type.private': '비공개', - 'torrents.details.general.type.public': '공개', - 'torrents.details.general.type': '종류', - 'torrents.details.mediainfo': '미디어 정보', - 'torrents.details.peers.no.data': '이 토렌트에는 피어 정보가 없습니다.', - 'torrents.details.peers': '피어', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} 파일 선택} other {{countElement} 파일 선택}}`, - 'torrents.details.selected.files.set.priority': '우선순위 지정', - 'torrents.details.trackers.no.data': '이 토렌트에는 트래커 정보가 없습니다.', - 'torrents.details.trackers.type': '종류', - 'torrents.details.trackers': '트래커', - 'torrents.list.clear.filters': '필터 지우기', - 'torrents.list.context.check.hash': '해시 검사', - 'torrents.list.context.details': '토렌트 속성', - 'torrents.list.context.move': '토렌트 위치 지정', - 'torrents.list.context.pause': '일시중지', - 'torrents.list.context.priority': '우선순위', - 'torrents.list.context.remove': '제거', - 'torrents.list.context.set.tags': '태그 지정', - 'torrents.list.context.start': '시작', - 'torrents.list.context.stop': '중지', - 'torrents.list.no.torrents': '표시할 토렌트가 없습니다.', - 'torrents.list.drop': '여기로 파일을 끌어넣어 rTorrent에 추가하세요.', - 'torrents.list.cannot.connect': 'rTorrent에 연결하지 못했습니다.', - 'torrent.list.peers': '{total} {of} {connected}', - 'torrent.list.peers.of': '중', - 'torrents.move.button.set.location': '경로 지정', - 'torrents.move.button.state.setting': '이동 중...', - 'torrents.move.data.label': '데이터 이동', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': '토렌트 경로 지정', - 'torrents.properties.date.added': '추가한 날', - 'torrents.properties.base.path': '기본 경로', - 'torrents.properties.comment': '설명', - 'torrents.properties.creation.date': '만든 날', - 'torrents.properties.download.speed': '다운로드 속도', - 'torrents.properties.download.total': '다운로드한 크기', - 'torrents.properties.eta': '예상 남은 시간', - 'torrents.properties.free.disk.space': '남은 디스크 공간', - 'torrents.properties.hash': '해시', - 'torrents.properties.ignore.schedule': '스케줄러 무시', - 'torrents.properties.is.private': '비공개', - 'torrents.properties.name': '이름', - 'torrents.properties.percentage': '완료율', - 'torrents.properties.ratio': '비율', - 'torrents.properties.size': '파일 크기', - 'torrents.properties.tags': '태그', - 'torrents.properties.tracker.message': '트래커 메시지', - 'torrents.properties.upload.speed': '업로드 속도', - 'torrents.properties.upload.total': '업로드 크기', - 'torrents.remove.are.you.sure': `정말 {count, plural, =0 {0개 토렌트를} =1 {토렌트 한 개를} other {#개 토렌트를}} 제거할까요?`, - 'torrents.remove.delete.data': '데이터 삭제', - 'torrents.remove.error.no.torrents.selected': '토렌트를 선택하지 않았습니다.', - 'torrents.remove': '토렌트 제거', - 'torrents.set.tags.button.set': '태그 지정', - 'torrents.set.tags.heading': '태그 지정', - 'torrents.set.tags.enter.tags': '태그 입력', - 'torrents.sort.title': '정렬 기준', - 'connection-interruption.heading': 'rTorrent에 연결하지 못했습니다', - 'connection-interruption.verify-settings-prompt': '연결 설정을 검증해보겠습니다.', - 'connection-interruption.verification-error': '연결을 검증하지 못했습니다.', - 'connection-interruption.verification-success': '연결 성공', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': '자동', -}; diff --git a/client/src/javascript/i18n/translations/ko.json b/client/src/javascript/i18n/translations/ko.json new file mode 100644 index 000000000..b05a3d0ef --- /dev/null +++ b/client/src/javascript/i18n/translations/ko.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "토렌트 시작", + "actionbar.button.stop.torrent": "토렌트 중지", + "actionbar.button.add.torrent": "토렌트 추가", + "actionbar.button.remove.torrent": "토렌트 제거", + "alert.torrent.add": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 추가했습니다.", + "alert.torrent.add.failed": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 추가하지 못했습니다.", + "alert.torrent.move": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 이동했습니다.", + "alert.torrent.move.failed": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 이동하지 못했습니다.", + "alert.torrent.remove": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 제거했습니다.", + "alert.torrent.remove.failed": "{countElement} {count, plural, =1 {토렌트} other {토렌트}}를 제거하지 못했습니다.", + "alert.settings.saved": "설정을 저장했습니다.", + "auth.add.user": "사용자 추가", + "auth.connectionType": "rTorrent 연결 종류", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "유닉스 소켓", + "auth.create.account": "계정 생성", + "auth.create.an.account": "계정 생성", + "auth.create.an.account.intro": "환영합니다, Flood입니다!", + "auth.current.user": "현재 사용자", + "auth.error.username.empty": "사용자 이름은 비어있을 수 없습니다.", + "auth.log.in": "로그인", + "auth.login": "로그인", + "auth.password": "비밀번호", + "auth.user.accounts": "사용자 계정", + "auth.username": "사용자 이름", + "auth.admin": "관리자", + "auth.message.not.admin": "관리자가 아닌 사용자입니다", + "auth.rtorrentHost": "rTorrent 호스트", + "auth.rtorrentPort": "rTorrent 포트", + "auth.rtorrentSocket": "rTorrent 소켓", + "auth.rtorrentSocketPath": "rTorrent 소켓 경로", + "button.add": "추가", + "button.cancel": "취소", + "button.no": "아니오", + "button.save": "설정 저장", + "button.save.feed": "Save", + "button.test": "테스트", + "button.state.adding": "추가 중...", + "button.yes": "예", + "button.new": "New", + "connectivity.modal.title": "연결 문제", + "connectivity.modal.content": "rTorrent에 연결하지 못했습니다. 지금, 설정을 고쳐주세요.", + "feeds.add.automatic.download.rule": "다운로드 규칙 추가", + "feeds.add.feed": "피드 추가", + "feeds.applicable.feed": "가용 피드", + "feeds.apply.tags": "태그 적용", + "feeds.exclude.pattern": "제외 패턴", + "feeds.existing.feeds": "설정된 피드", + "feeds.existing.rules": "설정된 규칙", + "feeds.label": "라벨", + "feeds.match.count": "{count, plural, =1 {# 일치} other {# 일치}}", + "feeds.match.pattern": "일치 패턴", + "feeds.match": "일치", + "feeds.exclude": "제외", + "feeds.no.feeds.available": "사용할 수 있는 피드가 없습니다.", + "feeds.no.feeds.defined": "지정된 피드가 없습니다.", + "feeds.no.rules.defined": "지정된 규칙이 없습니다.", + "feeds.regEx": "정규 표현식", + "feeds.select.feed": "피드 선택", + "feeds.select.interval": "간격", + "feeds.start.on.load": "시작 시 불러오기", + "feeds.tabs.download.rules": "다운로드 규칙", + "feeds.tabs.feeds": "피드", + "feeds.tabs.heading": "토렌트 피드", + "feeds.tags": "태그", + "feeds.time.hr": "{durationValue} 시간", + "feeds.time.min": "{durationValue} 분", + "feeds.time.day": "Days", + "feeds.torrent.destination": "토렌트 저장 경로", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "정규 표현식이 잘못되었습니다.", + "feeds.validation.must.select.feed": "피드를 선택해야 합니다.", + "feeds.validation.must.specify.destination": "저장할 경로를 지정해야 합니다.", + "feeds.validation.must.specify.label": "라벨을 지정해야 합니다.", + "feeds.validation.must.specify.valid.feed.url": "올바른 피드 URL을 지정해야 합니다.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "비어있는 디렉토리입니다.", + "filesystem.error.eacces": "Flood에 이 디렉토리를 읽을 권한이 없습니다.", + "filesystem.error.enoent": "없는 경로입니다. 생성될 것입니다.", + "filesystem.fetching": "디렉토리 구조 가져오는 중...", + "filter.all": "전체", + "filter.status.title": "필터: 상태", + "filter.status.downloading": "다운로드 중", + "filter.status.completed": "완료", + "filter.status.active": "활성", + "filter.status.inactive": "비활성", + "filter.status.error": "오류", + "filter.status.stopped": "중지", + "filter.status.checking": "Checking", + "filter.tracker.title": "필터: 트래커", + "filter.tag.title": "필터: 태그", + "filter.untagged": "태그 없음", + "general.ago": "전", + "general.at": "@", + "general.to": "-", + "general.of": "/", + "general.clipboard.copy": "복사", + "general.clipboard.copied": "복사됨", + "mediainfo.execError": "서버에서 미디어 정보를 가져오는 중 오류가 발생했습니다. mediainfo가 설치되어 있으며 Flood가 쓸 수 있도록 PATH가 지정되어 있는지 확인하세요.", + "mediainfo.fetching": "가져오는 중...", + "mediainfo.heading": "Mediainfo 출력", + "notification.torrent.finished.heading": "다운로드 완료", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "오류 보고", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "모두 지우기", + "notification.showing": "표시 중", + "priority.dont.download": "다운로드하지 않음", + "priority.high": "높음", + "priority.low": "낮음", + "priority.normal": "보통", + "settings.bandwidth.slots.download.divider.label": "다운로드 슬롯 나눌 값", + "settings.bandwidth.slots.download.global.label": "전체 다운로드 슬롯 개수", + "settings.bandwidth.slots.download.label": "토렌트당 다운로드 슬롯 개수", + "settings.bandwidth.slots.heading": "가용 슬롯", + "settings.bandwidth.slots.upload.divider.label": "업로드 슬롯 나눌 값", + "settings.bandwidth.slots.upload.global.label": "전체 업로드 슬롯 개수", + "settings.bandwidth.slots.upload.label": "토렌트당 업로드 슬롯 개수", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "드롭다운 메뉴 속도 목록: 다운로드", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "드롭다운 메뉴 속도 목록: 업로드", + "settings.bandwidth.transferrate.global.throttle.download": "전체 다운로드 속도 제한", + "settings.bandwidth.transferrate.global.throttle.upload": "전체 업로드 속도 제한", + "settings.bandwidth.transferrate.heading": "전송 속도 제한", + "settings.connectivity.dht.label": "DHT 사용", + "settings.connectivity.dht.port.label": "DHT 포트", + "settings.connectivity.dpd.heading": "탈중앙 피어 탐색", + "settings.connectivity.incoming.heading": "들어오는 연결", + "settings.connectivity.ip.hostname.label": "보고된 IP/호스트명", + "settings.connectivity.max.http.connections": "최대 HTTP 연결", + "settings.connectivity.peer.exchange.label": "피어 교환 사용", + "settings.connectivity.peers.desired.label": "희망 피어 수", + "settings.connectivity.peers.heading": "피어", + "settings.connectivity.peers.max.label": "최대 피어 수", + "settings.connectivity.peers.min.label": "최소 피어 수", + "settings.connectivity.peers.seeding.max.label": "시딩할 최대 피어 수", + "settings.connectivity.peers.seeding.min.label": "시딩할 최소 피어 수", + "settings.connectivity.port.open.label": "포트 열기", + "settings.connectivity.port.randomize.label": "임의 포트", + "settings.connectivity.port.range.label": "포트 범위", + "settings.resources.disk.check.hash.label": "완료 시 해시 검증", + "settings.resources.disk.download.location.label": "기본 다운로드 경로", + "settings.resources.disk.heading": "디스크", + "settings.resources.max.open.files": "최대 열어둘 파일 개수", + "settings.resources.memory.heading": "메모리", + "settings.resources.memory.max.label": "최대 메모리 사용량", + "settings.tabs.bandwidth": "대역폭", + "settings.tabs.connectivity": "연결", + "settings.tabs.heading": "설정", + "settings.tabs.resources": "자원", + "settings.tabs.authentication": "인증", + "settings.tabs.userinterface": "사용자 인터페이스", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "지역", + "settings.ui.language": "언어", + "settings.ui.torrent.list": "토렌트 목록 표시", + "settings.ui.torrent.size": "토렌트 크기", + "settings.ui.torrent.size.expanded": "확장 보기", + "settings.ui.torrent.size.condensed": "간략히 보기", + "settings.ui.torrent.details.enabled": "표시", + "settings.ui.torrent.details.tags.placement": "확장 보기에서는, 태그를 목록 끝에 배치하면 제일 잘 작동합니다.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "피드", + "sidebar.button.notifications": "알림", + "sidebar.button.settings": "설정", + "sidebar.button.speedlimits": "속도 제한", + "sidebar.button.log.out": "로그아웃", + "sidebar.search.placeholder": "토렌트 검색", + "sidebar.transferdata.downloaded": "다운로드한 크기", + "sidebar.transferdata.uploaded": "업로드한 크기", + "speed.unlimited": "무제한", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "년", + "unit.time.week": "주", + "unit.time.day": "일", + "unit.time.hour": "시", + "unit.time.minute": "분", + "unit.time.second": "초", + "unit.time.infinity": "∞", + "torrents.add.button.add": "토렌트 추가", + "torrents.add.destination.label": "저장 경로", + "torrents.add.destination.placeholder": "저장 경로", + "torrents.add.heading": "토렌트 추가", + "torrents.add.start.label": "토렌트 시작", + "torrents.add.tab.file.browse": "또는 클릭해서 파일 열기", + "torrents.add.tab.file.drop": "파일을 여기로 끌어넣거나,", + "torrents.add.tab.file.title": "파일", + "torrents.add.tab.url.input.placeholder": "토렌트 URL 또는 마그넷 주소", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "토렌트", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "기본 경로로 사용", + "torrents.details.actions.pause": "일시중지", + "torrents.details.actions.start": "시작", + "torrents.details.actions.stop": "중지", + "torrents.details.details": "속성", + "torrents.details.files": "파일", + "torrents.details.files.loading": "파일 목록 불러오는 중...", + "torrents.details.files.download.file": "{count, plural, =1 {선택한 파일 다운로드} other {선택한 파일 다운로드}}", + "torrents.details.general.comment": "설명", + "torrents.details.general.connected": "{total} 중 {connected} 연결됨", + "torrents.details.general.date.added": "추가한 날", + "torrents.details.general.date.created": "만든 날", + "torrents.details.general.downloaded": "다운로드한 크기", + "torrents.details.general.free.disk.space": "남은 디스크 공간", + "torrents.details.general.hash": "해시", + "torrents.details.general.heading.general": "일반", + "torrents.details.general.heading.torrent": "토렌트", + "torrents.details.general.heading.tracker": "트래커", + "torrents.details.general.heading.transfer": "전송", + "torrents.details.general.location": "다운로드 경로", + "torrents.details.general.none": "없음", + "torrents.details.general.peers": "피어", + "torrents.details.general.scheduler.ignored": "무시", + "torrents.details.general.scheduler.obeyed": "준수", + "torrents.details.general.scheduler": "스케줄러", + "torrents.details.general.seeds": "시드", + "torrents.details.general.size": "크기", + "torrents.details.general.tags": "태그", + "torrents.details.general.tracker.message": "트래커 메시지", + "torrents.details.general.type.private": "비공개", + "torrents.details.general.type.public": "공개", + "torrents.details.general.type": "종류", + "torrents.details.mediainfo": "미디어 정보", + "torrents.details.peers.no.data": "이 토렌트에는 피어 정보가 없습니다.", + "torrents.details.peers": "피어", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} 파일 선택} other {{countElement} 파일 선택}}", + "torrents.details.selected.files.set.priority": "우선순위 지정", + "torrents.details.trackers.no.data": "이 토렌트에는 트래커 정보가 없습니다.", + "torrents.details.trackers.type": "종류", + "torrents.details.trackers": "트래커", + "torrents.list.clear.filters": "필터 지우기", + "torrents.list.context.check.hash": "해시 검사", + "torrents.list.context.details": "토렌트 속성", + "torrents.list.context.move": "토렌트 위치 지정", + "torrents.list.context.pause": "일시중지", + "torrents.list.context.priority": "우선순위", + "torrents.list.context.remove": "제거", + "torrents.list.context.set.tags": "태그 지정", + "torrents.list.context.start": "시작", + "torrents.list.context.stop": "중지", + "torrents.list.no.torrents": "표시할 토렌트가 없습니다.", + "torrents.list.drop": "여기로 파일을 끌어넣어 rTorrent에 추가하세요.", + "torrents.list.cannot.connect": "rTorrent에 연결하지 못했습니다.", + "torrent.list.peers": "{total} {of} {connected}", + "torrent.list.peers.of": "중", + "torrents.move.button.set.location": "경로 지정", + "torrents.move.button.state.setting": "이동 중...", + "torrents.move.data.label": "데이터 이동", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "토렌트 경로 지정", + "torrents.properties.date.added": "추가한 날", + "torrents.properties.base.path": "기본 경로", + "torrents.properties.comment": "설명", + "torrents.properties.creation.date": "만든 날", + "torrents.properties.download.speed": "다운로드 속도", + "torrents.properties.download.total": "다운로드한 크기", + "torrents.properties.eta": "예상 남은 시간", + "torrents.properties.free.disk.space": "남은 디스크 공간", + "torrents.properties.hash": "해시", + "torrents.properties.ignore.schedule": "스케줄러 무시", + "torrents.properties.is.private": "비공개", + "torrents.properties.name": "이름", + "torrents.properties.percentage": "완료율", + "torrents.properties.ratio": "비율", + "torrents.properties.size": "파일 크기", + "torrents.properties.tags": "태그", + "torrents.properties.tracker.message": "트래커 메시지", + "torrents.properties.upload.speed": "업로드 속도", + "torrents.properties.upload.total": "업로드 크기", + "torrents.remove.are.you.sure": "정말 {count, plural, =0 {0개 토렌트를} =1 {토렌트 한 개를} other {#개 토렌트를}} 제거할까요?", + "torrents.remove.delete.data": "데이터 삭제", + "torrents.remove.error.no.torrents.selected": "토렌트를 선택하지 않았습니다.", + "torrents.remove": "토렌트 제거", + "torrents.set.tags.button.set": "태그 지정", + "torrents.set.tags.heading": "태그 지정", + "torrents.set.tags.enter.tags": "태그 입력", + "torrents.sort.title": "정렬 기준", + "connection-interruption.heading": "rTorrent에 연결하지 못했습니다", + "connection-interruption.verify-settings-prompt": "연결 설정을 검증해보겠습니다.", + "connection-interruption.verification-error": "연결을 검증하지 못했습니다.", + "connection-interruption.verification-success": "연결 성공", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "자동" +} diff --git a/client/src/javascript/i18n/translations/nl.js b/client/src/javascript/i18n/translations/nl.js deleted file mode 100644 index e47fa8120..000000000 --- a/client/src/javascript/i18n/translations/nl.js +++ /dev/null @@ -1,310 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Torrent toevoegen', - 'actionbar.button.remove.torrent': 'Verwijder Torrent', - 'alert.torrent.add': `Het toevoegen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.`, - 'alert.torrent.add.failed': `Het toevoegen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.`, - 'alert.torrent.move': `Het verplaatsen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.`, - 'alert.torrent.move.failed': `Het verplaatsen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.`, - 'alert.torrent.remove': `Het verwijderen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.`, - 'alert.torrent.remove.failed': `Het verwijderen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.`, - 'alert.settings.saved': 'Instellingen zijn opgeslagen.', - 'auth.add.user': 'Gebruiker toevoegen', - 'auth.connectionType': 'rTorrent type verbinding', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix socket', - 'auth.create.account': 'Maak account', - 'auth.create.an.account': 'Maak een account', - 'auth.create.an.account.intro': 'Welkom bij Flood!', - 'auth.current.user': 'Huidige gebruiker', - 'auth.error.username.empty': 'Gebruikersnaam mag niet leeg zijn.', - 'auth.log.in': 'Log in', - 'auth.login': 'Aanmelden', - 'auth.password': 'Wachtwoord', - 'auth.user.accounts': 'Accounts', - 'auth.username': 'Gebruikersnaam', - 'auth.admin': 'Beheerder', - 'auth.message.not.admin': 'Gebruiker is geen Beheerder', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Poort', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Pad', - 'button.add': 'Toevoegen', - 'button.cancel': 'Annuleren', - 'button.no': 'Nee', - 'button.save': 'Instellingen opslaan', - 'button.save.feed': 'Opslaan', - 'button.test': 'Test', - 'button.state.adding': 'Toevoegen...', - 'button.yes': 'Ja', - 'button.new': 'Nieuw', - 'connectivity.modal.title': 'Probleem met verbinding', - 'connectivity.modal.content': 'Kan geen verbinding maken met rTorrent. Update de informatie nu.', - 'feeds.add.automatic.download.rule': 'Regel toevoegen', - 'feeds.add.feed': 'Feed toevoegen', - 'feeds.applicable.feed': 'Feed', - 'feeds.apply.tags': 'Tags toevoegen', - 'feeds.exclude.pattern': 'Overslaan op patroon', - 'feeds.existing.feeds': 'Bestaande feeds', - 'feeds.existing.rules': 'Regels', - 'feeds.label': 'Omschrijving', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Overeenkomst op patroon', - 'feeds.match': 'Overeenkomst', - 'feeds.exclude': 'Uitsluiten', - 'feeds.no.feeds.available': 'Geen feeds beschikbaar.', - 'feeds.no.feeds.defined': 'Geen feeds toegevoegd.', - 'feeds.no.rules.defined': 'Geen regels toegevoegd.', - 'feeds.regEx': 'Reguliere expressie', - 'feeds.select.feed': 'Selecteer feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start na toevoegen', - 'feeds.tabs.download.rules': 'Regels', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent feeds', - 'feeds.tags': 'Labels', - 'feeds.time.hr': '{durationValue} uur', - 'feeds.time.min': '{durationValue} minuten', - 'feeds.time.day': 'dagen', - 'feeds.torrent.destination': 'Torrent downloadlocatie', - 'feeds.url': 'URL', - 'feeds.search': 'Zoek term', - 'feeds.validation.invalid.regular.expression': 'Fout in reguliere expressie.', - 'feeds.validation.must.select.feed': 'Je moet een feed selecteren.', - 'feeds.validation.must.specify.destination': 'Je moet een downloadlocatie opgeven.', - 'feeds.validation.must.specify.label': 'Je moet een label selecteren.', - 'feeds.validation.must.specify.valid.feed.url': 'Je moet een geldige feed URL opgeven.', - 'feeds.validation.interval.not.positive': 'Je moet een positief nummer opgeven.', - 'feeds.browse.feeds': 'Bekijk feeds', - 'filesystem.empty.directory': 'Lege map.', - 'filesystem.error.eacces': 'Flood heeft geen toestemming om deze map te lezen.', - 'filesystem.error.enoent': 'Dit pad bestaat niet. Het zal worden aangemaakt.', - 'filesystem.fetching': 'Ophalen van map structuur...', - 'filter.all': 'Alles', - 'filter.status.title': 'Filter op status', - 'filter.status.downloading': 'Downloaden', - 'filter.status.completed': 'Klaar', - 'filter.status.active': 'Actief', - 'filter.status.inactive': 'Inactief', - 'filter.status.error': 'Fout', - 'filter.status.stopped': 'Gestopt', - 'filter.status.checking': 'Controleren', - 'filter.tracker.title': 'Filter op tracker', - 'filter.tag.title': 'Filter op tag', - 'filter.untagged': 'Niet getagd', - 'general.ago': 'geleden', - 'general.at': 'bij', - 'general.to': 'naar', - 'general.of': 'van', - 'general.clipboard.copy': 'Kopiëren', - 'general.clipboard.copied': 'Gekoppeld', - 'mediainfo.execError': - 'Er is een fout opgetreden tijdens het uitvoeren van mediainfo op de server. Controleer of mediainformatie is geïnstalleerd en beschikbaar is in de PATH naar Flood.', - 'mediainfo.fetching': 'Ophalen...', - 'mediainfo.heading': 'Mediainfo Uitvoer', - 'notification.torrent.finished.heading': 'Downloaden voltooid', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Fout gerapporteerd', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Alles wissen', - 'notification.showing': 'Weergegeven', - 'priority.dont.download': 'Niet downloaden', - 'priority.high': 'Hoog', - 'priority.low': 'Laag', - 'priority.normal': 'Normaal', - 'settings.bandwidth.slots.download.divider.label': 'Download slots divider', - 'settings.bandwidth.slots.download.global.label': 'Download slots globaal', - 'settings.bandwidth.slots.download.label': 'Download slots per torrent', - 'settings.bandwidth.slots.heading': 'Slots', - 'settings.bandwidth.slots.upload.divider.label': 'Upload slots divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload slots globaal', - 'settings.bandwidth.slots.upload.label': 'Upload slots per torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown downloadbeperking items', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown uploadbeperking items', - 'settings.bandwidth.transferrate.global.throttle.download': 'Globale downloadbeperking', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Gobale uploadbeperking', - 'settings.bandwidth.transferrate.heading': 'Sneldheidsbeperkingen', - 'settings.connectivity.dht.label': 'Gebruik DHT', - 'settings.connectivity.dht.port.label': 'DHT Poort', - 'settings.connectivity.dpd.heading': 'Ongecentraliseerde Peer Ontdekking', - 'settings.connectivity.incoming.heading': 'Inkomende Connecties', - 'settings.connectivity.ip.hostname.label': 'Vermeld IP/Hostnaam', - 'settings.connectivity.max.http.connections': 'Maximaal aantal HTTP connecties', - 'settings.connectivity.peer.exchange.label': 'Gebruik Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Gewenst aantal peers', - 'settings.connectivity.peers.heading': 'Leechers', - 'settings.connectivity.peers.max.label': 'Maximaal aantal peers', - 'settings.connectivity.peers.min.label': 'Minimaal aantal peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximaal aantal peers seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimaal aantal peers seeding', - 'settings.connectivity.port.open.label': 'Open poort', - 'settings.connectivity.port.randomize.label': 'Willekeurige poort', - 'settings.connectivity.port.range.label': 'Poortbereik', - 'settings.resources.disk.check.hash.label': 'Controleer hash na downloaden', - 'settings.resources.disk.download.location.label': 'Standaard downloadlocatie', - 'settings.resources.disk.heading': 'Schijf', - 'settings.resources.max.open.files': 'Maximaal aantal open bestanden', - 'settings.resources.memory.heading': 'Geheugen', - 'settings.resources.memory.max.label': 'Maximaal geheugengebruik', - 'settings.tabs.bandwidth': 'Bandbreedte', - 'settings.tabs.connectivity': 'Connectiviteit', - 'settings.tabs.heading': 'Instellingen', - 'settings.tabs.resources': 'Hulpmiddelen', - 'settings.tabs.authentication': 'Authenticatie', - 'settings.tabs.userinterface': 'Gebruikersomgeving', - 'settings.tabs.diskusage': 'Schijf gebruik', - 'settings.tabs.about': 'Informatie', - 'settings.ui.locale': 'Landinstelling', - 'settings.ui.language': 'Taal', - 'settings.ui.torrent.list': 'Torrent Lijst Weergave', - 'settings.ui.torrent.size': 'Torrent Grootte', - 'settings.ui.torrent.size.expanded': 'Uitgebreide weergave', - 'settings.ui.torrent.size.condensed': 'Gecondenseerde weergave', - 'settings.ui.torrent.details.enabled': 'Ingeschakeld', - 'settings.ui.torrent.details.tags.placement': - 'In de uitgebreide weergave werken tags het beste aan het einde van de lijst.', - 'settings.ui.displayed.details': 'Torrent detail kolommen', - 'settings.diskusage.show': 'Weergeven', - 'settings.diskusage.mount.points': 'Tekenpunten voor schijfgebruik', - 'settings.about.flood': 'Over Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notificaties', - 'sidebar.button.settings': 'Instellingen', - 'sidebar.button.speedlimits': 'Sneldheidsbeperkingen', - 'sidebar.button.log.out': 'Log uit', - 'sidebar.search.placeholder': 'Zoek torrents', - 'sidebar.transferdata.downloaded': 'Gedownload', - 'sidebar.transferdata.uploaded': 'Geupload', - 'sidebar.speedlimits.download': 'DOWNLOAD', - 'sidebar.speedlimits.upload': 'UPLOAD', - 'speed.unlimited': 'Ongelimiteerd', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'KB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'j', - 'unit.time.week': 'w', - 'unit.time.day': 'd', - 'unit.time.hour': 'h', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Torrent toevoegen', - 'torrents.add.destination.label': 'Downloadlocatie', - 'torrents.add.destination.placeholder': 'Downloadlocatie', - 'torrents.add.heading': 'Torrents toevoegen', - 'torrents.add.start.label': 'Torrent starten', - 'torrents.add.tab.file.browse': 'of klik om te bladeren.', - 'torrents.add.tab.file.drop': 'Sleep bestanden hierheen,', - 'torrents.add.tab.file.title': 'Via bestand', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL', - 'torrents.add.tab.url.title': 'Via URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Labels', - 'torrents.destination.base_path': 'Gebruiken als basis pad', - 'torrents.details.actions.pause': 'Pauzeer', - 'torrents.details.actions.start': 'Starten', - 'torrents.details.actions.stop': 'Stoppen', - 'torrents.details.details': 'Beschrijving', - 'torrents.details.files': 'Bestanden', - 'torrents.details.files.loading': 'Bestand details laden...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download bestand} other {Download bestanden}}`, - 'torrents.details.general.comment': 'Opmerking', - 'torrents.details.general.connected': '{connected} verbonden van {total}', - 'torrents.details.general.date.added': 'Toegevoegd op', - 'torrents.details.general.date.created': 'Aangemaakt op', - 'torrents.details.general.downloaded': 'Gedownload', - 'torrents.details.general.free.disk.space': 'Vrije schijfruimte', - 'torrents.details.general.hash': 'Toegangssleutel', - 'torrents.details.general.heading.general': 'Algemeen', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Overdracht', - 'torrents.details.general.location': 'Downloadlocatie', - 'torrents.details.general.none': 'Geen', - 'torrents.details.general.peers': 'Leechers', - 'torrents.details.general.scheduler.ignored': 'Genegeerd', - 'torrents.details.general.scheduler.obeyed': 'Uitgevoerd', - 'torrents.details.general.scheduler': 'Taakplanner', - 'torrents.details.general.seeds': 'Seeders', - 'torrents.details.general.size': 'Grootte', - 'torrents.details.general.tags': 'Labels', - 'torrents.details.general.tracker.message': 'Bericht van tracker', - 'torrents.details.general.type.private': 'Privé', - 'torrents.details.general.type.public': 'Publiek', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Media Info', - 'torrents.details.peers.no.data': 'Er zijn geen peer-gegevens voor deze torrent.', - 'torrents.details.peers': 'Leechers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} bestand geselecteerd} other {{countElement} bestanden geselecteerd}}`, - 'torrents.details.selected.files.set.priority': 'Wijzig prioriteit', - 'torrents.details.trackers.no.data': 'Er zijn geen tracker-gegevens voor deze torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Wis filters', - 'torrents.list.context.check.hash': 'Controleer hash', - 'torrents.list.context.details': 'Torrent details', - 'torrents.list.context.move': 'Downloadlocatie...', - 'torrents.list.context.pause': 'Pauzeer', - 'torrents.list.context.download': 'Download', - 'torrents.list.context.priority': 'Prioriteit', - 'torrents.list.context.remove': 'Verwijder', - 'torrents.list.context.set.tags': 'Tags instellen', - 'torrents.list.context.start': 'Starten', - 'torrents.list.context.stop': 'Stoppen', - 'torrents.list.no.torrents': 'Geen torrents om te laten zien.', - 'torrents.list.drop': 'Sleep bestanden hier om ze toe te voegen aan Torrent.', - 'torrents.list.cannot.connect': 'Kan geen verbinding maken met rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'van', - 'torrents.move.button.set.location': 'Wijzig downloadlocatie', - 'torrents.move.button.state.setting': 'Wijzigen...', - 'torrents.move.data.label': 'Verplaats bestanden', - 'torrents.move.check_hash.label': 'Controleer hash', - 'torrents.move.heading': 'Wijzig downloadlocatie', - 'torrents.properties.date.added': 'Datum toegevoegd', - 'torrents.properties.base.path': 'Standaard pad', - 'torrents.properties.comment': 'Opmerking', - 'torrents.properties.creation.date': 'Aanmaak datum', - 'torrents.properties.download.speed': 'Downloadsnelheid', - 'torrents.properties.download.total': 'Gedownload', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Vrije schijfruimte', - 'torrents.properties.hash': 'Toegangssleutel', - 'torrents.properties.ignore.schedule': 'Negeer Taakplanner', - 'torrents.properties.is.private': 'Privé', - 'torrents.properties.name': 'Naam', - 'torrents.properties.percentage': 'Percentage compleet', - 'torrents.properties.ratio': 'Verhouding', - 'torrents.properties.size': 'Bestandsgrootte', - 'torrents.properties.tags': 'Labels', - 'torrents.properties.tracker.message': 'Tracker bericht', - 'torrents.properties.upload.speed': 'Uploadsnelheid', - 'torrents.properties.upload.total': 'Geupload', - 'torrents.properties.seeds': 'Seeders', - 'torrents.properties.peers': 'Peers', - 'torrents.properties.trackers': 'Trackers', - 'torrents.remove.are.you.sure': `Weet je zeker dat je {count, plural, =0 {geen torrents} =1 {één torrent} other {# torrents}} wilt verwijderen?`, - 'torrents.remove.delete.data': 'Gegevens verwijderen', - 'torrents.remove.error.no.torrents.selected': 'Je hebt geen torrents geselecteerd.', - 'torrents.remove': 'Torrents verwijderen', - 'torrents.set.tags.button.set': 'Tags instellen', - 'torrents.set.tags.heading': 'Tags instellen', - 'torrents.set.tags.enter.tags': 'Tags invoeren', - 'torrents.sort.title': 'Sorteer op', - 'connection-interruption.heading': 'Kan geen verbinding maken met rTorrent', - 'connection-interruption.verify-settings-prompt': 'Laten we je verbindingsinstellingen verifiëren.', - 'connection-interruption.verification-error': 'Verbinding kon niet worden geverifieerd.', - 'connection-interruption.verification-success': 'Verbinding succesvol', - 'status.diskusage.title': 'Schijf gebruik', - 'locale.language.auto': 'Automatisch', - 'window.title': '↓ {down} ↑ {up} - Flood', - 'dependency.loading.notifications': 'Notificaties', - 'dependency.loading.torrent.taxonomy': 'Torrent Taxonomie', - 'dependency.loading.transfer.rate.details': 'Gegevensoverdracht snelheid details', - 'dependency.loading.transfer.history': 'Gegevensoverdracht geschiedenis', - 'dependency.loading.torrent.list': 'Torrent lijst', -}; diff --git a/client/src/javascript/i18n/translations/nl.json b/client/src/javascript/i18n/translations/nl.json new file mode 100644 index 000000000..f1ef4e6c8 --- /dev/null +++ b/client/src/javascript/i18n/translations/nl.json @@ -0,0 +1,308 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Torrent toevoegen", + "actionbar.button.remove.torrent": "Verwijder Torrent", + "alert.torrent.add": "Het toevoegen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.", + "alert.torrent.add.failed": "Het toevoegen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.", + "alert.torrent.move": "Het verplaatsen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.", + "alert.torrent.move.failed": "Het verplaatsen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.", + "alert.torrent.remove": "Het verwijderen van {countElement} {count, plural, =1 {torrent} other {torrents}} is klaar.", + "alert.torrent.remove.failed": "Het verwijderen van {countElement} {count, plural, =1 {torrent} other {torrents}} is mislukt.", + "alert.settings.saved": "Instellingen zijn opgeslagen.", + "auth.add.user": "Gebruiker toevoegen", + "auth.connectionType": "rTorrent type verbinding", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix socket", + "auth.create.account": "Maak account", + "auth.create.an.account": "Maak een account", + "auth.create.an.account.intro": "Welkom bij Flood!", + "auth.current.user": "Huidige gebruiker", + "auth.error.username.empty": "Gebruikersnaam mag niet leeg zijn.", + "auth.log.in": "Log in", + "auth.login": "Aanmelden", + "auth.password": "Wachtwoord", + "auth.user.accounts": "Accounts", + "auth.username": "Gebruikersnaam", + "auth.admin": "Beheerder", + "auth.message.not.admin": "Gebruiker is geen Beheerder", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Poort", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Pad", + "button.add": "Toevoegen", + "button.cancel": "Annuleren", + "button.no": "Nee", + "button.save": "Instellingen opslaan", + "button.save.feed": "Opslaan", + "button.test": "Test", + "button.state.adding": "Toevoegen...", + "button.yes": "Ja", + "button.new": "Nieuw", + "connectivity.modal.title": "Probleem met verbinding", + "connectivity.modal.content": "Kan geen verbinding maken met rTorrent. Update de informatie nu.", + "feeds.add.automatic.download.rule": "Regel toevoegen", + "feeds.add.feed": "Feed toevoegen", + "feeds.applicable.feed": "Feed", + "feeds.apply.tags": "Tags toevoegen", + "feeds.exclude.pattern": "Overslaan op patroon", + "feeds.existing.feeds": "Bestaande feeds", + "feeds.existing.rules": "Regels", + "feeds.label": "Omschrijving", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Overeenkomst op patroon", + "feeds.match": "Overeenkomst", + "feeds.exclude": "Uitsluiten", + "feeds.no.feeds.available": "Geen feeds beschikbaar.", + "feeds.no.feeds.defined": "Geen feeds toegevoegd.", + "feeds.no.rules.defined": "Geen regels toegevoegd.", + "feeds.regEx": "Reguliere expressie", + "feeds.select.feed": "Selecteer feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start na toevoegen", + "feeds.tabs.download.rules": "Regels", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent feeds", + "feeds.tags": "Labels", + "feeds.time.hr": "{durationValue} uur", + "feeds.time.min": "{durationValue} minuten", + "feeds.time.day": "dagen", + "feeds.torrent.destination": "Torrent downloadlocatie", + "feeds.url": "URL", + "feeds.search": "Zoek term", + "feeds.validation.invalid.regular.expression": "Fout in reguliere expressie.", + "feeds.validation.must.select.feed": "Je moet een feed selecteren.", + "feeds.validation.must.specify.destination": "Je moet een downloadlocatie opgeven.", + "feeds.validation.must.specify.label": "Je moet een label selecteren.", + "feeds.validation.must.specify.valid.feed.url": "Je moet een geldige feed URL opgeven.", + "feeds.validation.interval.not.positive": "Je moet een positief nummer opgeven.", + "feeds.browse.feeds": "Bekijk feeds", + "filesystem.empty.directory": "Lege map.", + "filesystem.error.eacces": "Flood heeft geen toestemming om deze map te lezen.", + "filesystem.error.enoent": "Dit pad bestaat niet. Het zal worden aangemaakt.", + "filesystem.fetching": "Ophalen van map structuur...", + "filter.all": "Alles", + "filter.status.title": "Filter op status", + "filter.status.downloading": "Downloaden", + "filter.status.completed": "Klaar", + "filter.status.active": "Actief", + "filter.status.inactive": "Inactief", + "filter.status.error": "Fout", + "filter.status.stopped": "Gestopt", + "filter.status.checking": "Controleren", + "filter.tracker.title": "Filter op tracker", + "filter.tag.title": "Filter op tag", + "filter.untagged": "Niet getagd", + "general.ago": "geleden", + "general.at": "bij", + "general.to": "naar", + "general.of": "van", + "general.clipboard.copy": "Kopiëren", + "general.clipboard.copied": "Gekoppeld", + "mediainfo.execError": "Er is een fout opgetreden tijdens het uitvoeren van mediainfo op de server. Controleer of mediainformatie is geïnstalleerd en beschikbaar is in de PATH naar Flood.", + "mediainfo.fetching": "Ophalen...", + "mediainfo.heading": "Mediainfo Uitvoer", + "notification.torrent.finished.heading": "Downloaden voltooid", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Fout gerapporteerd", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Alles wissen", + "notification.showing": "Weergegeven", + "priority.dont.download": "Niet downloaden", + "priority.high": "Hoog", + "priority.low": "Laag", + "priority.normal": "Normaal", + "settings.bandwidth.slots.download.divider.label": "Download slots divider", + "settings.bandwidth.slots.download.global.label": "Download slots globaal", + "settings.bandwidth.slots.download.label": "Download slots per torrent", + "settings.bandwidth.slots.heading": "Slots", + "settings.bandwidth.slots.upload.divider.label": "Upload slots divider", + "settings.bandwidth.slots.upload.global.label": "Upload slots globaal", + "settings.bandwidth.slots.upload.label": "Upload slots per torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown downloadbeperking items", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown uploadbeperking items", + "settings.bandwidth.transferrate.global.throttle.download": "Globale downloadbeperking", + "settings.bandwidth.transferrate.global.throttle.upload": "Gobale uploadbeperking", + "settings.bandwidth.transferrate.heading": "Sneldheidsbeperkingen", + "settings.connectivity.dht.label": "Gebruik DHT", + "settings.connectivity.dht.port.label": "DHT Poort", + "settings.connectivity.dpd.heading": "Ongecentraliseerde Peer Ontdekking", + "settings.connectivity.incoming.heading": "Inkomende Connecties", + "settings.connectivity.ip.hostname.label": "Vermeld IP/Hostnaam", + "settings.connectivity.max.http.connections": "Maximaal aantal HTTP connecties", + "settings.connectivity.peer.exchange.label": "Gebruik Peer Exchange", + "settings.connectivity.peers.desired.label": "Gewenst aantal peers", + "settings.connectivity.peers.heading": "Leechers", + "settings.connectivity.peers.max.label": "Maximaal aantal peers", + "settings.connectivity.peers.min.label": "Minimaal aantal peers", + "settings.connectivity.peers.seeding.max.label": "Maximaal aantal peers seeding", + "settings.connectivity.peers.seeding.min.label": "Minimaal aantal peers seeding", + "settings.connectivity.port.open.label": "Open poort", + "settings.connectivity.port.randomize.label": "Willekeurige poort", + "settings.connectivity.port.range.label": "Poortbereik", + "settings.resources.disk.check.hash.label": "Controleer hash na downloaden", + "settings.resources.disk.download.location.label": "Standaard downloadlocatie", + "settings.resources.disk.heading": "Schijf", + "settings.resources.max.open.files": "Maximaal aantal open bestanden", + "settings.resources.memory.heading": "Geheugen", + "settings.resources.memory.max.label": "Maximaal geheugengebruik", + "settings.tabs.bandwidth": "Bandbreedte", + "settings.tabs.connectivity": "Connectiviteit", + "settings.tabs.heading": "Instellingen", + "settings.tabs.resources": "Hulpmiddelen", + "settings.tabs.authentication": "Authenticatie", + "settings.tabs.userinterface": "Gebruikersomgeving", + "settings.tabs.diskusage": "Schijf gebruik", + "settings.tabs.about": "Informatie", + "settings.ui.locale": "Landinstelling", + "settings.ui.language": "Taal", + "settings.ui.torrent.list": "Torrent Lijst Weergave", + "settings.ui.torrent.size": "Torrent Grootte", + "settings.ui.torrent.size.expanded": "Uitgebreide weergave", + "settings.ui.torrent.size.condensed": "Gecondenseerde weergave", + "settings.ui.torrent.details.enabled": "Ingeschakeld", + "settings.ui.torrent.details.tags.placement": "In de uitgebreide weergave werken tags het beste aan het einde van de lijst.", + "settings.ui.displayed.details": "Torrent detail kolommen", + "settings.diskusage.show": "Weergeven", + "settings.diskusage.mount.points": "Tekenpunten voor schijfgebruik", + "settings.about.flood": "Over Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notificaties", + "sidebar.button.settings": "Instellingen", + "sidebar.button.speedlimits": "Sneldheidsbeperkingen", + "sidebar.button.log.out": "Log uit", + "sidebar.search.placeholder": "Zoek torrents", + "sidebar.transferdata.downloaded": "Gedownload", + "sidebar.transferdata.uploaded": "Geupload", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Ongelimiteerd", + "unit.size.byte": "B", + "unit.size.kilobyte": "KB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "j", + "unit.time.week": "w", + "unit.time.day": "d", + "unit.time.hour": "h", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Torrent toevoegen", + "torrents.add.destination.label": "Downloadlocatie", + "torrents.add.destination.placeholder": "Downloadlocatie", + "torrents.add.heading": "Torrents toevoegen", + "torrents.add.start.label": "Torrent starten", + "torrents.add.tab.file.browse": "of klik om te bladeren.", + "torrents.add.tab.file.drop": "Sleep bestanden hierheen,", + "torrents.add.tab.file.title": "Via bestand", + "torrents.add.tab.url.input.placeholder": "Torrent URL", + "torrents.add.tab.url.title": "Via URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Labels", + "torrents.destination.base_path": "Gebruiken als basis pad", + "torrents.details.actions.pause": "Pauzeer", + "torrents.details.actions.start": "Starten", + "torrents.details.actions.stop": "Stoppen", + "torrents.details.details": "Beschrijving", + "torrents.details.files": "Bestanden", + "torrents.details.files.loading": "Bestand details laden...", + "torrents.details.files.download.file": "{count, plural, =1 {Download bestand} other {Download bestanden}}", + "torrents.details.general.comment": "Opmerking", + "torrents.details.general.connected": "{connected} verbonden van {total}", + "torrents.details.general.date.added": "Toegevoegd op", + "torrents.details.general.date.created": "Aangemaakt op", + "torrents.details.general.downloaded": "Gedownload", + "torrents.details.general.free.disk.space": "Vrije schijfruimte", + "torrents.details.general.hash": "Toegangssleutel", + "torrents.details.general.heading.general": "Algemeen", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Overdracht", + "torrents.details.general.location": "Downloadlocatie", + "torrents.details.general.none": "Geen", + "torrents.details.general.peers": "Leechers", + "torrents.details.general.scheduler.ignored": "Genegeerd", + "torrents.details.general.scheduler.obeyed": "Uitgevoerd", + "torrents.details.general.scheduler": "Taakplanner", + "torrents.details.general.seeds": "Seeders", + "torrents.details.general.size": "Grootte", + "torrents.details.general.tags": "Labels", + "torrents.details.general.tracker.message": "Bericht van tracker", + "torrents.details.general.type.private": "Privé", + "torrents.details.general.type.public": "Publiek", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Media Info", + "torrents.details.peers.no.data": "Er zijn geen peer-gegevens voor deze torrent.", + "torrents.details.peers": "Leechers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} bestand geselecteerd} other {{countElement} bestanden geselecteerd}}", + "torrents.details.selected.files.set.priority": "Wijzig prioriteit", + "torrents.details.trackers.no.data": "Er zijn geen tracker-gegevens voor deze torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Wis filters", + "torrents.list.context.check.hash": "Controleer hash", + "torrents.list.context.details": "Torrent details", + "torrents.list.context.move": "Downloadlocatie...", + "torrents.list.context.pause": "Pauzeer", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Prioriteit", + "torrents.list.context.remove": "Verwijder", + "torrents.list.context.set.tags": "Tags instellen", + "torrents.list.context.start": "Starten", + "torrents.list.context.stop": "Stoppen", + "torrents.list.no.torrents": "Geen torrents om te laten zien.", + "torrents.list.drop": "Sleep bestanden hier om ze toe te voegen aan Torrent.", + "torrents.list.cannot.connect": "Kan geen verbinding maken met rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "van", + "torrents.move.button.set.location": "Wijzig downloadlocatie", + "torrents.move.button.state.setting": "Wijzigen...", + "torrents.move.data.label": "Verplaats bestanden", + "torrents.move.check_hash.label": "Controleer hash", + "torrents.move.heading": "Wijzig downloadlocatie", + "torrents.properties.date.added": "Datum toegevoegd", + "torrents.properties.base.path": "Standaard pad", + "torrents.properties.comment": "Opmerking", + "torrents.properties.creation.date": "Aanmaak datum", + "torrents.properties.download.speed": "Downloadsnelheid", + "torrents.properties.download.total": "Gedownload", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Vrije schijfruimte", + "torrents.properties.hash": "Toegangssleutel", + "torrents.properties.ignore.schedule": "Negeer Taakplanner", + "torrents.properties.is.private": "Privé", + "torrents.properties.name": "Naam", + "torrents.properties.percentage": "Percentage compleet", + "torrents.properties.ratio": "Verhouding", + "torrents.properties.size": "Bestandsgrootte", + "torrents.properties.tags": "Labels", + "torrents.properties.tracker.message": "Tracker bericht", + "torrents.properties.upload.speed": "Uploadsnelheid", + "torrents.properties.upload.total": "Geupload", + "torrents.properties.seeds": "Seeders", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Weet je zeker dat je {count, plural, =0 {geen torrents} =1 {één torrent} other {# torrents}} wilt verwijderen?", + "torrents.remove.delete.data": "Gegevens verwijderen", + "torrents.remove.error.no.torrents.selected": "Je hebt geen torrents geselecteerd.", + "torrents.remove": "Torrents verwijderen", + "torrents.set.tags.button.set": "Tags instellen", + "torrents.set.tags.heading": "Tags instellen", + "torrents.set.tags.enter.tags": "Tags invoeren", + "torrents.sort.title": "Sorteer op", + "connection-interruption.heading": "Kan geen verbinding maken met rTorrent", + "connection-interruption.verify-settings-prompt": "Laten we je verbindingsinstellingen verifiëren.", + "connection-interruption.verification-error": "Verbinding kon niet worden geverifieerd.", + "connection-interruption.verification-success": "Verbinding succesvol", + "status.diskusage.title": "Schijf gebruik", + "locale.language.auto": "Automatisch", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notificaties", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomie", + "dependency.loading.transfer.rate.details": "Gegevensoverdracht snelheid details", + "dependency.loading.transfer.history": "Gegevensoverdracht geschiedenis", + "dependency.loading.torrent.list": "Torrent lijst" +} diff --git a/client/src/javascript/i18n/translations/no.js b/client/src/javascript/i18n/translations/no.js deleted file mode 100644 index eefc2b4a6..000000000 --- a/client/src/javascript/i18n/translations/no.js +++ /dev/null @@ -1,297 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start torrent', - 'actionbar.button.stop.torrent': 'Stopp torrent', - 'actionbar.button.add.torrent': 'Legg til torrent', - 'actionbar.button.remove.torrent': 'Fjern torrent', - 'alert.torrent.add': `Helt lagt til {countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.torrent.add.failed': `Kunne ikke legge til {countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.torrent.move': `{countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.torrent.move.failed': `Kunne ikke flytte {countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.torrent.remove': `Fjernet {countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.torrent.remove.failed': `Kunne ikke fjerne {countElement} {count, plural, =1 {torrent} other {torrenter}}`, - 'alert.settings.saved': 'Innstillingene ble lagret.', - 'auth.add.user': 'Legg til bruker', - 'auth.connectionType': 'rTorrent tilkoblingstype', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Enhetlig Socket', - 'auth.create.account': 'Opprett konto', - 'auth.create.an.account': 'Opprett en konto', - 'auth.create.an.account.intro': 'Velkommen til flommet!', - 'auth.current.user': 'Gjeldende bruker', - 'auth.error.username.empty': 'Brukernavnfeltet kan ikke være tomt.', - 'auth.log.in': 'Logg inn', - 'auth.login': 'Innlogging', - 'auth.password': 'Passord', - 'auth.user.accounts': 'Bruker kontoer', - 'auth.username': 'Brukernavn', - 'auth.admin': 'Administrator', - 'auth.message.not.admin': 'Brukeren er ikke Admin', - 'auth.rtorrentHost': 'rTorrent vert', - 'auth.rtorrentPort': 'rTorrent port', - 'auth.rtorrentSocket': 'rTorrent lomme', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Legg til', - 'button.cancel': 'Avbryt', - 'button.no': 'Nei', - 'button.save': 'Lagre innstillinger', - 'button.save.feed': 'Lagre', - 'button.test': 'Prøve', - 'button.state.adding': 'Legge til...', - 'button.yes': 'Ja', - 'button.new': 'Ny', - 'connectivity.modal.title': 'Tilkobling problem', - 'connectivity.modal.content': 'Kan ikke koble til rTorrent. Vennligst oppdater informasjonen nå.', - 'feeds.add.automatic.download.rule': 'Legg til regler for nedlasting', - 'feeds.add.feed': 'Legg til strøm', - 'feeds.applicable.feed': 'Gjeldende Feed', - 'feeds.apply.tags': 'Legg til etiketter', - 'feeds.exclude.pattern': 'Utelat Mønster', - 'feeds.existing.feeds': 'Eksisterende Feeder', - 'feeds.existing.rules': 'Eksisterende regler', - 'feeds.label': 'Etikett', - 'feeds.match.count': '{count, plural, =1 {# treff} other {# matcher}}', - 'feeds.match.pattern': 'Matchende mønster', - 'feeds.match': 'Kamp', - 'feeds.exclude': 'Ekskluder', - 'feeds.no.feeds.available': 'Ingen fôr tilgjengelig.', - 'feeds.no.feeds.defined': 'Ingen feeds definert.', - 'feeds.no.rules.defined': 'Ingen regler definert.', - 'feeds.regEx': 'RegEks', - 'feeds.select.feed': 'Velg mating', - 'feeds.select.interval': 'Intervall', - 'feeds.start.on.load': 'Start ved lasting', - 'feeds.tabs.download.rules': 'Last ned regler', - 'feeds.tabs.feeds': 'Strøm', - 'feeds.tabs.heading': 'Torrent Feeder', - 'feeds.tags': 'Tagger', - 'feeds.time.hr': 'Timer', - 'feeds.time.min': 'Minutter', - 'feeds.time.day': 'Dager', - 'feeds.torrent.destination': 'Torrent destinasjon', - 'feeds.url': 'Nettadresse', - 'feeds.search': 'Søk etter uttrykk', - 'feeds.validation.invalid.regular.expression': 'Ugyldig regulært uttrykk.', - 'feeds.validation.must.select.feed': 'Du må velge en mating.', - 'feeds.validation.must.specify.destination': 'Du må spesifisere en destinasjon.', - 'feeds.validation.must.specify.label': 'Du må angi en etikett.', - 'feeds.validation.must.specify.valid.feed.url': 'Du må angi en gyldig feed URL.', - 'feeds.browse.feeds': 'Bla gjennom fôr', - 'filesystem.empty.directory': 'Tom mappe.', - 'filesystem.error.eacces': 'Flom har ikke tillatelse til å lese denne mappen.', - 'filesystem.error.enoent': 'Denne stien finnes ikke. Den vil bli opprettet.', - 'filesystem.fetching': 'Henter mappestruktur char@@0', - 'filter.all': 'Alle', - 'filter.status.title': 'Filtrer etter status', - 'filter.status.downloading': 'Laster ned', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Aktiv', - 'filter.status.inactive': 'Inaktiv', - 'filter.status.error': 'Feil', - 'filter.status.stopped': 'Stoppet', - 'filter.status.checking': 'Kontrollerer', - 'filter.tracker.title': 'Filtrer etter tracker', - 'filter.tag.title': 'Filtrer etter tag', - 'filter.untagged': 'Umerket', - 'general.ago': 'siden', - 'general.at': 'på', - 'general.to': 'til', - 'general.of': 'av', - 'general.clipboard.copy': 'Kopier', - 'general.clipboard.copied': 'Kopiert', - 'mediainfo.execError': - 'Det oppstod en feil under kjøring av mediainfo på serveren. Sjekk at mediainfo er installert og tilgjengelig i PATH flom.', - 'mediainfo.fetching': 'Henter...', - 'mediainfo.heading': 'Mediainfo utdata', - 'notification.torrent.finished.heading': 'Nedlasting ferdig', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Feil rapportert', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Fjern alle', - 'notification.showing': 'Viser', - 'priority.dont.download': 'Ikke last ned', - 'priority.high': 'Høy', - 'priority.low': 'Lav', - 'priority.normal': 'Vanlig', - 'settings.bandwidth.slots.download.divider.label': 'Last ned loddrett divider', - 'settings.bandwidth.slots.download.global.label': 'Last ned slots Global', - 'settings.bandwidth.slots.download.label': 'Last ned slot per Torrent', - 'settings.bandwidth.slots.heading': 'Spor tilgjengelighet', - 'settings.bandwidth.slots.upload.divider.label': 'Last opp loddretting divider', - 'settings.bandwidth.slots.upload.global.label': 'Last opp plasser globalt', - 'settings.bandwidth.slots.upload.label': 'Last opp plasser per torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Forhåndsinnstillinger for rulleliste: Last ned', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Forhåndsinnstillinger for rulleliste: Last opp', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global nedlastingshastighet Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global opplastingshastighet Throttle', - 'settings.bandwidth.transferrate.heading': 'Overfør bokstaver', - 'settings.connectivity.dht.label': 'Aktiver DHT', - 'settings.connectivity.dht.port.label': 'DHT port', - 'settings.connectivity.dpd.heading': 'Desentralisert Peer Oppdagelse', - 'settings.connectivity.incoming.heading': 'Innkommende tilkoblinger', - 'settings.connectivity.ip.hostname.label': 'Rapportert IP/Vertsnavn', - 'settings.connectivity.max.http.connections': 'Maksimal HTTP-tilkobling (Automatic Translation)', - 'settings.connectivity.peer.exchange.label': 'Aktiver Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Mottakere utsendt', - 'settings.connectivity.peers.heading': 'Likemenn', - 'settings.connectivity.peers.max.label': 'Maksimalt antall kilder', - 'settings.connectivity.peers.min.label': 'Minimum klienter', - 'settings.connectivity.peers.seeding.max.label': 'Maks spredning til klienter', - 'settings.connectivity.peers.seeding.min.label': 'Minimum kilder for å dele', - 'settings.connectivity.port.open.label': 'Åpne port', - 'settings.connectivity.port.randomize.label': 'Tilfeldig port', - 'settings.connectivity.port.range.label': 'Port Rekkefølge', - 'settings.resources.disk.check.hash.label': 'Verifiser Hash ved ferdigstillelse', - 'settings.resources.disk.download.location.label': 'Standard nedlastingsmappe', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maksimalt antall åpne filer', - 'settings.resources.memory.heading': 'Minne', - 'settings.resources.memory.max.label': 'Maks minnebruk', - 'settings.tabs.bandwidth': 'Båndbredde', - 'settings.tabs.connectivity': 'Tilkobling', - 'settings.tabs.heading': 'Innstillinger', - 'settings.tabs.resources': 'Ressurser', - 'settings.tabs.authentication': 'Autentisering', - 'settings.tabs.userinterface': 'Brukers grensesnitt', - 'settings.tabs.diskusage': 'Bruk av diskplass', - 'settings.tabs.about': 'Om', - 'settings.ui.locale': 'Språk', - 'settings.ui.language': 'Språk', - 'settings.ui.torrent.list': 'Vis torrent liste', - 'settings.ui.torrent.size': 'Torrent størrelse', - 'settings.ui.torrent.size.expanded': 'Utvidet visning', - 'settings.ui.torrent.size.condensed': 'Kondensert visning', - 'settings.ui.torrent.details.enabled': 'Aktivert', - 'settings.ui.torrent.details.tags.placement': - 'I den utvidede visningen, fungerer merkelapper best på slutten av listen.', - 'settings.ui.displayed.details': 'Torrent Detalj kolonner', - 'settings.diskusage.show': 'Vis', - 'settings.diskusage.mount.points': 'Bruk diskens ridningspoeng', - 'settings.about.flood': 'Om Flood', - 'sidebar.button.feeds': 'Strøm', - 'sidebar.button.notifications': 'Varsler', - 'sidebar.button.settings': 'Innstillinger', - 'sidebar.button.speedlimits': 'Grenseverdier for hastighet', - 'sidebar.button.log.out': 'Logg ut', - 'sidebar.search.placeholder': 'Søk torrents', - 'sidebar.transferdata.downloaded': 'Nedlastet', - 'sidebar.transferdata.uploaded': 'Opplastet', - 'speed.unlimited': 'Ubegrenset', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'Mb', - 'unit.size.gigabyte': 'NO', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'uke', - 'unit.time.day': 'D', - 'unit.time.hour': 't', - 'unit.time.minute': 'min', - 'unit.time.second': 'S', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Legg til torrent', - 'torrents.add.destination.label': 'Mål', - 'torrents.add.destination.placeholder': 'Mål', - 'torrents.add.heading': 'Legge til torrenter', - 'torrents.add.start.label': 'Start torrent', - 'torrents.add.tab.file.browse': 'eller klikk for å bla gjennom', - 'torrents.add.tab.file.drop': 'Slipp noen filer her,', - 'torrents.add.tab.file.title': 'Etter fil', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL eller Magnet Link', - 'torrents.add.tab.url.title': 'Etter URL', - 'torrents.add.torrents.label': 'Torrenter', - 'torrents.add.tags': 'Tagger', - 'torrents.destination.base_path': 'Bruk som basis sti', - 'torrents.details.actions.pause': 'pause', - 'torrents.details.actions.start': 'Begynn', - 'torrents.details.actions.stop': 'Stopp', - 'torrents.details.details': 'Detaljer', - 'torrents.details.files': 'Filer', - 'torrents.details.files.loading': 'Laster fildetaljer...', - 'torrents.details.files.download.file': `{count, plural, =1 {Last ned filen} other {Last ned filer}}`, - 'torrents.details.general.comment': 'Kommentar', - 'torrents.details.general.connected': '{connected} koblet til {total}', - 'torrents.details.general.date.added': 'Lagt', - 'torrents.details.general.date.created': 'Opprettet dato', - 'torrents.details.general.downloaded': 'Nedlastet', - 'torrents.details.general.free.disk.space': 'Ledig diskplass', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Generelt', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Sporingsagent', - 'torrents.details.general.heading.transfer': 'Overfør', - 'torrents.details.general.location': 'Sted', - 'torrents.details.general.none': 'Ingen', - 'torrents.details.general.peers': 'Likemenn', - 'torrents.details.general.scheduler.ignored': 'Ignorert', - 'torrents.details.general.scheduler.obeyed': 'Uhørt', - 'torrents.details.general.scheduler': 'Oppgaveplanlegging', - 'torrents.details.general.seeds': 'Frø', - 'torrents.details.general.size': 'Størrelse', - 'torrents.details.general.tags': 'Tagger', - 'torrents.details.general.tracker.message': 'Melding om sporingsagent', - 'torrents.details.general.type.private': 'Privat', - 'torrents.details.general.type.public': 'Offentlig', - 'torrents.details.general.type': 'Type:', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Det er ingen kilder data for denne torren.', - 'torrents.details.peers': 'Likemenn', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} valgt fil} other {{countElement} valgte filer}}`, - 'torrents.details.selected.files.set.priority': 'Angi prioritet', - 'torrents.details.trackers.no.data': 'Det finnes ingen data for tracker for denne torren.', - 'torrents.details.trackers.type': 'Type:', - 'torrents.details.trackers': 'Sporere', - 'torrents.list.clear.filters': 'Fjern filtre', - 'torrents.list.context.check.hash': 'Sjekk Hash', - 'torrents.list.context.details': 'Torrent detaljer', - 'torrents.list.context.move': 'Angi torrent plassering', - 'torrents.list.context.pause': 'pause', - 'torrents.list.context.priority': 'Prioritet', - 'torrents.list.context.remove': 'Fjern', - 'torrents.list.context.set.tags': 'Angi Etiketter', - 'torrents.list.context.start': 'Begynn', - 'torrents.list.context.stop': 'Stopp', - 'torrents.list.no.torrents': 'Ingen torrenter å vise.', - 'torrents.list.drop': 'Slipp filer her for å legge dem til rTorrent.', - 'torrents.list.cannot.connect': 'Kan ikke koble til rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'av', - 'torrents.move.button.set.location': 'Angi sted', - 'torrents.move.button.state.setting': 'Innstillinger...', - 'torrents.move.data.label': 'Flytt data', - 'torrents.move.check_hash.label': 'Sjekk hash', - 'torrents.move.heading': 'Angi torrent plassering', - 'torrents.properties.date.added': 'Lagt', - 'torrents.properties.base.path': 'Basis sti', - 'torrents.properties.comment': 'Kommentar', - 'torrents.properties.creation.date': 'Opprettet dato', - 'torrents.properties.download.speed': 'Nedlastings hastighet', - 'torrents.properties.download.total': 'Nedlastet', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Ledig diskplass', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignorer planlegger', - 'torrents.properties.is.private': 'Privat', - 'torrents.properties.name': 'Navn', - 'torrents.properties.percentage': 'Prosent fullført', - 'torrents.properties.ratio': 'Forhold', - 'torrents.properties.size': 'Fil Størrelse', - 'torrents.properties.tags': 'Tagger', - 'torrents.properties.tracker.message': 'Melding om sporingsagent', - 'torrents.properties.upload.speed': 'Opplastnings hastighet', - 'torrents.properties.upload.total': 'Opplastet', - 'torrents.remove.are.you.sure': `Er du sikker på at du vil fjerne {count, plural, =1 {# torrent} other {# torrenter}}?`, - 'torrents.remove.delete.data': 'Slett data', - 'torrents.remove.error.no.torrents.selected': 'Du har ikke valgt noen torrenter.', - 'torrents.remove': 'Fjern torrenter', - 'torrents.set.tags.button.set': 'Angi Etiketter', - 'torrents.set.tags.heading': 'Angi Etiketter', - 'torrents.set.tags.enter.tags': 'Angi tagger', - 'torrents.sort.title': 'Sorter etter', - 'connection-interruption.heading': 'Kan ikke koble til rTorrent', - 'connection-interruption.verify-settings-prompt': 'La oss verifisere dine tilkoblingsinnstillinger.', - 'connection-interruption.verification-error': 'Tilkobling kunne ikke verifiseres.', - 'connection-interruption.verification-success': 'Tilkobling vellykket', - 'status.diskusage.title': 'Bruk av diskplass', - 'locale.language.auto': 'Automatisk', -}; diff --git a/client/src/javascript/i18n/translations/no.json b/client/src/javascript/i18n/translations/no.json new file mode 100644 index 000000000..849e4cc7f --- /dev/null +++ b/client/src/javascript/i18n/translations/no.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Start torrent", + "actionbar.button.stop.torrent": "Stopp torrent", + "actionbar.button.add.torrent": "Legg til torrent", + "actionbar.button.remove.torrent": "Fjern torrent", + "alert.torrent.add": "Helt lagt til {countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.torrent.add.failed": "Kunne ikke legge til {countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.torrent.move": "{countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.torrent.move.failed": "Kunne ikke flytte {countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.torrent.remove": "Fjernet {countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.torrent.remove.failed": "Kunne ikke fjerne {countElement} {count, plural, =1 {torrent} other {torrenter}}", + "alert.settings.saved": "Innstillingene ble lagret.", + "auth.add.user": "Legg til bruker", + "auth.connectionType": "rTorrent tilkoblingstype", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Enhetlig Socket", + "auth.create.account": "Opprett konto", + "auth.create.an.account": "Opprett en konto", + "auth.create.an.account.intro": "Velkommen til flommet!", + "auth.current.user": "Gjeldende bruker", + "auth.error.username.empty": "Brukernavnfeltet kan ikke være tomt.", + "auth.log.in": "Logg inn", + "auth.login": "Innlogging", + "auth.password": "Passord", + "auth.user.accounts": "Bruker kontoer", + "auth.username": "Brukernavn", + "auth.admin": "Administrator", + "auth.message.not.admin": "Brukeren er ikke Admin", + "auth.rtorrentHost": "rTorrent vert", + "auth.rtorrentPort": "rTorrent port", + "auth.rtorrentSocket": "rTorrent lomme", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Legg til", + "button.cancel": "Avbryt", + "button.no": "Nei", + "button.save": "Lagre innstillinger", + "button.save.feed": "Lagre", + "button.test": "Prøve", + "button.state.adding": "Legge til...", + "button.yes": "Ja", + "button.new": "Ny", + "connectivity.modal.title": "Tilkobling problem", + "connectivity.modal.content": "Kan ikke koble til rTorrent. Vennligst oppdater informasjonen nå.", + "feeds.add.automatic.download.rule": "Legg til regler for nedlasting", + "feeds.add.feed": "Legg til strøm", + "feeds.applicable.feed": "Gjeldende Feed", + "feeds.apply.tags": "Legg til etiketter", + "feeds.exclude.pattern": "Utelat Mønster", + "feeds.existing.feeds": "Eksisterende Feeder", + "feeds.existing.rules": "Eksisterende regler", + "feeds.label": "Etikett", + "feeds.match.count": "{count, plural, =1 {# treff} other {# matcher}}", + "feeds.match.pattern": "Matchende mønster", + "feeds.match": "Kamp", + "feeds.exclude": "Ekskluder", + "feeds.no.feeds.available": "Ingen fôr tilgjengelig.", + "feeds.no.feeds.defined": "Ingen feeds definert.", + "feeds.no.rules.defined": "Ingen regler definert.", + "feeds.regEx": "RegEks", + "feeds.select.feed": "Velg mating", + "feeds.select.interval": "Intervall", + "feeds.start.on.load": "Start ved lasting", + "feeds.tabs.download.rules": "Last ned regler", + "feeds.tabs.feeds": "Strøm", + "feeds.tabs.heading": "Torrent Feeder", + "feeds.tags": "Tagger", + "feeds.time.hr": "Timer", + "feeds.time.min": "Minutter", + "feeds.time.day": "Dager", + "feeds.torrent.destination": "Torrent destinasjon", + "feeds.url": "Nettadresse", + "feeds.search": "Søk etter uttrykk", + "feeds.validation.invalid.regular.expression": "Ugyldig regulært uttrykk.", + "feeds.validation.must.select.feed": "Du må velge en mating.", + "feeds.validation.must.specify.destination": "Du må spesifisere en destinasjon.", + "feeds.validation.must.specify.label": "Du må angi en etikett.", + "feeds.validation.must.specify.valid.feed.url": "Du må angi en gyldig feed URL.", + "feeds.browse.feeds": "Bla gjennom fôr", + "filesystem.empty.directory": "Tom mappe.", + "filesystem.error.eacces": "Flom har ikke tillatelse til å lese denne mappen.", + "filesystem.error.enoent": "Denne stien finnes ikke. Den vil bli opprettet.", + "filesystem.fetching": "Henter mappestruktur char@@0", + "filter.all": "Alle", + "filter.status.title": "Filtrer etter status", + "filter.status.downloading": "Laster ned", + "filter.status.completed": "Complete", + "filter.status.active": "Aktiv", + "filter.status.inactive": "Inaktiv", + "filter.status.error": "Feil", + "filter.status.stopped": "Stoppet", + "filter.status.checking": "Kontrollerer", + "filter.tracker.title": "Filtrer etter tracker", + "filter.tag.title": "Filtrer etter tag", + "filter.untagged": "Umerket", + "general.ago": "siden", + "general.at": "på", + "general.to": "til", + "general.of": "av", + "general.clipboard.copy": "Kopier", + "general.clipboard.copied": "Kopiert", + "mediainfo.execError": "Det oppstod en feil under kjøring av mediainfo på serveren. Sjekk at mediainfo er installert og tilgjengelig i PATH flom.", + "mediainfo.fetching": "Henter...", + "mediainfo.heading": "Mediainfo utdata", + "notification.torrent.finished.heading": "Nedlasting ferdig", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Feil rapportert", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Fjern alle", + "notification.showing": "Viser", + "priority.dont.download": "Ikke last ned", + "priority.high": "Høy", + "priority.low": "Lav", + "priority.normal": "Vanlig", + "settings.bandwidth.slots.download.divider.label": "Last ned loddrett divider", + "settings.bandwidth.slots.download.global.label": "Last ned slots Global", + "settings.bandwidth.slots.download.label": "Last ned slot per Torrent", + "settings.bandwidth.slots.heading": "Spor tilgjengelighet", + "settings.bandwidth.slots.upload.divider.label": "Last opp loddretting divider", + "settings.bandwidth.slots.upload.global.label": "Last opp plasser globalt", + "settings.bandwidth.slots.upload.label": "Last opp plasser per torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Forhåndsinnstillinger for rulleliste: Last ned", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Forhåndsinnstillinger for rulleliste: Last opp", + "settings.bandwidth.transferrate.global.throttle.download": "Global nedlastingshastighet Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global opplastingshastighet Throttle", + "settings.bandwidth.transferrate.heading": "Overfør bokstaver", + "settings.connectivity.dht.label": "Aktiver DHT", + "settings.connectivity.dht.port.label": "DHT port", + "settings.connectivity.dpd.heading": "Desentralisert Peer Oppdagelse", + "settings.connectivity.incoming.heading": "Innkommende tilkoblinger", + "settings.connectivity.ip.hostname.label": "Rapportert IP/Vertsnavn", + "settings.connectivity.max.http.connections": "Maksimal HTTP-tilkobling (Automatic Translation)", + "settings.connectivity.peer.exchange.label": "Aktiver Peer Exchange", + "settings.connectivity.peers.desired.label": "Mottakere utsendt", + "settings.connectivity.peers.heading": "Likemenn", + "settings.connectivity.peers.max.label": "Maksimalt antall kilder", + "settings.connectivity.peers.min.label": "Minimum klienter", + "settings.connectivity.peers.seeding.max.label": "Maks spredning til klienter", + "settings.connectivity.peers.seeding.min.label": "Minimum kilder for å dele", + "settings.connectivity.port.open.label": "Åpne port", + "settings.connectivity.port.randomize.label": "Tilfeldig port", + "settings.connectivity.port.range.label": "Port Rekkefølge", + "settings.resources.disk.check.hash.label": "Verifiser Hash ved ferdigstillelse", + "settings.resources.disk.download.location.label": "Standard nedlastingsmappe", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maksimalt antall åpne filer", + "settings.resources.memory.heading": "Minne", + "settings.resources.memory.max.label": "Maks minnebruk", + "settings.tabs.bandwidth": "Båndbredde", + "settings.tabs.connectivity": "Tilkobling", + "settings.tabs.heading": "Innstillinger", + "settings.tabs.resources": "Ressurser", + "settings.tabs.authentication": "Autentisering", + "settings.tabs.userinterface": "Brukers grensesnitt", + "settings.tabs.diskusage": "Bruk av diskplass", + "settings.tabs.about": "Om", + "settings.ui.locale": "Språk", + "settings.ui.language": "Språk", + "settings.ui.torrent.list": "Vis torrent liste", + "settings.ui.torrent.size": "Torrent størrelse", + "settings.ui.torrent.size.expanded": "Utvidet visning", + "settings.ui.torrent.size.condensed": "Kondensert visning", + "settings.ui.torrent.details.enabled": "Aktivert", + "settings.ui.torrent.details.tags.placement": "I den utvidede visningen, fungerer merkelapper best på slutten av listen.", + "settings.ui.displayed.details": "Torrent Detalj kolonner", + "settings.diskusage.show": "Vis", + "settings.diskusage.mount.points": "Bruk diskens ridningspoeng", + "settings.about.flood": "Om Flood", + "sidebar.button.feeds": "Strøm", + "sidebar.button.notifications": "Varsler", + "sidebar.button.settings": "Innstillinger", + "sidebar.button.speedlimits": "Grenseverdier for hastighet", + "sidebar.button.log.out": "Logg ut", + "sidebar.search.placeholder": "Søk torrents", + "sidebar.transferdata.downloaded": "Nedlastet", + "sidebar.transferdata.uploaded": "Opplastet", + "speed.unlimited": "Ubegrenset", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "Mb", + "unit.size.gigabyte": "NO", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "uke", + "unit.time.day": "D", + "unit.time.hour": "t", + "unit.time.minute": "min", + "unit.time.second": "S", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Legg til torrent", + "torrents.add.destination.label": "Mål", + "torrents.add.destination.placeholder": "Mål", + "torrents.add.heading": "Legge til torrenter", + "torrents.add.start.label": "Start torrent", + "torrents.add.tab.file.browse": "eller klikk for å bla gjennom", + "torrents.add.tab.file.drop": "Slipp noen filer her,", + "torrents.add.tab.file.title": "Etter fil", + "torrents.add.tab.url.input.placeholder": "Torrent URL eller Magnet Link", + "torrents.add.tab.url.title": "Etter URL", + "torrents.add.torrents.label": "Torrenter", + "torrents.add.tags": "Tagger", + "torrents.destination.base_path": "Bruk som basis sti", + "torrents.details.actions.pause": "pause", + "torrents.details.actions.start": "Begynn", + "torrents.details.actions.stop": "Stopp", + "torrents.details.details": "Detaljer", + "torrents.details.files": "Filer", + "torrents.details.files.loading": "Laster fildetaljer...", + "torrents.details.files.download.file": "{count, plural, =1 {Last ned filen} other {Last ned filer}}", + "torrents.details.general.comment": "Kommentar", + "torrents.details.general.connected": "{connected} koblet til {total}", + "torrents.details.general.date.added": "Lagt", + "torrents.details.general.date.created": "Opprettet dato", + "torrents.details.general.downloaded": "Nedlastet", + "torrents.details.general.free.disk.space": "Ledig diskplass", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Generelt", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Sporingsagent", + "torrents.details.general.heading.transfer": "Overfør", + "torrents.details.general.location": "Sted", + "torrents.details.general.none": "Ingen", + "torrents.details.general.peers": "Likemenn", + "torrents.details.general.scheduler.ignored": "Ignorert", + "torrents.details.general.scheduler.obeyed": "Uhørt", + "torrents.details.general.scheduler": "Oppgaveplanlegging", + "torrents.details.general.seeds": "Frø", + "torrents.details.general.size": "Størrelse", + "torrents.details.general.tags": "Tagger", + "torrents.details.general.tracker.message": "Melding om sporingsagent", + "torrents.details.general.type.private": "Privat", + "torrents.details.general.type.public": "Offentlig", + "torrents.details.general.type": "Type:", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Det er ingen kilder data for denne torren.", + "torrents.details.peers": "Likemenn", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} valgt fil} other {{countElement} valgte filer}}", + "torrents.details.selected.files.set.priority": "Angi prioritet", + "torrents.details.trackers.no.data": "Det finnes ingen data for tracker for denne torren.", + "torrents.details.trackers.type": "Type:", + "torrents.details.trackers": "Sporere", + "torrents.list.clear.filters": "Fjern filtre", + "torrents.list.context.check.hash": "Sjekk Hash", + "torrents.list.context.details": "Torrent detaljer", + "torrents.list.context.move": "Angi torrent plassering", + "torrents.list.context.pause": "pause", + "torrents.list.context.priority": "Prioritet", + "torrents.list.context.remove": "Fjern", + "torrents.list.context.set.tags": "Angi Etiketter", + "torrents.list.context.start": "Begynn", + "torrents.list.context.stop": "Stopp", + "torrents.list.no.torrents": "Ingen torrenter å vise.", + "torrents.list.drop": "Slipp filer her for å legge dem til rTorrent.", + "torrents.list.cannot.connect": "Kan ikke koble til rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "av", + "torrents.move.button.set.location": "Angi sted", + "torrents.move.button.state.setting": "Innstillinger...", + "torrents.move.data.label": "Flytt data", + "torrents.move.check_hash.label": "Sjekk hash", + "torrents.move.heading": "Angi torrent plassering", + "torrents.properties.date.added": "Lagt", + "torrents.properties.base.path": "Basis sti", + "torrents.properties.comment": "Kommentar", + "torrents.properties.creation.date": "Opprettet dato", + "torrents.properties.download.speed": "Nedlastings hastighet", + "torrents.properties.download.total": "Nedlastet", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Ledig diskplass", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignorer planlegger", + "torrents.properties.is.private": "Privat", + "torrents.properties.name": "Navn", + "torrents.properties.percentage": "Prosent fullført", + "torrents.properties.ratio": "Forhold", + "torrents.properties.size": "Fil Størrelse", + "torrents.properties.tags": "Tagger", + "torrents.properties.tracker.message": "Melding om sporingsagent", + "torrents.properties.upload.speed": "Opplastnings hastighet", + "torrents.properties.upload.total": "Opplastet", + "torrents.remove.are.you.sure": "Er du sikker på at du vil fjerne {count, plural, =1 {# torrent} other {# torrenter}}?", + "torrents.remove.delete.data": "Slett data", + "torrents.remove.error.no.torrents.selected": "Du har ikke valgt noen torrenter.", + "torrents.remove": "Fjern torrenter", + "torrents.set.tags.button.set": "Angi Etiketter", + "torrents.set.tags.heading": "Angi Etiketter", + "torrents.set.tags.enter.tags": "Angi tagger", + "torrents.sort.title": "Sorter etter", + "connection-interruption.heading": "Kan ikke koble til rTorrent", + "connection-interruption.verify-settings-prompt": "La oss verifisere dine tilkoblingsinnstillinger.", + "connection-interruption.verification-error": "Tilkobling kunne ikke verifiseres.", + "connection-interruption.verification-success": "Tilkobling vellykket", + "status.diskusage.title": "Bruk av diskplass", + "locale.language.auto": "Automatisk" +} diff --git a/client/src/javascript/i18n/translations/pl.js b/client/src/javascript/i18n/translations/pl.js deleted file mode 100644 index f32d1b91e..000000000 --- a/client/src/javascript/i18n/translations/pl.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Uruchom torrent', - 'actionbar.button.stop.torrent': 'Zatrzymaj torrent', - 'actionbar.button.add.torrent': 'Dodaj torrent', - 'actionbar.button.remove.torrent': 'Usuń torrent', - 'alert.torrent.add': `Pomyślnie dodano {countElement} {count, plural, =1 {torrent} other {torrenty}}.`, - 'alert.torrent.add.failed': `Nie udało się dodać {countElement} {count, plural, =1 {torrent} other {torrenty}}.`, - 'alert.torrent.move': `Pomyślnie przeniesiono {countElement} {count, plural, =1 {torrenty} other {torrenty}}.`, - 'alert.torrent.move.failed': `Nie udało się przenieść {countElement} {count, plural, =1 {torrentów} other {torrentów}}.`, - 'alert.torrent.remove': `Pomyślnie usunięto {countElement} {count, plural, =1 {torrenty} other {torrenty}}.`, - 'alert.torrent.remove.failed': `Nie udało się usunąć {countElement} {count, plural, =1 {torrentów} other {torrentów}}.`, - 'alert.settings.saved': 'Zapisano ustawienia.', - 'auth.add.user': 'Dodaj użytkownika', - 'auth.connectionType': 'Typ połączenia rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Socket Unix', - 'auth.create.account': 'Utwórz konto', - 'auth.create.an.account': 'Utwórz konto', - 'auth.create.an.account.intro': 'Witaj w powodzie!', - 'auth.current.user': 'Bieżący użytkownik', - 'auth.error.username.empty': 'Nazwa użytkownika nie może być pusta.', - 'auth.log.in': 'Zaloguj się', - 'auth.login': 'Logowanie', - 'auth.password': 'Hasło', - 'auth.user.accounts': 'Konta użytkowników', - 'auth.username': 'Nazwa użytkownika', - 'auth.admin': 'Administrator', - 'auth.message.not.admin': 'Użytkownik nie jest administratorem', - 'auth.rtorrentHost': 'Host rTorrent', - 'auth.rtorrentPort': 'Port rTorrent', - 'auth.rtorrentSocket': 'Skieszonka rTorrent', - 'auth.rtorrentSocketPath': 'Ścieżka do gniazda rTorrent', - 'button.add': 'Dodaj', - 'button.cancel': 'Anuluj', - 'button.no': 'Nie', - 'button.save': 'Zapisz ustawienia', - 'button.save.feed': 'Zapisz', - 'button.test': 'Badanie', - 'button.state.adding': 'Dodawanie...', - 'button.yes': 'Tak', - 'button.new': 'Nowy', - 'connectivity.modal.title': 'Problem z połączeniem', - 'connectivity.modal.content': 'Nie można połączyć się z rTorrent. Proszę zaktualizować informacje teraz.', - 'feeds.add.automatic.download.rule': 'Dodaj regułę pobierania', - 'feeds.add.feed': 'Dodaj kanał', - 'feeds.applicable.feed': 'Stosowany kanał', - 'feeds.apply.tags': 'Zastosuj tagi', - 'feeds.exclude.pattern': 'Wyklucz wzór', - 'feeds.existing.feeds': 'Istniejące kanały', - 'feeds.existing.rules': 'Istniejące reguły', - 'feeds.label': 'Etykieta', - 'feeds.match.count': '{count, plural, =1 {# pasuje do} other {# pasuje do}}', - 'feeds.match.pattern': 'Wzorzec dopasowania', - 'feeds.match': 'Dopasowanie', - 'feeds.exclude': 'Wyklucz', - 'feeds.no.feeds.available': 'Brak dostępnych kanałów.', - 'feeds.no.feeds.defined': 'Nie zdefiniowano kanałów.', - 'feeds.no.rules.defined': 'Nie zdefiniowano reguł.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Wybierz kanał', - 'feeds.select.interval': 'Interwał', - 'feeds.start.on.load': 'Zacznij od załadowania', - 'feeds.tabs.download.rules': 'Zasady pobierania', - 'feeds.tabs.feeds': 'Kanały', - 'feeds.tabs.heading': 'Kanały torrent', - 'feeds.tags': 'Tagi', - 'feeds.time.hr': 'Godziny', - 'feeds.time.min': 'Protokoły', - 'feeds.time.day': 'Dni', - 'feeds.torrent.destination': 'Przeznaczenie torrentów', - 'feeds.url': 'Adres URL', - 'feeds.search': 'Szukaj frazy', - 'feeds.validation.invalid.regular.expression': 'Nieprawidłowe wyrażenie regularne.', - 'feeds.validation.must.select.feed': 'Musisz wybrać kanał.', - 'feeds.validation.must.specify.destination': 'Musisz określić miejsce docelowe.', - 'feeds.validation.must.specify.label': 'Musisz określić etykietę.', - 'feeds.validation.must.specify.valid.feed.url': 'Musisz podać poprawny adres URL kanału.', - 'feeds.browse.feeds': 'Przeglądaj kanały', - 'filesystem.empty.directory': 'Pusty katalog.', - 'filesystem.error.eacces': 'Powódź nie ma uprawnień do odczytu tego katalogu.', - 'filesystem.error.enoent': 'Ta ścieżka nie istnieje. Zostanie utworzona.', - 'filesystem.fetching': 'Pobieranie struktury katalogu...', - 'filter.all': 'Wszystkie', - 'filter.status.title': 'Filtruj według statusu', - 'filter.status.downloading': 'Pobieranie', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Aktywne', - 'filter.status.inactive': 'Nieaktywny', - 'filter.status.error': 'Błąd', - 'filter.status.stopped': 'Zatrzymano', - 'filter.status.checking': 'Sprawdzanie', - 'filter.tracker.title': 'Filtruj według trackera', - 'filter.tag.title': 'Filtruj według tagu', - 'filter.untagged': 'Nietagowane', - 'general.ago': 'temu', - 'general.at': 'w', - 'general.to': 'do', - 'general.of': 'z', - 'general.clipboard.copy': 'Kopiuj', - 'general.clipboard.copied': 'Skopiowano', - 'mediainfo.execError': - 'Wystąpił błąd podczas uruchamiania mediainfo na serwerze. Sprawdź, czy mediainfo jest zainstalowany i dostępny w PATH do powodzi.', - 'mediainfo.fetching': 'Pobieranie...', - 'mediainfo.heading': 'Wyjście Mediainfo', - 'notification.torrent.finished.heading': 'Pobieranie zakończone', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Błąd zgłoszony', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Wyczyść wszystko', - 'notification.showing': 'Wyświetlanie', - 'priority.dont.download': 'Nie pobieraj', - 'priority.high': 'Wysoka', - 'priority.low': 'Niski', - 'priority.normal': 'Normalny', - 'settings.bandwidth.slots.download.divider.label': 'Pobierz dzielnik slotów', - 'settings.bandwidth.slots.download.global.label': 'Pobierz gniazda globalne', - 'settings.bandwidth.slots.download.label': 'Pobierz miejsca na torrent', - 'settings.bandwidth.slots.heading': 'Dostępność miejsca', - 'settings.bandwidth.slots.upload.divider.label': 'Prześlij Dziedzictwo Slotów', - 'settings.bandwidth.slots.upload.global.label': 'Prześlij Sloty globalne', - 'settings.bandwidth.slots.upload.label': 'Prześlij Sloty na torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Rozwijane ustawienia: Pobierz', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Rozwijane ustawienia: Załaduj', - 'settings.bandwidth.transferrate.global.throttle.download': 'Globalna przepustnica szybkości pobierania', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Globalna przepustnica Szybkości Wysyłania', - 'settings.bandwidth.transferrate.heading': 'Prędkość transferu przepustnicy', - 'settings.connectivity.dht.label': 'Włącz DHT', - 'settings.connectivity.dht.port.label': 'Port DHT', - 'settings.connectivity.dpd.heading': 'Odkrycie zdecentralizowanego peera', - 'settings.connectivity.incoming.heading': 'Połączenia przychodzące', - 'settings.connectivity.ip.hostname.label': 'Zgłoszone IP/nazwa hosta', - 'settings.connectivity.max.http.connections': 'Maksymalna liczba połączeń HTTP', - 'settings.connectivity.peer.exchange.label': 'Włącz wymianę peer', - 'settings.connectivity.peers.desired.label': 'Pożądane rówieśniki', - 'settings.connectivity.peers.heading': 'Uczestnicy', - 'settings.connectivity.peers.max.label': 'Maksymalna liczba peerów', - 'settings.connectivity.peers.min.label': 'Minimalna liczba peerów', - 'settings.connectivity.peers.seeding.max.label': 'Maksymalna ilość seedów peerów', - 'settings.connectivity.peers.seeding.min.label': 'Minimalne seedowanie peerów', - 'settings.connectivity.port.open.label': 'Otwórz port', - 'settings.connectivity.port.randomize.label': 'Losowy port', - 'settings.connectivity.port.range.label': 'Zakres portu', - 'settings.resources.disk.check.hash.label': 'Zweryfikuj skrót po zakończeniu', - 'settings.resources.disk.download.location.label': 'Domyślny katalog pobierania', - 'settings.resources.disk.heading': 'Dysk', - 'settings.resources.max.open.files': 'Maksymalna liczba otwartych plików', - 'settings.resources.memory.heading': 'Pamięć', - 'settings.resources.memory.max.label': 'Maksymalne zużycie pamięci', - 'settings.tabs.bandwidth': 'Przepustowość', - 'settings.tabs.connectivity': 'Łączność', - 'settings.tabs.heading': 'Ustawienia', - 'settings.tabs.resources': 'Zasoby', - 'settings.tabs.authentication': 'Uwierzytelnianie', - 'settings.tabs.userinterface': 'Interfejs użytkownika', - 'settings.tabs.diskusage': 'Użycie dysku', - 'settings.tabs.about': 'O programie', - 'settings.ui.locale': 'Język', - 'settings.ui.language': 'Język', - 'settings.ui.torrent.list': 'Wyświetlanie listy torrentów', - 'settings.ui.torrent.size': 'Rozmiar torrenta', - 'settings.ui.torrent.size.expanded': 'Widok rozszerzony', - 'settings.ui.torrent.size.condensed': 'Skondensowany widok', - 'settings.ui.torrent.details.enabled': 'Włączone', - 'settings.ui.torrent.details.tags.placement': 'W rozszerzonym widoku tagi działają najlepiej na końcu listy.', - 'settings.ui.displayed.details': 'Kolumny szczegółów torrenta', - 'settings.diskusage.show': 'Pokaż', - 'settings.diskusage.mount.points': 'Punkty montowania dysku', - 'settings.about.flood': 'O powodzie', - 'sidebar.button.feeds': 'Kanały', - 'sidebar.button.notifications': 'Powiadomienia', - 'sidebar.button.settings': 'Ustawienia', - 'sidebar.button.speedlimits': 'Ograniczenia prędkości', - 'sidebar.button.log.out': 'Wyloguj', - 'sidebar.search.placeholder': 'Szukaj torrentów', - 'sidebar.transferdata.downloaded': 'Pobrano', - 'sidebar.transferdata.uploaded': 'Przesłano', - 'speed.unlimited': 'Nieograniczona', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'tyg.', - 'unit.time.day': 'ob', - 'unit.time.hour': 'godz.', - 'unit.time.minute': 'm', - 'unit.time.second': 'u rot ob', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Dodaj torrent', - 'torrents.add.destination.label': 'Miejsce przeznaczenia', - 'torrents.add.destination.placeholder': 'Miejsce przeznaczenia', - 'torrents.add.heading': 'Dodaj torrenty', - 'torrents.add.start.label': 'Uruchom torrent', - 'torrents.add.tab.file.browse': 'lub kliknij, aby przeglądać', - 'torrents.add.tab.file.drop': 'Upuść pliki tutaj,', - 'torrents.add.tab.file.title': 'Wg pliku', - 'torrents.add.tab.url.input.placeholder': 'URL torrenta lub Magnet Link', - 'torrents.add.tab.url.title': 'Według adresu URL', - 'torrents.add.torrents.label': 'Torrenty', - 'torrents.add.tags': 'Tagi', - 'torrents.destination.base_path': 'Użyj jako ścieżki bazowej', - 'torrents.details.actions.pause': 'Wstrzymaj', - 'torrents.details.actions.start': 'Rozpocznij', - 'torrents.details.actions.stop': 'Zatrzymaj', - 'torrents.details.details': 'Szczegóły', - 'torrents.details.files': 'Pliki', - 'torrents.details.files.loading': 'Ładowanie szczegółów pliku...', - 'torrents.details.files.download.file': `{count, plural, =1 {Pobierz plik} other {Pobierz pliki}}`, - 'torrents.details.general.comment': 'Komentarz', - 'torrents.details.general.connected': '{connected} połączony z {total}', - 'torrents.details.general.date.added': 'Dodano', - 'torrents.details.general.date.created': 'Data utworzenia', - 'torrents.details.general.downloaded': 'Pobrano', - 'torrents.details.general.free.disk.space': 'Wolne miejsce na dysku', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Ogólny', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Śledzenie', - 'torrents.details.general.heading.transfer': 'Przelew', - 'torrents.details.general.location': 'Lokalizacja', - 'torrents.details.general.none': 'Brak', - 'torrents.details.general.peers': 'Uczestnicy', - 'torrents.details.general.scheduler.ignored': 'Ignorowane', - 'torrents.details.general.scheduler.obeyed': 'obfite', - 'torrents.details.general.scheduler': 'Harmonogram', - 'torrents.details.general.seeds': 'Nasiona', - 'torrents.details.general.size': 'Rozmiar', - 'torrents.details.general.tags': 'Tagi', - 'torrents.details.general.tracker.message': 'Wiadomość trackera', - 'torrents.details.general.type.private': 'Prywatny', - 'torrents.details.general.type.public': 'Publiczne', - 'torrents.details.general.type': 'Typ', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Brak danych peerów dla tego torrentu.', - 'torrents.details.peers': 'Uczestnicy', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} wybrany plik} other {{countElement} wybrano pliki}}`, - 'torrents.details.selected.files.set.priority': 'Ustaw priorytet', - 'torrents.details.trackers.no.data': 'Brak danych trackera dla tego torrentu.', - 'torrents.details.trackers.type': 'Typ', - 'torrents.details.trackers': 'Śledzenie', - 'torrents.list.clear.filters': 'Wyczyść filtry', - 'torrents.list.context.check.hash': 'Sprawdź hash', - 'torrents.list.context.details': 'Szczegóły torrenta', - 'torrents.list.context.move': 'Ustaw lokalizację torrenta', - 'torrents.list.context.pause': 'Wstrzymaj', - 'torrents.list.context.priority': 'Priorytet', - 'torrents.list.context.remove': 'Usuń', - 'torrents.list.context.set.tags': 'Ustaw tagi', - 'torrents.list.context.start': 'Rozpocznij', - 'torrents.list.context.stop': 'Zatrzymaj', - 'torrents.list.no.torrents': 'Brak torrentów do wyświetlenia.', - 'torrents.list.drop': 'Upuść pliki tutaj, aby dodać je do rTorrent.', - 'torrents.list.cannot.connect': 'Nie można połączyć się z rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'z', - 'torrents.move.button.set.location': 'Ustaw lokalizację', - 'torrents.move.button.state.setting': 'Ustawienie...', - 'torrents.move.data.label': 'Przenieś dane', - 'torrents.move.check_hash.label': 'Sprawdź skrót', - 'torrents.move.heading': 'Ustaw lokalizację torrenta', - 'torrents.properties.date.added': 'Dodano', - 'torrents.properties.base.path': 'Ścieżka bazowa', - 'torrents.properties.comment': 'Komentarz', - 'torrents.properties.creation.date': 'Data utworzenia', - 'torrents.properties.download.speed': 'Prędkość pobierania', - 'torrents.properties.download.total': 'Pobrano', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Wolne miejsce na dysku', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignoruj harmonogram', - 'torrents.properties.is.private': 'Prywatny', - 'torrents.properties.name': 'Nazwisko', - 'torrents.properties.percentage': 'Procent zakończony', - 'torrents.properties.ratio': 'Stosunek', - 'torrents.properties.size': 'Rozmiar pliku', - 'torrents.properties.tags': 'Tagi', - 'torrents.properties.tracker.message': 'Wiadomość trackera', - 'torrents.properties.upload.speed': 'Prędkość przesyłania', - 'torrents.properties.upload.total': 'Przesłano', - 'torrents.remove.are.you.sure': `Czy na pewno chcesz usunąć {count, plural, =1 {# torrenty} other {# torrentów}}?`, - 'torrents.remove.delete.data': 'Usuń dane', - 'torrents.remove.error.no.torrents.selected': 'Nie wybrałeś żadnych torrentów.', - 'torrents.remove': 'Usuń torrenty', - 'torrents.set.tags.button.set': 'Ustaw tagi', - 'torrents.set.tags.heading': 'Ustaw tagi', - 'torrents.set.tags.enter.tags': 'Wprowadź tagi', - 'torrents.sort.title': 'Sortuj wg', - 'connection-interruption.heading': 'Nie można połączyć się z rTorrent', - 'connection-interruption.verify-settings-prompt': 'Sprawdźmy ustawienia połączenia.', - 'connection-interruption.verification-error': 'Nie można zweryfikować połączenia.', - 'connection-interruption.verification-success': 'Połączenie udane', - 'status.diskusage.title': 'Użycie dysku', - 'locale.language.auto': 'Automatyczne', -}; diff --git a/client/src/javascript/i18n/translations/pl.json b/client/src/javascript/i18n/translations/pl.json new file mode 100644 index 000000000..99016cb18 --- /dev/null +++ b/client/src/javascript/i18n/translations/pl.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Uruchom torrent", + "actionbar.button.stop.torrent": "Zatrzymaj torrent", + "actionbar.button.add.torrent": "Dodaj torrent", + "actionbar.button.remove.torrent": "Usuń torrent", + "alert.torrent.add": "Pomyślnie dodano {countElement} {count, plural, =1 {torrent} other {torrenty}}.", + "alert.torrent.add.failed": "Nie udało się dodać {countElement} {count, plural, =1 {torrent} other {torrenty}}.", + "alert.torrent.move": "Pomyślnie przeniesiono {countElement} {count, plural, =1 {torrenty} other {torrenty}}.", + "alert.torrent.move.failed": "Nie udało się przenieść {countElement} {count, plural, =1 {torrentów} other {torrentów}}.", + "alert.torrent.remove": "Pomyślnie usunięto {countElement} {count, plural, =1 {torrenty} other {torrenty}}.", + "alert.torrent.remove.failed": "Nie udało się usunąć {countElement} {count, plural, =1 {torrentów} other {torrentów}}.", + "alert.settings.saved": "Zapisano ustawienia.", + "auth.add.user": "Dodaj użytkownika", + "auth.connectionType": "Typ połączenia rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Socket Unix", + "auth.create.account": "Utwórz konto", + "auth.create.an.account": "Utwórz konto", + "auth.create.an.account.intro": "Witaj w powodzie!", + "auth.current.user": "Bieżący użytkownik", + "auth.error.username.empty": "Nazwa użytkownika nie może być pusta.", + "auth.log.in": "Zaloguj się", + "auth.login": "Logowanie", + "auth.password": "Hasło", + "auth.user.accounts": "Konta użytkowników", + "auth.username": "Nazwa użytkownika", + "auth.admin": "Administrator", + "auth.message.not.admin": "Użytkownik nie jest administratorem", + "auth.rtorrentHost": "Host rTorrent", + "auth.rtorrentPort": "Port rTorrent", + "auth.rtorrentSocket": "Skieszonka rTorrent", + "auth.rtorrentSocketPath": "Ścieżka do gniazda rTorrent", + "button.add": "Dodaj", + "button.cancel": "Anuluj", + "button.no": "Nie", + "button.save": "Zapisz ustawienia", + "button.save.feed": "Zapisz", + "button.test": "Badanie", + "button.state.adding": "Dodawanie...", + "button.yes": "Tak", + "button.new": "Nowy", + "connectivity.modal.title": "Problem z połączeniem", + "connectivity.modal.content": "Nie można połączyć się z rTorrent. Proszę zaktualizować informacje teraz.", + "feeds.add.automatic.download.rule": "Dodaj regułę pobierania", + "feeds.add.feed": "Dodaj kanał", + "feeds.applicable.feed": "Stosowany kanał", + "feeds.apply.tags": "Zastosuj tagi", + "feeds.exclude.pattern": "Wyklucz wzór", + "feeds.existing.feeds": "Istniejące kanały", + "feeds.existing.rules": "Istniejące reguły", + "feeds.label": "Etykieta", + "feeds.match.count": "{count, plural, =1 {# pasuje do} other {# pasuje do}}", + "feeds.match.pattern": "Wzorzec dopasowania", + "feeds.match": "Dopasowanie", + "feeds.exclude": "Wyklucz", + "feeds.no.feeds.available": "Brak dostępnych kanałów.", + "feeds.no.feeds.defined": "Nie zdefiniowano kanałów.", + "feeds.no.rules.defined": "Nie zdefiniowano reguł.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Wybierz kanał", + "feeds.select.interval": "Interwał", + "feeds.start.on.load": "Zacznij od załadowania", + "feeds.tabs.download.rules": "Zasady pobierania", + "feeds.tabs.feeds": "Kanały", + "feeds.tabs.heading": "Kanały torrent", + "feeds.tags": "Tagi", + "feeds.time.hr": "Godziny", + "feeds.time.min": "Protokoły", + "feeds.time.day": "Dni", + "feeds.torrent.destination": "Przeznaczenie torrentów", + "feeds.url": "Adres URL", + "feeds.search": "Szukaj frazy", + "feeds.validation.invalid.regular.expression": "Nieprawidłowe wyrażenie regularne.", + "feeds.validation.must.select.feed": "Musisz wybrać kanał.", + "feeds.validation.must.specify.destination": "Musisz określić miejsce docelowe.", + "feeds.validation.must.specify.label": "Musisz określić etykietę.", + "feeds.validation.must.specify.valid.feed.url": "Musisz podać poprawny adres URL kanału.", + "feeds.browse.feeds": "Przeglądaj kanały", + "filesystem.empty.directory": "Pusty katalog.", + "filesystem.error.eacces": "Powódź nie ma uprawnień do odczytu tego katalogu.", + "filesystem.error.enoent": "Ta ścieżka nie istnieje. Zostanie utworzona.", + "filesystem.fetching": "Pobieranie struktury katalogu...", + "filter.all": "Wszystkie", + "filter.status.title": "Filtruj według statusu", + "filter.status.downloading": "Pobieranie", + "filter.status.completed": "Complete", + "filter.status.active": "Aktywne", + "filter.status.inactive": "Nieaktywny", + "filter.status.error": "Błąd", + "filter.status.stopped": "Zatrzymano", + "filter.status.checking": "Sprawdzanie", + "filter.tracker.title": "Filtruj według trackera", + "filter.tag.title": "Filtruj według tagu", + "filter.untagged": "Nietagowane", + "general.ago": "temu", + "general.at": "w", + "general.to": "do", + "general.of": "z", + "general.clipboard.copy": "Kopiuj", + "general.clipboard.copied": "Skopiowano", + "mediainfo.execError": "Wystąpił błąd podczas uruchamiania mediainfo na serwerze. Sprawdź, czy mediainfo jest zainstalowany i dostępny w PATH do powodzi.", + "mediainfo.fetching": "Pobieranie...", + "mediainfo.heading": "Wyjście Mediainfo", + "notification.torrent.finished.heading": "Pobieranie zakończone", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Błąd zgłoszony", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Wyczyść wszystko", + "notification.showing": "Wyświetlanie", + "priority.dont.download": "Nie pobieraj", + "priority.high": "Wysoka", + "priority.low": "Niski", + "priority.normal": "Normalny", + "settings.bandwidth.slots.download.divider.label": "Pobierz dzielnik slotów", + "settings.bandwidth.slots.download.global.label": "Pobierz gniazda globalne", + "settings.bandwidth.slots.download.label": "Pobierz miejsca na torrent", + "settings.bandwidth.slots.heading": "Dostępność miejsca", + "settings.bandwidth.slots.upload.divider.label": "Prześlij Dziedzictwo Slotów", + "settings.bandwidth.slots.upload.global.label": "Prześlij Sloty globalne", + "settings.bandwidth.slots.upload.label": "Prześlij Sloty na torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Rozwijane ustawienia: Pobierz", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Rozwijane ustawienia: Załaduj", + "settings.bandwidth.transferrate.global.throttle.download": "Globalna przepustnica szybkości pobierania", + "settings.bandwidth.transferrate.global.throttle.upload": "Globalna przepustnica Szybkości Wysyłania", + "settings.bandwidth.transferrate.heading": "Prędkość transferu przepustnicy", + "settings.connectivity.dht.label": "Włącz DHT", + "settings.connectivity.dht.port.label": "Port DHT", + "settings.connectivity.dpd.heading": "Odkrycie zdecentralizowanego peera", + "settings.connectivity.incoming.heading": "Połączenia przychodzące", + "settings.connectivity.ip.hostname.label": "Zgłoszone IP/nazwa hosta", + "settings.connectivity.max.http.connections": "Maksymalna liczba połączeń HTTP", + "settings.connectivity.peer.exchange.label": "Włącz wymianę peer", + "settings.connectivity.peers.desired.label": "Pożądane rówieśniki", + "settings.connectivity.peers.heading": "Uczestnicy", + "settings.connectivity.peers.max.label": "Maksymalna liczba peerów", + "settings.connectivity.peers.min.label": "Minimalna liczba peerów", + "settings.connectivity.peers.seeding.max.label": "Maksymalna ilość seedów peerów", + "settings.connectivity.peers.seeding.min.label": "Minimalne seedowanie peerów", + "settings.connectivity.port.open.label": "Otwórz port", + "settings.connectivity.port.randomize.label": "Losowy port", + "settings.connectivity.port.range.label": "Zakres portu", + "settings.resources.disk.check.hash.label": "Zweryfikuj skrót po zakończeniu", + "settings.resources.disk.download.location.label": "Domyślny katalog pobierania", + "settings.resources.disk.heading": "Dysk", + "settings.resources.max.open.files": "Maksymalna liczba otwartych plików", + "settings.resources.memory.heading": "Pamięć", + "settings.resources.memory.max.label": "Maksymalne zużycie pamięci", + "settings.tabs.bandwidth": "Przepustowość", + "settings.tabs.connectivity": "Łączność", + "settings.tabs.heading": "Ustawienia", + "settings.tabs.resources": "Zasoby", + "settings.tabs.authentication": "Uwierzytelnianie", + "settings.tabs.userinterface": "Interfejs użytkownika", + "settings.tabs.diskusage": "Użycie dysku", + "settings.tabs.about": "O programie", + "settings.ui.locale": "Język", + "settings.ui.language": "Język", + "settings.ui.torrent.list": "Wyświetlanie listy torrentów", + "settings.ui.torrent.size": "Rozmiar torrenta", + "settings.ui.torrent.size.expanded": "Widok rozszerzony", + "settings.ui.torrent.size.condensed": "Skondensowany widok", + "settings.ui.torrent.details.enabled": "Włączone", + "settings.ui.torrent.details.tags.placement": "W rozszerzonym widoku tagi działają najlepiej na końcu listy.", + "settings.ui.displayed.details": "Kolumny szczegółów torrenta", + "settings.diskusage.show": "Pokaż", + "settings.diskusage.mount.points": "Punkty montowania dysku", + "settings.about.flood": "O powodzie", + "sidebar.button.feeds": "Kanały", + "sidebar.button.notifications": "Powiadomienia", + "sidebar.button.settings": "Ustawienia", + "sidebar.button.speedlimits": "Ograniczenia prędkości", + "sidebar.button.log.out": "Wyloguj", + "sidebar.search.placeholder": "Szukaj torrentów", + "sidebar.transferdata.downloaded": "Pobrano", + "sidebar.transferdata.uploaded": "Przesłano", + "speed.unlimited": "Nieograniczona", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "tyg.", + "unit.time.day": "ob", + "unit.time.hour": "godz.", + "unit.time.minute": "m", + "unit.time.second": "u rot ob", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Dodaj torrent", + "torrents.add.destination.label": "Miejsce przeznaczenia", + "torrents.add.destination.placeholder": "Miejsce przeznaczenia", + "torrents.add.heading": "Dodaj torrenty", + "torrents.add.start.label": "Uruchom torrent", + "torrents.add.tab.file.browse": "lub kliknij, aby przeglądać", + "torrents.add.tab.file.drop": "Upuść pliki tutaj,", + "torrents.add.tab.file.title": "Wg pliku", + "torrents.add.tab.url.input.placeholder": "URL torrenta lub Magnet Link", + "torrents.add.tab.url.title": "Według adresu URL", + "torrents.add.torrents.label": "Torrenty", + "torrents.add.tags": "Tagi", + "torrents.destination.base_path": "Użyj jako ścieżki bazowej", + "torrents.details.actions.pause": "Wstrzymaj", + "torrents.details.actions.start": "Rozpocznij", + "torrents.details.actions.stop": "Zatrzymaj", + "torrents.details.details": "Szczegóły", + "torrents.details.files": "Pliki", + "torrents.details.files.loading": "Ładowanie szczegółów pliku...", + "torrents.details.files.download.file": "{count, plural, =1 {Pobierz plik} other {Pobierz pliki}}", + "torrents.details.general.comment": "Komentarz", + "torrents.details.general.connected": "{connected} połączony z {total}", + "torrents.details.general.date.added": "Dodano", + "torrents.details.general.date.created": "Data utworzenia", + "torrents.details.general.downloaded": "Pobrano", + "torrents.details.general.free.disk.space": "Wolne miejsce na dysku", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Ogólny", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Śledzenie", + "torrents.details.general.heading.transfer": "Przelew", + "torrents.details.general.location": "Lokalizacja", + "torrents.details.general.none": "Brak", + "torrents.details.general.peers": "Uczestnicy", + "torrents.details.general.scheduler.ignored": "Ignorowane", + "torrents.details.general.scheduler.obeyed": "obfite", + "torrents.details.general.scheduler": "Harmonogram", + "torrents.details.general.seeds": "Nasiona", + "torrents.details.general.size": "Rozmiar", + "torrents.details.general.tags": "Tagi", + "torrents.details.general.tracker.message": "Wiadomość trackera", + "torrents.details.general.type.private": "Prywatny", + "torrents.details.general.type.public": "Publiczne", + "torrents.details.general.type": "Typ", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Brak danych peerów dla tego torrentu.", + "torrents.details.peers": "Uczestnicy", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} wybrany plik} other {{countElement} wybrano pliki}}", + "torrents.details.selected.files.set.priority": "Ustaw priorytet", + "torrents.details.trackers.no.data": "Brak danych trackera dla tego torrentu.", + "torrents.details.trackers.type": "Typ", + "torrents.details.trackers": "Śledzenie", + "torrents.list.clear.filters": "Wyczyść filtry", + "torrents.list.context.check.hash": "Sprawdź hash", + "torrents.list.context.details": "Szczegóły torrenta", + "torrents.list.context.move": "Ustaw lokalizację torrenta", + "torrents.list.context.pause": "Wstrzymaj", + "torrents.list.context.priority": "Priorytet", + "torrents.list.context.remove": "Usuń", + "torrents.list.context.set.tags": "Ustaw tagi", + "torrents.list.context.start": "Rozpocznij", + "torrents.list.context.stop": "Zatrzymaj", + "torrents.list.no.torrents": "Brak torrentów do wyświetlenia.", + "torrents.list.drop": "Upuść pliki tutaj, aby dodać je do rTorrent.", + "torrents.list.cannot.connect": "Nie można połączyć się z rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "z", + "torrents.move.button.set.location": "Ustaw lokalizację", + "torrents.move.button.state.setting": "Ustawienie...", + "torrents.move.data.label": "Przenieś dane", + "torrents.move.check_hash.label": "Sprawdź skrót", + "torrents.move.heading": "Ustaw lokalizację torrenta", + "torrents.properties.date.added": "Dodano", + "torrents.properties.base.path": "Ścieżka bazowa", + "torrents.properties.comment": "Komentarz", + "torrents.properties.creation.date": "Data utworzenia", + "torrents.properties.download.speed": "Prędkość pobierania", + "torrents.properties.download.total": "Pobrano", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Wolne miejsce na dysku", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignoruj harmonogram", + "torrents.properties.is.private": "Prywatny", + "torrents.properties.name": "Nazwisko", + "torrents.properties.percentage": "Procent zakończony", + "torrents.properties.ratio": "Stosunek", + "torrents.properties.size": "Rozmiar pliku", + "torrents.properties.tags": "Tagi", + "torrents.properties.tracker.message": "Wiadomość trackera", + "torrents.properties.upload.speed": "Prędkość przesyłania", + "torrents.properties.upload.total": "Przesłano", + "torrents.remove.are.you.sure": "Czy na pewno chcesz usunąć {count, plural, =1 {# torrenty} other {# torrentów}}?", + "torrents.remove.delete.data": "Usuń dane", + "torrents.remove.error.no.torrents.selected": "Nie wybrałeś żadnych torrentów.", + "torrents.remove": "Usuń torrenty", + "torrents.set.tags.button.set": "Ustaw tagi", + "torrents.set.tags.heading": "Ustaw tagi", + "torrents.set.tags.enter.tags": "Wprowadź tagi", + "torrents.sort.title": "Sortuj wg", + "connection-interruption.heading": "Nie można połączyć się z rTorrent", + "connection-interruption.verify-settings-prompt": "Sprawdźmy ustawienia połączenia.", + "connection-interruption.verification-error": "Nie można zweryfikować połączenia.", + "connection-interruption.verification-success": "Połączenie udane", + "status.diskusage.title": "Użycie dysku", + "locale.language.auto": "Automatyczne" +} diff --git a/client/src/javascript/i18n/translations/pt.js b/client/src/javascript/i18n/translations/pt.js deleted file mode 100644 index 67e2cf54e..000000000 --- a/client/src/javascript/i18n/translations/pt.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Iniciar Torrent', - 'actionbar.button.stop.torrent': 'Parar Torrent', - 'actionbar.button.add.torrent': 'Adicionar Torrent', - 'actionbar.button.remove.torrent': 'Remover Torrent', - 'alert.torrent.add': `{countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.add.failed': `Falha ao adicionar {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.move': `Movido com sucesso {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.move.failed': `Falha ao mover {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.remove': `{countElement} {count, plural, =1 {torrent removido com sucesso} other {torrents}}`, - 'alert.torrent.remove.failed': `Falha ao remover {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.settings.saved': 'Configurações salvas com sucesso.', - 'auth.add.user': 'Adicionar Usuário', - 'auth.connectionType': 'Tipo de Conexão rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Encaixe Unix', - 'auth.create.account': 'Criar conta', - 'auth.create.an.account': 'Criar uma conta', - 'auth.create.an.account.intro': 'Bem vindo à Inundação!', - 'auth.current.user': 'Usuário atual', - 'auth.error.username.empty': 'Nome de usuário não pode estar vazio.', - 'auth.log.in': 'Iniciar sessão', - 'auth.login': 'Conectar-se', - 'auth.password': 'Palavra-passe', - 'auth.user.accounts': 'Contas de usuário', - 'auth.username': 'Usuário:', - 'auth.admin': 'Administrador', - 'auth.message.not.admin': 'Usuário não é Administrador', - 'auth.rtorrentHost': 'Host do rTorrent', - 'auth.rtorrentPort': 'Porta de rTorrent', - 'auth.rtorrentSocket': 'Encaixe rTorrent', - 'auth.rtorrentSocketPath': 'Caminho de soquete rTorrent', - 'button.add': 'Adicionar', - 'button.cancel': 'cancelar', - 'button.no': 'Não', - 'button.save': 'Salvar Configurações', - 'button.save.feed': 'Guardar', - 'button.test': 'teste', - 'button.state.adding': 'Adicionando...', - 'button.yes': 'sim', - 'button.new': 'Novidades', - 'connectivity.modal.title': 'Problema de conectividade', - 'connectivity.modal.content': 'Não é possível conectar-se ao rTorrent. Por favor, atualize a informação agora.', - 'feeds.add.automatic.download.rule': 'Adicionar regra de download', - 'feeds.add.feed': 'Adicionar Feed', - 'feeds.applicable.feed': 'Feed aplicável', - 'feeds.apply.tags': 'Aplicar Tags', - 'feeds.exclude.pattern': 'Excluir padrão', - 'feeds.existing.feeds': 'Feeds existentes', - 'feeds.existing.rules': 'Regras existentes', - 'feeds.label': 'Descrição', - 'feeds.match.count': '{count, plural, =1 {# match} other {# match}}', - 'feeds.match.pattern': 'Padrão da Partida', - 'feeds.match': 'Corresponder', - 'feeds.exclude': 'Excluir', - 'feeds.no.feeds.available': 'Não há feeds disponíveis.', - 'feeds.no.feeds.defined': 'Nenhum feeds definido.', - 'feeds.no.rules.defined': 'Nenhuma regra definida.', - 'feeds.regEx': 'RegEx:', - 'feeds.select.feed': 'Selecionar Feed', - 'feeds.select.interval': 'Intervalo', - 'feeds.start.on.load': 'Iniciar ao carregar', - 'feeds.tabs.download.rules': 'Baixar regras', - 'feeds.tabs.feeds': 'Conteúdos', - 'feeds.tabs.heading': 'Feed de Torrent', - 'feeds.tags': 'Etiquetas', - 'feeds.time.hr': 'horas', - 'feeds.time.min': 'minutos', - 'feeds.time.day': 'dias', - 'feeds.torrent.destination': 'Destino do Torrent', - 'feeds.url': 'URL:', - 'feeds.search': 'Termo para pesquisa', - 'feeds.validation.invalid.regular.expression': 'Expressão regular inválida.', - 'feeds.validation.must.select.feed': 'Você precisa selecionar um feed.', - 'feeds.validation.must.specify.destination': 'Você deve especificar um destino.', - 'feeds.validation.must.specify.label': 'Você deve especificar uma etiqueta.', - 'feeds.validation.must.specify.valid.feed.url': 'Você deve especificar uma URL de feed válida.', - 'feeds.browse.feeds': 'Procurar feeds', - 'filesystem.empty.directory': 'Diretório vazio.', - 'filesystem.error.eacces': 'O Flood não tem permissão para ler este diretório.', - 'filesystem.error.enoent': 'Este caminho não existe. Ele será criado.', - 'filesystem.fetching': 'Buscando estrutura de diretórios...', - 'filter.all': 'TODOS', - 'filter.status.title': 'Filtrar por status', - 'filter.status.downloading': 'Baixando', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'ativo', - 'filter.status.inactive': 'Inativo', - 'filter.status.error': 'ERRO', - 'filter.status.stopped': 'Parado', - 'filter.status.checking': 'Verificando', - 'filter.tracker.title': 'Filtrar por Rastreador', - 'filter.tag.title': 'Filtrar por Tag', - 'filter.untagged': 'Desmarcado', - 'general.ago': 'Atrás', - 'general.at': 'em', - 'general.to': 'para', - 'general.of': 'de', - 'general.clipboard.copy': 'copiar', - 'general.clipboard.copied': 'Copiado', - 'mediainfo.execError': - 'Ocorreu um erro durante a execução de mediainfo no servidor. Verifique se a mediainfo está instalada e disponível no PATH para Flood.', - 'mediainfo.fetching': 'Buscando...', - 'mediainfo.heading': 'Saída Mediainfo', - 'notification.torrent.finished.heading': 'Download concluído', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Erro relatado', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Limpar Tudo', - 'notification.showing': 'Mostrando', - 'priority.dont.download': 'Não baixar', - 'priority.high': 'alta', - 'priority.low': 'baixa', - 'priority.normal': 'normal', - 'settings.bandwidth.slots.download.divider.label': 'Divisor de Slots', - 'settings.bandwidth.slots.download.global.label': 'Baixar Slots Globais', - 'settings.bandwidth.slots.download.label': 'Baixar Slots por Torrent', - 'settings.bandwidth.slots.heading': 'Disponibilidade de Slot', - 'settings.bandwidth.slots.upload.divider.label': 'Divisor de Slots', - 'settings.bandwidth.slots.upload.global.label': 'Carregar Slots Globais', - 'settings.bandwidth.slots.upload.label': 'Carregar Slots por Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Predefinições Dropdown: Baixar', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Predefinições do Dropdown: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Taxa de Download Global', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Taxa de envio global', - 'settings.bandwidth.transferrate.heading': 'Limite da Taxa de Transferência', - 'settings.connectivity.dht.label': 'Habilitar DHT', - 'settings.connectivity.dht.port.label': 'Porta DHT', - 'settings.connectivity.dpd.heading': 'Descoberta Descentralizada de Pares', - 'settings.connectivity.incoming.heading': 'Conexões de entrada', - 'settings.connectivity.ip.hostname.label': 'IP/Hostname reportado', - 'settings.connectivity.max.http.connections': 'Conexões HTTP máximas', - 'settings.connectivity.peer.exchange.label': 'Habilitar Troca de Pares', - 'settings.connectivity.peers.desired.label': 'Pares Desejados', - 'settings.connectivity.peers.heading': 'Pares', - 'settings.connectivity.peers.max.label': 'Máximo de Pares', - 'settings.connectivity.peers.min.label': 'Mínimo de Pares', - 'settings.connectivity.peers.seeding.max.label': 'Semente Máxima de Pares', - 'settings.connectivity.peers.seeding.min.label': 'Mínimo de Semeamento de Pares', - 'settings.connectivity.port.open.label': 'Porta Aberta', - 'settings.connectivity.port.randomize.label': 'Randomizar Porta', - 'settings.connectivity.port.range.label': 'Intervalo de Portas', - 'settings.resources.disk.check.hash.label': 'Verificar o Hash na Conclusão', - 'settings.resources.disk.download.location.label': 'Diretório de download padrão', - 'settings.resources.disk.heading': 'Disco', - 'settings.resources.max.open.files': 'Máximo de Arquivos Abertos', - 'settings.resources.memory.heading': 'Memória', - 'settings.resources.memory.max.label': 'Uso máximo de memória', - 'settings.tabs.bandwidth': 'Banda', - 'settings.tabs.connectivity': 'Conectividade', - 'settings.tabs.heading': 'Confirgurações', - 'settings.tabs.resources': 'Recursos', - 'settings.tabs.authentication': 'Autenticação', - 'settings.tabs.userinterface': 'Interface do usuário', - 'settings.tabs.diskusage': 'Uso do disco', - 'settings.tabs.about': 'SOBRE', - 'settings.ui.locale': 'Localidade', - 'settings.ui.language': 'IDIOMA', - 'settings.ui.torrent.list': 'Exibição de Lista de Torrent', - 'settings.ui.torrent.size': 'Tamanho do Torrent', - 'settings.ui.torrent.size.expanded': 'Vista Expandida', - 'settings.ui.torrent.size.condensed': 'Vista Condensada', - 'settings.ui.torrent.details.enabled': 'Ativado', - 'settings.ui.torrent.details.tags.placement': 'Na exibição expandida, as tags funcionam melhor no final da lista.', - 'settings.ui.displayed.details': 'Colunas de Detalhes do Torrent', - 'settings.diskusage.show': 'Apresentar', - 'settings.diskusage.mount.points': 'Pontos de Uso de Disco', - 'settings.about.flood': 'Sobre Flood', - 'sidebar.button.feeds': 'Conteúdos', - 'sidebar.button.notifications': 'notificações', - 'sidebar.button.settings': 'Confirgurações', - 'sidebar.button.speedlimits': 'Limite de Velocidade', - 'sidebar.button.log.out': 'Encerrar Sessão', - 'sidebar.search.placeholder': 'Procurar torrents', - 'sidebar.transferdata.downloaded': 'Baixado', - 'sidebar.transferdata.uploaded': 'Enviado', - 'speed.unlimited': 'Ilimitado', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'KB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'BR', - 'unit.size.terabyte': 'Tb', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'Semana', - 'unit.time.day': 'd', - 'unit.time.hour': 'HR', - 'unit.time.minute': 'min', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Adicionar Torrent', - 'torrents.add.destination.label': 'Destino', - 'torrents.add.destination.placeholder': 'Destino', - 'torrents.add.heading': 'Adicionar Torrents', - 'torrents.add.start.label': 'Iniciar Torrent', - 'torrents.add.tab.file.browse': 'ou clique para navegar', - 'torrents.add.tab.file.drop': 'Solte alguns arquivos aqui,', - 'torrents.add.tab.file.title': 'Por Arquivo', - 'torrents.add.tab.url.input.placeholder': 'URL do Torrent ou Link Magnet', - 'torrents.add.tab.url.title': 'Por URL', - 'torrents.add.torrents.label': 'Torrentes', - 'torrents.add.tags': 'Etiquetas', - 'torrents.destination.base_path': 'Usar como caminho de base', - 'torrents.details.actions.pause': 'Suspender', - 'torrents.details.actions.start': 'Iniciar', - 'torrents.details.actions.stop': 'Interromper', - 'torrents.details.details': 'detalhes', - 'torrents.details.files': 'arquivos', - 'torrents.details.files.loading': 'Carregando detalhes do arquivo...', - 'torrents.details.files.download.file': `{count, plural, =1 {Baixe o arquivo} other {Baixe arquivos}}`, - 'torrents.details.general.comment': 'Comentar', - 'torrents.details.general.connected': '{connected} conectado a {total}', - 'torrents.details.general.date.added': 'Adicionado', - 'torrents.details.general.date.created': 'Data de Criação', - 'torrents.details.general.downloaded': 'Baixado', - 'torrents.details.general.free.disk.space': 'Espaço em disco livre', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Gerais', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Rastreador', - 'torrents.details.general.heading.transfer': 'Transferência', - 'torrents.details.general.location': 'Local:', - 'torrents.details.general.none': 'Nenhuma', - 'torrents.details.general.peers': 'Pares', - 'torrents.details.general.scheduler.ignored': 'Ignorado', - 'torrents.details.general.scheduler.obeyed': 'Obedecido', - 'torrents.details.general.scheduler': 'Agendar', - 'torrents.details.general.seeds': 'Sementes', - 'torrents.details.general.size': 'Tamanho', - 'torrents.details.general.tags': 'Etiquetas', - 'torrents.details.general.tracker.message': 'Mensagem do Rastreador', - 'torrents.details.general.type.private': 'Privado', - 'torrents.details.general.type.public': 'Público', - 'torrents.details.general.type': 'tipo', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Não há dados de par para este torrent.', - 'torrents.details.peers': 'Pares', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} arquivo selecionado} other {{countElement} arquivos selecionados}}`, - 'torrents.details.selected.files.set.priority': 'Definir prioridade', - 'torrents.details.trackers.no.data': 'Não há dados do rastreador para este torrent.', - 'torrents.details.trackers.type': 'tipo', - 'torrents.details.trackers': 'Rastreadores', - 'torrents.list.clear.filters': 'Limpar Filtros', - 'torrents.list.context.check.hash': 'Verificar o Hash', - 'torrents.list.context.details': 'Detalhes do Torrent', - 'torrents.list.context.move': 'Definir local do Torrent', - 'torrents.list.context.pause': 'Suspender', - 'torrents.list.context.priority': 'Prioridade', - 'torrents.list.context.remove': 'Excluir', - 'torrents.list.context.set.tags': 'Definir Tags', - 'torrents.list.context.start': 'Iniciar', - 'torrents.list.context.stop': 'Interromper', - 'torrents.list.no.torrents': 'Não há torrents para exibir.', - 'torrents.list.drop': 'Solte arquivos aqui para adicioná-los ao rTorrent.', - 'torrents.list.cannot.connect': 'Não é possível conectar-se a rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'de', - 'torrents.move.button.set.location': 'Definir Local', - 'torrents.move.button.state.setting': 'Configuração...', - 'torrents.move.data.label': 'Mover dados', - 'torrents.move.check_hash.label': 'Verificar o hash', - 'torrents.move.heading': 'Definir local do Torrent', - 'torrents.properties.date.added': 'Adicionado', - 'torrents.properties.base.path': 'Caminho de base', - 'torrents.properties.comment': 'Comentar', - 'torrents.properties.creation.date': 'Data de Criação', - 'torrents.properties.download.speed': 'Velocidade de Download', - 'torrents.properties.download.total': 'Baixado', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Espaço em disco livre', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignorar o Agendador', - 'torrents.properties.is.private': 'Privado', - 'torrents.properties.name': 'Nome:', - 'torrents.properties.percentage': 'Porcentagem Completa', - 'torrents.properties.ratio': 'Tarifa', - 'torrents.properties.size': 'Tamanho do arquivo', - 'torrents.properties.tags': 'Etiquetas', - 'torrents.properties.tracker.message': 'Mensagem do Rastreador', - 'torrents.properties.upload.speed': 'Velocidade de Upload', - 'torrents.properties.upload.total': 'Enviado', - 'torrents.remove.are.you.sure': `Você tem certeza que quer remover {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Apagar dados', - 'torrents.remove.error.no.torrents.selected': 'Você não selecionou nenhum torrents.', - 'torrents.remove': 'Remover Torrents', - 'torrents.set.tags.button.set': 'Definir Tags', - 'torrents.set.tags.heading': 'Definir Tags', - 'torrents.set.tags.enter.tags': 'Insira tags', - 'torrents.sort.title': 'Classificar por', - 'connection-interruption.heading': 'Não é possível conectar-se ao rTorrent', - 'connection-interruption.verify-settings-prompt': 'Vamos verificar suas configurações de conexão.', - 'connection-interruption.verification-error': 'A conexão não pôde ser verificada.', - 'connection-interruption.verification-success': 'Conexão bem sucedida', - 'status.diskusage.title': 'Uso do disco', - 'locale.language.auto': 'Automático', -}; diff --git a/client/src/javascript/i18n/translations/pt.json b/client/src/javascript/i18n/translations/pt.json new file mode 100644 index 000000000..fb0a3e502 --- /dev/null +++ b/client/src/javascript/i18n/translations/pt.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Iniciar Torrent", + "actionbar.button.stop.torrent": "Parar Torrent", + "actionbar.button.add.torrent": "Adicionar Torrent", + "actionbar.button.remove.torrent": "Remover Torrent", + "alert.torrent.add": "{countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.add.failed": "Falha ao adicionar {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.move": "Movido com sucesso {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.move.failed": "Falha ao mover {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.remove": "{countElement} {count, plural, =1 {torrent removido com sucesso} other {torrents}}", + "alert.torrent.remove.failed": "Falha ao remover {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.settings.saved": "Configurações salvas com sucesso.", + "auth.add.user": "Adicionar Usuário", + "auth.connectionType": "Tipo de Conexão rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Encaixe Unix", + "auth.create.account": "Criar conta", + "auth.create.an.account": "Criar uma conta", + "auth.create.an.account.intro": "Bem vindo à Inundação!", + "auth.current.user": "Usuário atual", + "auth.error.username.empty": "Nome de usuário não pode estar vazio.", + "auth.log.in": "Iniciar sessão", + "auth.login": "Conectar-se", + "auth.password": "Palavra-passe", + "auth.user.accounts": "Contas de usuário", + "auth.username": "Usuário:", + "auth.admin": "Administrador", + "auth.message.not.admin": "Usuário não é Administrador", + "auth.rtorrentHost": "Host do rTorrent", + "auth.rtorrentPort": "Porta de rTorrent", + "auth.rtorrentSocket": "Encaixe rTorrent", + "auth.rtorrentSocketPath": "Caminho de soquete rTorrent", + "button.add": "Adicionar", + "button.cancel": "cancelar", + "button.no": "Não", + "button.save": "Salvar Configurações", + "button.save.feed": "Guardar", + "button.test": "teste", + "button.state.adding": "Adicionando...", + "button.yes": "sim", + "button.new": "Novidades", + "connectivity.modal.title": "Problema de conectividade", + "connectivity.modal.content": "Não é possível conectar-se ao rTorrent. Por favor, atualize a informação agora.", + "feeds.add.automatic.download.rule": "Adicionar regra de download", + "feeds.add.feed": "Adicionar Feed", + "feeds.applicable.feed": "Feed aplicável", + "feeds.apply.tags": "Aplicar Tags", + "feeds.exclude.pattern": "Excluir padrão", + "feeds.existing.feeds": "Feeds existentes", + "feeds.existing.rules": "Regras existentes", + "feeds.label": "Descrição", + "feeds.match.count": "{count, plural, =1 {# match} other {# match}}", + "feeds.match.pattern": "Padrão da Partida", + "feeds.match": "Corresponder", + "feeds.exclude": "Excluir", + "feeds.no.feeds.available": "Não há feeds disponíveis.", + "feeds.no.feeds.defined": "Nenhum feeds definido.", + "feeds.no.rules.defined": "Nenhuma regra definida.", + "feeds.regEx": "RegEx:", + "feeds.select.feed": "Selecionar Feed", + "feeds.select.interval": "Intervalo", + "feeds.start.on.load": "Iniciar ao carregar", + "feeds.tabs.download.rules": "Baixar regras", + "feeds.tabs.feeds": "Conteúdos", + "feeds.tabs.heading": "Feed de Torrent", + "feeds.tags": "Etiquetas", + "feeds.time.hr": "horas", + "feeds.time.min": "minutos", + "feeds.time.day": "dias", + "feeds.torrent.destination": "Destino do Torrent", + "feeds.url": "URL:", + "feeds.search": "Termo para pesquisa", + "feeds.validation.invalid.regular.expression": "Expressão regular inválida.", + "feeds.validation.must.select.feed": "Você precisa selecionar um feed.", + "feeds.validation.must.specify.destination": "Você deve especificar um destino.", + "feeds.validation.must.specify.label": "Você deve especificar uma etiqueta.", + "feeds.validation.must.specify.valid.feed.url": "Você deve especificar uma URL de feed válida.", + "feeds.browse.feeds": "Procurar feeds", + "filesystem.empty.directory": "Diretório vazio.", + "filesystem.error.eacces": "O Flood não tem permissão para ler este diretório.", + "filesystem.error.enoent": "Este caminho não existe. Ele será criado.", + "filesystem.fetching": "Buscando estrutura de diretórios...", + "filter.all": "TODOS", + "filter.status.title": "Filtrar por status", + "filter.status.downloading": "Baixando", + "filter.status.completed": "Complete", + "filter.status.active": "ativo", + "filter.status.inactive": "Inativo", + "filter.status.error": "ERRO", + "filter.status.stopped": "Parado", + "filter.status.checking": "Verificando", + "filter.tracker.title": "Filtrar por Rastreador", + "filter.tag.title": "Filtrar por Tag", + "filter.untagged": "Desmarcado", + "general.ago": "Atrás", + "general.at": "em", + "general.to": "para", + "general.of": "de", + "general.clipboard.copy": "copiar", + "general.clipboard.copied": "Copiado", + "mediainfo.execError": "Ocorreu um erro durante a execução de mediainfo no servidor. Verifique se a mediainfo está instalada e disponível no PATH para Flood.", + "mediainfo.fetching": "Buscando...", + "mediainfo.heading": "Saída Mediainfo", + "notification.torrent.finished.heading": "Download concluído", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Erro relatado", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Limpar Tudo", + "notification.showing": "Mostrando", + "priority.dont.download": "Não baixar", + "priority.high": "alta", + "priority.low": "baixa", + "priority.normal": "normal", + "settings.bandwidth.slots.download.divider.label": "Divisor de Slots", + "settings.bandwidth.slots.download.global.label": "Baixar Slots Globais", + "settings.bandwidth.slots.download.label": "Baixar Slots por Torrent", + "settings.bandwidth.slots.heading": "Disponibilidade de Slot", + "settings.bandwidth.slots.upload.divider.label": "Divisor de Slots", + "settings.bandwidth.slots.upload.global.label": "Carregar Slots Globais", + "settings.bandwidth.slots.upload.label": "Carregar Slots por Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Predefinições Dropdown: Baixar", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Predefinições do Dropdown: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Taxa de Download Global", + "settings.bandwidth.transferrate.global.throttle.upload": "Taxa de envio global", + "settings.bandwidth.transferrate.heading": "Limite da Taxa de Transferência", + "settings.connectivity.dht.label": "Habilitar DHT", + "settings.connectivity.dht.port.label": "Porta DHT", + "settings.connectivity.dpd.heading": "Descoberta Descentralizada de Pares", + "settings.connectivity.incoming.heading": "Conexões de entrada", + "settings.connectivity.ip.hostname.label": "IP/Hostname reportado", + "settings.connectivity.max.http.connections": "Conexões HTTP máximas", + "settings.connectivity.peer.exchange.label": "Habilitar Troca de Pares", + "settings.connectivity.peers.desired.label": "Pares Desejados", + "settings.connectivity.peers.heading": "Pares", + "settings.connectivity.peers.max.label": "Máximo de Pares", + "settings.connectivity.peers.min.label": "Mínimo de Pares", + "settings.connectivity.peers.seeding.max.label": "Semente Máxima de Pares", + "settings.connectivity.peers.seeding.min.label": "Mínimo de Semeamento de Pares", + "settings.connectivity.port.open.label": "Porta Aberta", + "settings.connectivity.port.randomize.label": "Randomizar Porta", + "settings.connectivity.port.range.label": "Intervalo de Portas", + "settings.resources.disk.check.hash.label": "Verificar o Hash na Conclusão", + "settings.resources.disk.download.location.label": "Diretório de download padrão", + "settings.resources.disk.heading": "Disco", + "settings.resources.max.open.files": "Máximo de Arquivos Abertos", + "settings.resources.memory.heading": "Memória", + "settings.resources.memory.max.label": "Uso máximo de memória", + "settings.tabs.bandwidth": "Banda", + "settings.tabs.connectivity": "Conectividade", + "settings.tabs.heading": "Confirgurações", + "settings.tabs.resources": "Recursos", + "settings.tabs.authentication": "Autenticação", + "settings.tabs.userinterface": "Interface do usuário", + "settings.tabs.diskusage": "Uso do disco", + "settings.tabs.about": "SOBRE", + "settings.ui.locale": "Localidade", + "settings.ui.language": "IDIOMA", + "settings.ui.torrent.list": "Exibição de Lista de Torrent", + "settings.ui.torrent.size": "Tamanho do Torrent", + "settings.ui.torrent.size.expanded": "Vista Expandida", + "settings.ui.torrent.size.condensed": "Vista Condensada", + "settings.ui.torrent.details.enabled": "Ativado", + "settings.ui.torrent.details.tags.placement": "Na exibição expandida, as tags funcionam melhor no final da lista.", + "settings.ui.displayed.details": "Colunas de Detalhes do Torrent", + "settings.diskusage.show": "Apresentar", + "settings.diskusage.mount.points": "Pontos de Uso de Disco", + "settings.about.flood": "Sobre Flood", + "sidebar.button.feeds": "Conteúdos", + "sidebar.button.notifications": "notificações", + "sidebar.button.settings": "Confirgurações", + "sidebar.button.speedlimits": "Limite de Velocidade", + "sidebar.button.log.out": "Encerrar Sessão", + "sidebar.search.placeholder": "Procurar torrents", + "sidebar.transferdata.downloaded": "Baixado", + "sidebar.transferdata.uploaded": "Enviado", + "speed.unlimited": "Ilimitado", + "unit.size.byte": "B", + "unit.size.kilobyte": "KB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "BR", + "unit.size.terabyte": "Tb", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "Semana", + "unit.time.day": "d", + "unit.time.hour": "HR", + "unit.time.minute": "min", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Adicionar Torrent", + "torrents.add.destination.label": "Destino", + "torrents.add.destination.placeholder": "Destino", + "torrents.add.heading": "Adicionar Torrents", + "torrents.add.start.label": "Iniciar Torrent", + "torrents.add.tab.file.browse": "ou clique para navegar", + "torrents.add.tab.file.drop": "Solte alguns arquivos aqui,", + "torrents.add.tab.file.title": "Por Arquivo", + "torrents.add.tab.url.input.placeholder": "URL do Torrent ou Link Magnet", + "torrents.add.tab.url.title": "Por URL", + "torrents.add.torrents.label": "Torrentes", + "torrents.add.tags": "Etiquetas", + "torrents.destination.base_path": "Usar como caminho de base", + "torrents.details.actions.pause": "Suspender", + "torrents.details.actions.start": "Iniciar", + "torrents.details.actions.stop": "Interromper", + "torrents.details.details": "detalhes", + "torrents.details.files": "arquivos", + "torrents.details.files.loading": "Carregando detalhes do arquivo...", + "torrents.details.files.download.file": "{count, plural, =1 {Baixe o arquivo} other {Baixe arquivos}}", + "torrents.details.general.comment": "Comentar", + "torrents.details.general.connected": "{connected} conectado a {total}", + "torrents.details.general.date.added": "Adicionado", + "torrents.details.general.date.created": "Data de Criação", + "torrents.details.general.downloaded": "Baixado", + "torrents.details.general.free.disk.space": "Espaço em disco livre", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Gerais", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Rastreador", + "torrents.details.general.heading.transfer": "Transferência", + "torrents.details.general.location": "Local:", + "torrents.details.general.none": "Nenhuma", + "torrents.details.general.peers": "Pares", + "torrents.details.general.scheduler.ignored": "Ignorado", + "torrents.details.general.scheduler.obeyed": "Obedecido", + "torrents.details.general.scheduler": "Agendar", + "torrents.details.general.seeds": "Sementes", + "torrents.details.general.size": "Tamanho", + "torrents.details.general.tags": "Etiquetas", + "torrents.details.general.tracker.message": "Mensagem do Rastreador", + "torrents.details.general.type.private": "Privado", + "torrents.details.general.type.public": "Público", + "torrents.details.general.type": "tipo", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Não há dados de par para este torrent.", + "torrents.details.peers": "Pares", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} arquivo selecionado} other {{countElement} arquivos selecionados}}", + "torrents.details.selected.files.set.priority": "Definir prioridade", + "torrents.details.trackers.no.data": "Não há dados do rastreador para este torrent.", + "torrents.details.trackers.type": "tipo", + "torrents.details.trackers": "Rastreadores", + "torrents.list.clear.filters": "Limpar Filtros", + "torrents.list.context.check.hash": "Verificar o Hash", + "torrents.list.context.details": "Detalhes do Torrent", + "torrents.list.context.move": "Definir local do Torrent", + "torrents.list.context.pause": "Suspender", + "torrents.list.context.priority": "Prioridade", + "torrents.list.context.remove": "Excluir", + "torrents.list.context.set.tags": "Definir Tags", + "torrents.list.context.start": "Iniciar", + "torrents.list.context.stop": "Interromper", + "torrents.list.no.torrents": "Não há torrents para exibir.", + "torrents.list.drop": "Solte arquivos aqui para adicioná-los ao rTorrent.", + "torrents.list.cannot.connect": "Não é possível conectar-se a rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "de", + "torrents.move.button.set.location": "Definir Local", + "torrents.move.button.state.setting": "Configuração...", + "torrents.move.data.label": "Mover dados", + "torrents.move.check_hash.label": "Verificar o hash", + "torrents.move.heading": "Definir local do Torrent", + "torrents.properties.date.added": "Adicionado", + "torrents.properties.base.path": "Caminho de base", + "torrents.properties.comment": "Comentar", + "torrents.properties.creation.date": "Data de Criação", + "torrents.properties.download.speed": "Velocidade de Download", + "torrents.properties.download.total": "Baixado", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Espaço em disco livre", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignorar o Agendador", + "torrents.properties.is.private": "Privado", + "torrents.properties.name": "Nome:", + "torrents.properties.percentage": "Porcentagem Completa", + "torrents.properties.ratio": "Tarifa", + "torrents.properties.size": "Tamanho do arquivo", + "torrents.properties.tags": "Etiquetas", + "torrents.properties.tracker.message": "Mensagem do Rastreador", + "torrents.properties.upload.speed": "Velocidade de Upload", + "torrents.properties.upload.total": "Enviado", + "torrents.remove.are.you.sure": "Você tem certeza que quer remover {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Apagar dados", + "torrents.remove.error.no.torrents.selected": "Você não selecionou nenhum torrents.", + "torrents.remove": "Remover Torrents", + "torrents.set.tags.button.set": "Definir Tags", + "torrents.set.tags.heading": "Definir Tags", + "torrents.set.tags.enter.tags": "Insira tags", + "torrents.sort.title": "Classificar por", + "connection-interruption.heading": "Não é possível conectar-se ao rTorrent", + "connection-interruption.verify-settings-prompt": "Vamos verificar suas configurações de conexão.", + "connection-interruption.verification-error": "A conexão não pôde ser verificada.", + "connection-interruption.verification-success": "Conexão bem sucedida", + "status.diskusage.title": "Uso do disco", + "locale.language.auto": "Automático" +} diff --git a/client/src/javascript/i18n/translations/ro.js b/client/src/javascript/i18n/translations/ro.js deleted file mode 100644 index 4df20ccf6..000000000 --- a/client/src/javascript/i18n/translations/ro.js +++ /dev/null @@ -1,297 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Pornește Torentul', - 'actionbar.button.stop.torrent': 'Oprește Torentul', - 'actionbar.button.add.torrent': 'Adaugă Torent', - 'actionbar.button.remove.torrent': 'Elimină Torentul', - 'alert.torrent.add': `Ai adăugat cu succes {countElement} {count, plural, =1 {torrente} other {torrente}}`, - 'alert.torrent.add.failed': `Nu s-a putut adăuga {countElement} {count, plural, =1 {torrent} other {torrente}}`, - 'alert.torrent.move': `Mutat cu succes {countElement} {count, plural, =1 {torrent} other {torrente}}`, - 'alert.torrent.move.failed': `Nu s-a reușit mutarea {countElement} {count, plural, =1 {torrent} other {torente}}`, - 'alert.torrent.remove': `Ai eliminat cu succes {countElement} {count, plural, =1 {torrent} other {torrente}}`, - 'alert.torrent.remove.failed': `Nu s-a reușit ștergerea {countElement} {count, plural, =1 {torrent} other {torrente}}`, - 'alert.settings.saved': 'Setări salvate cu succes.', - 'auth.add.user': 'Adaugă utilizator', - 'auth.connectionType': 'tipul conexiunii rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Socket Unix', - 'auth.create.account': 'Creare cont', - 'auth.create.an.account': 'Creează un cont', - 'auth.create.an.account.intro': 'Bine ai venit la inundație!', - 'auth.current.user': 'Utilizator curent', - 'auth.error.username.empty': 'Numele de utilizator nu poate fi gol.', - 'auth.log.in': 'Autentificare', - 'auth.login': 'Autentificare', - 'auth.password': 'Parolă', - 'auth.user.accounts': 'Conturi de utilizator', - 'auth.username': 'Nume', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'Utilizatorul nu este Administrator', - 'auth.rtorrentHost': 'gazdă rTorrent', - 'auth.rtorrentPort': 'port rTorrent', - 'auth.rtorrentSocket': 'Socket rTorrent', - 'auth.rtorrentSocketPath': 'rTorrent Calea Socket', - 'button.add': 'Adăugare', - 'button.cancel': 'Anulează', - 'button.no': 'Nr', - 'button.save': 'Salvează setările', - 'button.save.feed': 'Salvează', - 'button.test': 'Testare', - 'button.state.adding': 'Adăugare...', - 'button.yes': 'Da', - 'button.new': 'Nou', - 'connectivity.modal.title': 'Problemă de conectivitate', - 'connectivity.modal.content': 'Nu se poate conecta la rTorrent. Vă rugăm să actualizaţi informaţiile acum.', - 'feeds.add.automatic.download.rule': 'Adaugă Regulă de Descărcare', - 'feeds.add.feed': 'Adaugă Flux', - 'feeds.applicable.feed': 'Flux aplicabil', - 'feeds.apply.tags': 'Aplică etichete', - 'feeds.exclude.pattern': 'Exclude modelul', - 'feeds.existing.feeds': 'Fluxuri existente', - 'feeds.existing.rules': 'Reguli existente', - 'feeds.label': 'Etichetă', - 'feeds.match.count': '{count, plural, =1 {# meci} other {# se potrivește}}', - 'feeds.match.pattern': 'Model de potrivire', - 'feeds.match': 'Meci', - 'feeds.exclude': 'Excludere', - 'feeds.no.feeds.available': 'Nici un flux disponibil.', - 'feeds.no.feeds.defined': 'Nici un flux definit.', - 'feeds.no.rules.defined': 'Nici o regulă definită.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Selectare flux', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Începe la încărcare', - 'feeds.tabs.download.rules': 'Reguli de descărcare', - 'feeds.tabs.feeds': 'Fluxuri', - 'feeds.tabs.heading': 'Fluxuri Torrent', - 'feeds.tags': 'Etichete', - 'feeds.time.hr': 'Ore', - 'feeds.time.min': 'Minute', - 'feeds.time.day': 'Zile', - 'feeds.torrent.destination': 'Destinația Torentului', - 'feeds.url': 'URL', - 'feeds.search': 'Termenul de căutare', - 'feeds.validation.invalid.regular.expression': 'Expresie regulată invalidă.', - 'feeds.validation.must.select.feed': 'Trebuie să selectaţi un flux.', - 'feeds.validation.must.specify.destination': 'Trebuie să specificați o destinație.', - 'feeds.validation.must.specify.label': 'Trebuie să specificați o etichetă.', - 'feeds.validation.must.specify.valid.feed.url': 'Trebuie să specificați un URL de feed valid.', - 'feeds.browse.feeds': 'Răsfoiește feed-uri', - 'filesystem.empty.directory': 'Dosar gol.', - 'filesystem.error.eacces': 'Inundațiile nu au permisiunea de a citi acest director.', - 'filesystem.error.enoent': 'Această cale nu există. Va fi creată.', - 'filesystem.fetching': 'Se preia structura directorului...', - 'filter.all': 'Toate', - 'filter.status.title': 'Filtrare după stare', - 'filter.status.downloading': 'Descărcare', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Activ', - 'filter.status.inactive': 'Inactiv', - 'filter.status.error': 'Eroare', - 'filter.status.stopped': 'Oprit', - 'filter.status.checking': 'Verificare', - 'filter.tracker.title': 'Filtrează după Tracker', - 'filter.tag.title': 'Filtrare după etichetă', - 'filter.untagged': 'Neetichetat', - 'general.ago': 'acum', - 'general.at': 'la', - 'general.to': 'către', - 'general.of': 'din', - 'general.clipboard.copy': 'Copiază', - 'general.clipboard.copied': 'Copiat', - 'mediainfo.execError': - 'A apărut o eroare în timpul executării mediainfo pe server. Verificați dacă mediainfo este instalat și disponibil în PATH pentru Inundație.', - 'mediainfo.fetching': 'Preluare...', - 'mediainfo.heading': 'Ieșire mediainfo', - 'notification.torrent.finished.heading': 'Descărcare finalizată', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Eroare raportată', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Șterge tot', - 'notification.showing': 'Afișare', - 'priority.dont.download': 'Nu descărca', - 'priority.high': 'Ridicat', - 'priority.low': 'scazut', - 'priority.normal': 'Normală', - 'settings.bandwidth.slots.download.divider.label': 'Descarcă Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Descarcă sloturi globale', - 'settings.bandwidth.slots.download.label': 'Descarcă sloturi pe torrent', - 'settings.bandwidth.slots.heading': 'Disponibilitatea sloturilor', - 'settings.bandwidth.slots.upload.divider.label': 'Încarcă sloturile orare', - 'settings.bandwidth.slots.upload.global.label': 'Încărcare sloturi globale', - 'settings.bandwidth.slots.upload.label': 'Încarcă sloturi pe torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Presetări derulante: Descărcare', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Presetări derulante: Încărcare', - 'settings.bandwidth.transferrate.global.throttle.download': 'Globală Rata de Descărcare', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Zbor pentru rata globală de încărcare', - 'settings.bandwidth.transferrate.heading': 'Rata de transfer', - 'settings.connectivity.dht.label': 'Activează DHT', - 'settings.connectivity.dht.port.label': 'Port DHT', - 'settings.connectivity.dpd.heading': 'Descoperirea descentralizată a partenerului', - 'settings.connectivity.incoming.heading': 'Conexiuni de intrare', - 'settings.connectivity.ip.hostname.label': 'IP/Hostname raportat', - 'settings.connectivity.max.http.connections': 'Maxim conexiuni HTTP', - 'settings.connectivity.peer.exchange.label': 'Activează schimbul de parteneri', - 'settings.connectivity.peers.desired.label': 'Parteneri dornici', - 'settings.connectivity.peers.heading': 'Parteneri', - 'settings.connectivity.peers.max.label': 'Maxim Parteneri', - 'settings.connectivity.peers.min.label': 'Minim Parteneri', - 'settings.connectivity.peers.seeding.max.label': 'Seeding Maxim Parteneri', - 'settings.connectivity.peers.seeding.min.label': 'Minim Seeding-ul Partenerilor', - 'settings.connectivity.port.open.label': 'Deschide portul', - 'settings.connectivity.port.randomize.label': 'Port aleator', - 'settings.connectivity.port.range.label': 'Interval port', - 'settings.resources.disk.check.hash.label': 'Verifică Hash la Finalizare', - 'settings.resources.disk.download.location.label': 'Directorul implicit pentru descărcări', - 'settings.resources.disk.heading': 'Disc', - 'settings.resources.max.open.files': 'Maximul de fişiere deschise', - 'settings.resources.memory.heading': 'Memorie', - 'settings.resources.memory.max.label': 'Utilizare maximă memorie', - 'settings.tabs.bandwidth': 'Lățimea benzii', - 'settings.tabs.connectivity': 'Conectivitate', - 'settings.tabs.heading': 'Setări', - 'settings.tabs.resources': 'Resurse', - 'settings.tabs.authentication': 'Autentificare', - 'settings.tabs.userinterface': 'Interfață utilizator', - 'settings.tabs.diskusage': 'Utilizare disc', - 'settings.tabs.about': 'Despre', - 'settings.ui.locale': 'Localizare', - 'settings.ui.language': 'Limba', - 'settings.ui.torrent.list': 'Afișare listă torrent', - 'settings.ui.torrent.size': 'Mărimea Torentului', - 'settings.ui.torrent.size.expanded': 'Vizualizare extinsă', - 'settings.ui.torrent.size.condensed': 'Vedere Condensată', - 'settings.ui.torrent.details.enabled': 'Activat', - 'settings.ui.torrent.details.tags.placement': - 'În vizualizarea extinsă, etichetele funcționează cel mai bine la sfârșitul listei.', - 'settings.ui.displayed.details': 'Coloane Torent Detaliu', - 'settings.diskusage.show': 'Afișare', - 'settings.diskusage.mount.points': 'Puncte de folosire disc', - 'settings.about.flood': 'Despre Inundații', - 'sidebar.button.feeds': 'Fluxuri', - 'sidebar.button.notifications': 'Notificări', - 'sidebar.button.settings': 'Setări', - 'sidebar.button.speedlimits': 'Limite de viteză', - 'sidebar.button.log.out': 'Ieșire din cont', - 'sidebar.search.placeholder': 'Caută torente', - 'sidebar.transferdata.downloaded': 'Descărcat', - 'sidebar.transferdata.uploaded': 'Încărcat', - 'speed.unlimited': 'Nelimitat', - 'unit.size.byte': 'p', - 'unit.size.kilobyte': 'KO', - 'unit.size.megabyte': 'MO', - 'unit.size.gigabyte': 'GO', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'oră', - 'unit.time.minute': 'm', - 'unit.time.second': 'S', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Adaugă Torent', - 'torrents.add.destination.label': 'Destinație', - 'torrents.add.destination.placeholder': 'Destinație', - 'torrents.add.heading': 'Adaugă Torente', - 'torrents.add.start.label': 'Pornește Torentul', - 'torrents.add.tab.file.browse': 'sau faceţi clic pentru a naviga', - 'torrents.add.tab.file.drop': 'Pune niște fișiere aici,', - 'torrents.add.tab.file.title': 'După fișier', - 'torrents.add.tab.url.input.placeholder': 'URL-ul torrent-ului sau link-ul Magnet', - 'torrents.add.tab.url.title': 'După URL', - 'torrents.add.torrents.label': 'Torente', - 'torrents.add.tags': 'Etichete', - 'torrents.destination.base_path': 'Folosiți ca cale de bază', - 'torrents.details.actions.pause': 'Întrerupeți', - 'torrents.details.actions.start': 'Pornire', - 'torrents.details.actions.stop': 'Oprește', - 'torrents.details.details': 'Detalii', - 'torrents.details.files': 'Fișiere', - 'torrents.details.files.loading': 'Se încarcă detaliile fișierului...', - 'torrents.details.files.download.file': `{count, plural, =1 {Descarcă fişierul} other {Descarcă fişierele}}`, - 'torrents.details.general.comment': 'Comentariu', - 'torrents.details.general.connected': '{connected} conectat din {total}', - 'torrents.details.general.date.added': 'Adăugat', - 'torrents.details.general.date.created': 'Data creării', - 'torrents.details.general.downloaded': 'Descărcat', - 'torrents.details.general.free.disk.space': 'Spațiu liber pe disc', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Generalități', - 'torrents.details.general.heading.torrent': 'Torent', - 'torrents.details.general.heading.tracker': 'Urmaritor', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Locaţie', - 'torrents.details.general.none': 'Niciunul', - 'torrents.details.general.peers': 'Parteneri', - 'torrents.details.general.scheduler.ignored': 'Ignorat', - 'torrents.details.general.scheduler.obeyed': 'Dincolo', - 'torrents.details.general.scheduler': 'Programator', - 'torrents.details.general.seeds': 'Semințe', - 'torrents.details.general.size': 'Dimensiune', - 'torrents.details.general.tags': 'Etichete', - 'torrents.details.general.tracker.message': 'Mesaj de urmărire', - 'torrents.details.general.type.private': 'Privat', - 'torrents.details.general.type.public': 'Publice', - 'torrents.details.general.type': 'Tip', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Nu există date despre parteneri pentru acest torent.', - 'torrents.details.peers': 'Parteneri', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} a selectat fişierul} other {{countElement} fişierele selectate}}`, - 'torrents.details.selected.files.set.priority': 'Setare prioritate', - 'torrents.details.trackers.no.data': 'Nu există date despre tracker pentru acest torent.', - 'torrents.details.trackers.type': 'Tip', - 'torrents.details.trackers': 'Trackeri', - 'torrents.list.clear.filters': 'Șterge filtrele', - 'torrents.list.context.check.hash': 'Verifică Hash', - 'torrents.list.context.details': 'Detalii Torent', - 'torrents.list.context.move': 'Setează Locația Torentului', - 'torrents.list.context.pause': 'Întrerupeți', - 'torrents.list.context.priority': 'Prioritate', - 'torrents.list.context.remove': 'Elimină', - 'torrents.list.context.set.tags': 'Setare etichete', - 'torrents.list.context.start': 'Pornire', - 'torrents.list.context.stop': 'Oprește', - 'torrents.list.no.torrents': 'Nu sunt torente de afișat.', - 'torrents.list.drop': 'Plasați fișierele aici pentru a le adăuga la rTorrent.', - 'torrents.list.cannot.connect': 'Nu se poate conecta la rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'din', - 'torrents.move.button.set.location': 'Setează locația', - 'torrents.move.button.state.setting': 'Setare...', - 'torrents.move.data.label': 'Mutați datele', - 'torrents.move.check_hash.label': 'Verifică hash', - 'torrents.move.heading': 'Setează Locația Torentului', - 'torrents.properties.date.added': 'Adăugat', - 'torrents.properties.base.path': 'Calea de bază', - 'torrents.properties.comment': 'Comentariu', - 'torrents.properties.creation.date': 'Data creării', - 'torrents.properties.download.speed': 'Viteza de Descărcare', - 'torrents.properties.download.total': 'Descărcat', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Spațiu liber pe disc', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignoră planificatorul', - 'torrents.properties.is.private': 'Privat', - 'torrents.properties.name': 'Nume', - 'torrents.properties.percentage': 'Procent complet', - 'torrents.properties.ratio': 'Raport', - 'torrents.properties.size': 'Dimensiune fișier', - 'torrents.properties.tags': 'Etichete', - 'torrents.properties.tracker.message': 'Mesaj de urmărire', - 'torrents.properties.upload.speed': 'Viteza de Încărcare', - 'torrents.properties.upload.total': 'Încărcat', - 'torrents.remove.are.you.sure': `Ești sigur că vrei să ștergi {count, plural, =1 {# torrente} other {# torrente}}?`, - 'torrents.remove.delete.data': 'Ștergere date', - 'torrents.remove.error.no.torrents.selected': 'Nu ai selectat niciun torent.', - 'torrents.remove': 'Elimină Torentele', - 'torrents.set.tags.button.set': 'Setare etichete', - 'torrents.set.tags.heading': 'Setare etichete', - 'torrents.set.tags.enter.tags': 'Introduceți etichetele', - 'torrents.sort.title': 'Sortează după', - 'connection-interruption.heading': 'Nu se poate conecta la rTorrent', - 'connection-interruption.verify-settings-prompt': 'Să verificăm setările de conexiune.', - 'connection-interruption.verification-error': 'Conexiunea nu a putut fi verificată.', - 'connection-interruption.verification-success': 'Conexiune reușită', - 'status.diskusage.title': 'Utilizare disc', - 'locale.language.auto': 'Automat', -}; diff --git a/client/src/javascript/i18n/translations/ro.json b/client/src/javascript/i18n/translations/ro.json new file mode 100644 index 000000000..a3963e3fe --- /dev/null +++ b/client/src/javascript/i18n/translations/ro.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Pornește Torentul", + "actionbar.button.stop.torrent": "Oprește Torentul", + "actionbar.button.add.torrent": "Adaugă Torent", + "actionbar.button.remove.torrent": "Elimină Torentul", + "alert.torrent.add": "Ai adăugat cu succes {countElement} {count, plural, =1 {torrente} other {torrente}}", + "alert.torrent.add.failed": "Nu s-a putut adăuga {countElement} {count, plural, =1 {torrent} other {torrente}}", + "alert.torrent.move": "Mutat cu succes {countElement} {count, plural, =1 {torrent} other {torrente}}", + "alert.torrent.move.failed": "Nu s-a reușit mutarea {countElement} {count, plural, =1 {torrent} other {torente}}", + "alert.torrent.remove": "Ai eliminat cu succes {countElement} {count, plural, =1 {torrent} other {torrente}}", + "alert.torrent.remove.failed": "Nu s-a reușit ștergerea {countElement} {count, plural, =1 {torrent} other {torrente}}", + "alert.settings.saved": "Setări salvate cu succes.", + "auth.add.user": "Adaugă utilizator", + "auth.connectionType": "tipul conexiunii rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Socket Unix", + "auth.create.account": "Creare cont", + "auth.create.an.account": "Creează un cont", + "auth.create.an.account.intro": "Bine ai venit la inundație!", + "auth.current.user": "Utilizator curent", + "auth.error.username.empty": "Numele de utilizator nu poate fi gol.", + "auth.log.in": "Autentificare", + "auth.login": "Autentificare", + "auth.password": "Parolă", + "auth.user.accounts": "Conturi de utilizator", + "auth.username": "Nume", + "auth.admin": "Admin", + "auth.message.not.admin": "Utilizatorul nu este Administrator", + "auth.rtorrentHost": "gazdă rTorrent", + "auth.rtorrentPort": "port rTorrent", + "auth.rtorrentSocket": "Socket rTorrent", + "auth.rtorrentSocketPath": "rTorrent Calea Socket", + "button.add": "Adăugare", + "button.cancel": "Anulează", + "button.no": "Nr", + "button.save": "Salvează setările", + "button.save.feed": "Salvează", + "button.test": "Testare", + "button.state.adding": "Adăugare...", + "button.yes": "Da", + "button.new": "Nou", + "connectivity.modal.title": "Problemă de conectivitate", + "connectivity.modal.content": "Nu se poate conecta la rTorrent. Vă rugăm să actualizaţi informaţiile acum.", + "feeds.add.automatic.download.rule": "Adaugă Regulă de Descărcare", + "feeds.add.feed": "Adaugă Flux", + "feeds.applicable.feed": "Flux aplicabil", + "feeds.apply.tags": "Aplică etichete", + "feeds.exclude.pattern": "Exclude modelul", + "feeds.existing.feeds": "Fluxuri existente", + "feeds.existing.rules": "Reguli existente", + "feeds.label": "Etichetă", + "feeds.match.count": "{count, plural, =1 {# meci} other {# se potrivește}}", + "feeds.match.pattern": "Model de potrivire", + "feeds.match": "Meci", + "feeds.exclude": "Excludere", + "feeds.no.feeds.available": "Nici un flux disponibil.", + "feeds.no.feeds.defined": "Nici un flux definit.", + "feeds.no.rules.defined": "Nici o regulă definită.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Selectare flux", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Începe la încărcare", + "feeds.tabs.download.rules": "Reguli de descărcare", + "feeds.tabs.feeds": "Fluxuri", + "feeds.tabs.heading": "Fluxuri Torrent", + "feeds.tags": "Etichete", + "feeds.time.hr": "Ore", + "feeds.time.min": "Minute", + "feeds.time.day": "Zile", + "feeds.torrent.destination": "Destinația Torentului", + "feeds.url": "URL", + "feeds.search": "Termenul de căutare", + "feeds.validation.invalid.regular.expression": "Expresie regulată invalidă.", + "feeds.validation.must.select.feed": "Trebuie să selectaţi un flux.", + "feeds.validation.must.specify.destination": "Trebuie să specificați o destinație.", + "feeds.validation.must.specify.label": "Trebuie să specificați o etichetă.", + "feeds.validation.must.specify.valid.feed.url": "Trebuie să specificați un URL de feed valid.", + "feeds.browse.feeds": "Răsfoiește feed-uri", + "filesystem.empty.directory": "Dosar gol.", + "filesystem.error.eacces": "Inundațiile nu au permisiunea de a citi acest director.", + "filesystem.error.enoent": "Această cale nu există. Va fi creată.", + "filesystem.fetching": "Se preia structura directorului...", + "filter.all": "Toate", + "filter.status.title": "Filtrare după stare", + "filter.status.downloading": "Descărcare", + "filter.status.completed": "Complete", + "filter.status.active": "Activ", + "filter.status.inactive": "Inactiv", + "filter.status.error": "Eroare", + "filter.status.stopped": "Oprit", + "filter.status.checking": "Verificare", + "filter.tracker.title": "Filtrează după Tracker", + "filter.tag.title": "Filtrare după etichetă", + "filter.untagged": "Neetichetat", + "general.ago": "acum", + "general.at": "la", + "general.to": "către", + "general.of": "din", + "general.clipboard.copy": "Copiază", + "general.clipboard.copied": "Copiat", + "mediainfo.execError": "A apărut o eroare în timpul executării mediainfo pe server. Verificați dacă mediainfo este instalat și disponibil în PATH pentru Inundație.", + "mediainfo.fetching": "Preluare...", + "mediainfo.heading": "Ieșire mediainfo", + "notification.torrent.finished.heading": "Descărcare finalizată", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Eroare raportată", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Șterge tot", + "notification.showing": "Afișare", + "priority.dont.download": "Nu descărca", + "priority.high": "Ridicat", + "priority.low": "scazut", + "priority.normal": "Normală", + "settings.bandwidth.slots.download.divider.label": "Descarcă Slots Divider", + "settings.bandwidth.slots.download.global.label": "Descarcă sloturi globale", + "settings.bandwidth.slots.download.label": "Descarcă sloturi pe torrent", + "settings.bandwidth.slots.heading": "Disponibilitatea sloturilor", + "settings.bandwidth.slots.upload.divider.label": "Încarcă sloturile orare", + "settings.bandwidth.slots.upload.global.label": "Încărcare sloturi globale", + "settings.bandwidth.slots.upload.label": "Încarcă sloturi pe torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Presetări derulante: Descărcare", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Presetări derulante: Încărcare", + "settings.bandwidth.transferrate.global.throttle.download": "Globală Rata de Descărcare", + "settings.bandwidth.transferrate.global.throttle.upload": "Zbor pentru rata globală de încărcare", + "settings.bandwidth.transferrate.heading": "Rata de transfer", + "settings.connectivity.dht.label": "Activează DHT", + "settings.connectivity.dht.port.label": "Port DHT", + "settings.connectivity.dpd.heading": "Descoperirea descentralizată a partenerului", + "settings.connectivity.incoming.heading": "Conexiuni de intrare", + "settings.connectivity.ip.hostname.label": "IP/Hostname raportat", + "settings.connectivity.max.http.connections": "Maxim conexiuni HTTP", + "settings.connectivity.peer.exchange.label": "Activează schimbul de parteneri", + "settings.connectivity.peers.desired.label": "Parteneri dornici", + "settings.connectivity.peers.heading": "Parteneri", + "settings.connectivity.peers.max.label": "Maxim Parteneri", + "settings.connectivity.peers.min.label": "Minim Parteneri", + "settings.connectivity.peers.seeding.max.label": "Seeding Maxim Parteneri", + "settings.connectivity.peers.seeding.min.label": "Minim Seeding-ul Partenerilor", + "settings.connectivity.port.open.label": "Deschide portul", + "settings.connectivity.port.randomize.label": "Port aleator", + "settings.connectivity.port.range.label": "Interval port", + "settings.resources.disk.check.hash.label": "Verifică Hash la Finalizare", + "settings.resources.disk.download.location.label": "Directorul implicit pentru descărcări", + "settings.resources.disk.heading": "Disc", + "settings.resources.max.open.files": "Maximul de fişiere deschise", + "settings.resources.memory.heading": "Memorie", + "settings.resources.memory.max.label": "Utilizare maximă memorie", + "settings.tabs.bandwidth": "Lățimea benzii", + "settings.tabs.connectivity": "Conectivitate", + "settings.tabs.heading": "Setări", + "settings.tabs.resources": "Resurse", + "settings.tabs.authentication": "Autentificare", + "settings.tabs.userinterface": "Interfață utilizator", + "settings.tabs.diskusage": "Utilizare disc", + "settings.tabs.about": "Despre", + "settings.ui.locale": "Localizare", + "settings.ui.language": "Limba", + "settings.ui.torrent.list": "Afișare listă torrent", + "settings.ui.torrent.size": "Mărimea Torentului", + "settings.ui.torrent.size.expanded": "Vizualizare extinsă", + "settings.ui.torrent.size.condensed": "Vedere Condensată", + "settings.ui.torrent.details.enabled": "Activat", + "settings.ui.torrent.details.tags.placement": "În vizualizarea extinsă, etichetele funcționează cel mai bine la sfârșitul listei.", + "settings.ui.displayed.details": "Coloane Torent Detaliu", + "settings.diskusage.show": "Afișare", + "settings.diskusage.mount.points": "Puncte de folosire disc", + "settings.about.flood": "Despre Inundații", + "sidebar.button.feeds": "Fluxuri", + "sidebar.button.notifications": "Notificări", + "sidebar.button.settings": "Setări", + "sidebar.button.speedlimits": "Limite de viteză", + "sidebar.button.log.out": "Ieșire din cont", + "sidebar.search.placeholder": "Caută torente", + "sidebar.transferdata.downloaded": "Descărcat", + "sidebar.transferdata.uploaded": "Încărcat", + "speed.unlimited": "Nelimitat", + "unit.size.byte": "p", + "unit.size.kilobyte": "KO", + "unit.size.megabyte": "MO", + "unit.size.gigabyte": "GO", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "oră", + "unit.time.minute": "m", + "unit.time.second": "S", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Adaugă Torent", + "torrents.add.destination.label": "Destinație", + "torrents.add.destination.placeholder": "Destinație", + "torrents.add.heading": "Adaugă Torente", + "torrents.add.start.label": "Pornește Torentul", + "torrents.add.tab.file.browse": "sau faceţi clic pentru a naviga", + "torrents.add.tab.file.drop": "Pune niște fișiere aici,", + "torrents.add.tab.file.title": "După fișier", + "torrents.add.tab.url.input.placeholder": "URL-ul torrent-ului sau link-ul Magnet", + "torrents.add.tab.url.title": "După URL", + "torrents.add.torrents.label": "Torente", + "torrents.add.tags": "Etichete", + "torrents.destination.base_path": "Folosiți ca cale de bază", + "torrents.details.actions.pause": "Întrerupeți", + "torrents.details.actions.start": "Pornire", + "torrents.details.actions.stop": "Oprește", + "torrents.details.details": "Detalii", + "torrents.details.files": "Fișiere", + "torrents.details.files.loading": "Se încarcă detaliile fișierului...", + "torrents.details.files.download.file": "{count, plural, =1 {Descarcă fişierul} other {Descarcă fişierele}}", + "torrents.details.general.comment": "Comentariu", + "torrents.details.general.connected": "{connected} conectat din {total}", + "torrents.details.general.date.added": "Adăugat", + "torrents.details.general.date.created": "Data creării", + "torrents.details.general.downloaded": "Descărcat", + "torrents.details.general.free.disk.space": "Spațiu liber pe disc", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Generalități", + "torrents.details.general.heading.torrent": "Torent", + "torrents.details.general.heading.tracker": "Urmaritor", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Locaţie", + "torrents.details.general.none": "Niciunul", + "torrents.details.general.peers": "Parteneri", + "torrents.details.general.scheduler.ignored": "Ignorat", + "torrents.details.general.scheduler.obeyed": "Dincolo", + "torrents.details.general.scheduler": "Programator", + "torrents.details.general.seeds": "Semințe", + "torrents.details.general.size": "Dimensiune", + "torrents.details.general.tags": "Etichete", + "torrents.details.general.tracker.message": "Mesaj de urmărire", + "torrents.details.general.type.private": "Privat", + "torrents.details.general.type.public": "Publice", + "torrents.details.general.type": "Tip", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Nu există date despre parteneri pentru acest torent.", + "torrents.details.peers": "Parteneri", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} a selectat fişierul} other {{countElement} fişierele selectate}}", + "torrents.details.selected.files.set.priority": "Setare prioritate", + "torrents.details.trackers.no.data": "Nu există date despre tracker pentru acest torent.", + "torrents.details.trackers.type": "Tip", + "torrents.details.trackers": "Trackeri", + "torrents.list.clear.filters": "Șterge filtrele", + "torrents.list.context.check.hash": "Verifică Hash", + "torrents.list.context.details": "Detalii Torent", + "torrents.list.context.move": "Setează Locația Torentului", + "torrents.list.context.pause": "Întrerupeți", + "torrents.list.context.priority": "Prioritate", + "torrents.list.context.remove": "Elimină", + "torrents.list.context.set.tags": "Setare etichete", + "torrents.list.context.start": "Pornire", + "torrents.list.context.stop": "Oprește", + "torrents.list.no.torrents": "Nu sunt torente de afișat.", + "torrents.list.drop": "Plasați fișierele aici pentru a le adăuga la rTorrent.", + "torrents.list.cannot.connect": "Nu se poate conecta la rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "din", + "torrents.move.button.set.location": "Setează locația", + "torrents.move.button.state.setting": "Setare...", + "torrents.move.data.label": "Mutați datele", + "torrents.move.check_hash.label": "Verifică hash", + "torrents.move.heading": "Setează Locația Torentului", + "torrents.properties.date.added": "Adăugat", + "torrents.properties.base.path": "Calea de bază", + "torrents.properties.comment": "Comentariu", + "torrents.properties.creation.date": "Data creării", + "torrents.properties.download.speed": "Viteza de Descărcare", + "torrents.properties.download.total": "Descărcat", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Spațiu liber pe disc", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignoră planificatorul", + "torrents.properties.is.private": "Privat", + "torrents.properties.name": "Nume", + "torrents.properties.percentage": "Procent complet", + "torrents.properties.ratio": "Raport", + "torrents.properties.size": "Dimensiune fișier", + "torrents.properties.tags": "Etichete", + "torrents.properties.tracker.message": "Mesaj de urmărire", + "torrents.properties.upload.speed": "Viteza de Încărcare", + "torrents.properties.upload.total": "Încărcat", + "torrents.remove.are.you.sure": "Ești sigur că vrei să ștergi {count, plural, =1 {# torrente} other {# torrente}}?", + "torrents.remove.delete.data": "Ștergere date", + "torrents.remove.error.no.torrents.selected": "Nu ai selectat niciun torent.", + "torrents.remove": "Elimină Torentele", + "torrents.set.tags.button.set": "Setare etichete", + "torrents.set.tags.heading": "Setare etichete", + "torrents.set.tags.enter.tags": "Introduceți etichetele", + "torrents.sort.title": "Sortează după", + "connection-interruption.heading": "Nu se poate conecta la rTorrent", + "connection-interruption.verify-settings-prompt": "Să verificăm setările de conexiune.", + "connection-interruption.verification-error": "Conexiunea nu a putut fi verificată.", + "connection-interruption.verification-success": "Conexiune reușită", + "status.diskusage.title": "Utilizare disc", + "locale.language.auto": "Automat" +} diff --git a/client/src/javascript/i18n/translations/ru.js b/client/src/javascript/i18n/translations/ru.js deleted file mode 100644 index 187e22a55..000000000 --- a/client/src/javascript/i18n/translations/ru.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Начать торрент', - 'actionbar.button.stop.torrent': 'Остановить торрент', - 'actionbar.button.add.torrent': 'Добавить торрент', - 'actionbar.button.remove.torrent': 'Удалить торрент', - 'alert.torrent.add': `Успешно добавлено {countElement} {count, plural, =1 {} other {торрентов}}`, - 'alert.torrent.add.failed': `Не удалось добавить {countElement} {count, plural, =1 {торрент} other {торрентов}}`, - 'alert.torrent.move': `Успешно перемещено {countElement} {count, plural, =1 {} other {торрентов}}`, - 'alert.torrent.move.failed': `Не удалось переместить {countElement} {count, plural, =1 {} other {торрентов}}`, - 'alert.torrent.remove': `Удалено {countElement} {count, plural, =1 {торрент} other {торрентов}}`, - 'alert.torrent.remove.failed': `Не удалось удалить {countElement} {count, plural, =1 {торрент} other {торрентов}}`, - 'alert.settings.saved': 'Настройки успешно сохранены.', - 'auth.add.user': 'Добавить пользователя', - 'auth.connectionType': 'Тип соединения rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix сокет', - 'auth.create.account': 'Создать Аккаунт', - 'auth.create.an.account': 'Создать аккаунт', - 'auth.create.an.account.intro': 'Добро пожаловать в Flood!', - 'auth.current.user': 'Текущий пользователь', - 'auth.error.username.empty': 'Имя пользователя не может быть пустым.', - 'auth.log.in': 'Войти', - 'auth.login': 'Логин', - 'auth.password': 'Пароль', - 'auth.user.accounts': 'Учетные записи пользователей', - 'auth.username': 'Имя пользователя', - 'auth.admin': 'Админ', - 'auth.message.not.admin': 'Пользователь не является администратором', - 'auth.rtorrentHost': 'rTorrent хост', - 'auth.rtorrentPort': 'rTorrent Порт', - 'auth.rtorrentSocket': 'rTorrent сокет', - 'auth.rtorrentSocketPath': 'Путь к сокету rTorrent', - 'button.add': 'Добавить', - 'button.cancel': 'Отмена', - 'button.no': 'Нет', - 'button.save': 'Сохранить настройки', - 'button.save.feed': 'Сохранить', - 'button.test': 'Тест', - 'button.state.adding': 'Добавление...', - 'button.yes': 'Да', - 'button.new': 'Новый', - 'connectivity.modal.title': 'Проблема с подключением', - 'connectivity.modal.content': 'Не удается подключиться к rTorrent. Пожалуйста, обновите информацию сейчас.', - 'feeds.add.automatic.download.rule': 'Добавить правило загрузки', - 'feeds.add.feed': 'Добавить канал', - 'feeds.applicable.feed': 'Применимая лента', - 'feeds.apply.tags': 'Применить теги', - 'feeds.exclude.pattern': 'Исключить шаблон', - 'feeds.existing.feeds': 'Существующие каналы', - 'feeds.existing.rules': 'Существующие правила', - 'feeds.label': 'Метка', - 'feeds.match.count': '{count, plural, =1 {# совпадает} other {# совпадает}}', - 'feeds.match.pattern': 'Совпадение с шаблоном', - 'feeds.match': 'Матч', - 'feeds.exclude': 'Исключить', - 'feeds.no.feeds.available': 'Нет доступных лент.', - 'feeds.no.feeds.defined': 'Каналы не определены.', - 'feeds.no.rules.defined': 'Правила не определены.', - 'feeds.regEx': 'РегЭкс', - 'feeds.select.feed': 'Выбрать ленту', - 'feeds.select.interval': 'Интервал', - 'feeds.start.on.load': 'Запуск при загрузке', - 'feeds.tabs.download.rules': 'Правила загрузки', - 'feeds.tabs.feeds': 'Ленты', - 'feeds.tabs.heading': 'Каналы торрентов', - 'feeds.tags': 'Теги', - 'feeds.time.hr': 'Часы', - 'feeds.time.min': 'Минут', - 'feeds.time.day': 'Дней', - 'feeds.torrent.destination': 'Назначение торрента', - 'feeds.url': 'URL', - 'feeds.search': 'Поисковый термин', - 'feeds.validation.invalid.regular.expression': 'Неверное регулярное выражение.', - 'feeds.validation.must.select.feed': 'Вы должны выбрать канал.', - 'feeds.validation.must.specify.destination': 'Вы должны указать место назначения.', - 'feeds.validation.must.specify.label': 'Необходимо указать метку.', - 'feeds.validation.must.specify.valid.feed.url': 'Вы должны указать корректный URL канала.', - 'feeds.browse.feeds': 'Просмотр каналов', - 'filesystem.empty.directory': 'Пустой каталог.', - 'filesystem.error.eacces': 'Flood не имеет разрешения на чтение этого каталога.', - 'filesystem.error.enoent': 'Этот путь не существует. Он будет создан.', - 'filesystem.fetching': 'Получение структуры директорий...', - 'filter.all': 'Все', - 'filter.status.title': 'Фильтр по статусу', - 'filter.status.downloading': 'Скачивание', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Активный', - 'filter.status.inactive': 'Неактивный', - 'filter.status.error': 'Ошибка', - 'filter.status.stopped': 'Остановлено', - 'filter.status.checking': 'Проверка', - 'filter.tracker.title': 'Фильтровать по трекеру', - 'filter.tag.title': 'Фильтр по тегу', - 'filter.untagged': 'Без тегов', - 'general.ago': 'назад', - 'general.at': 'в', - 'general.to': 'до', - 'general.of': 'из', - 'general.clipboard.copy': 'Копировать', - 'general.clipboard.copied': 'Скопировано', - 'mediainfo.execError': - 'Произошла ошибка при запуске mediainfo на сервере. Убедитесь, что mediainfo установлен и доступен в PATH для Flood.', - 'mediainfo.fetching': 'Извлечение...', - 'mediainfo.heading': 'Вывод Mediainfo', - 'notification.torrent.finished.heading': 'Загрузка завершена', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Сообщение об ошибке', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Очистить все', - 'notification.showing': 'Показано', - 'priority.dont.download': 'Не загружать', - 'priority.high': 'Высокий', - 'priority.low': 'Низкий', - 'priority.normal': 'Обычный', - 'settings.bandwidth.slots.download.divider.label': 'Скачать Слоты Разделителя', - 'settings.bandwidth.slots.download.global.label': 'Скачать слоты по всему', - 'settings.bandwidth.slots.download.label': 'Скачать слоты на торрент', - 'settings.bandwidth.slots.heading': 'Доступность слота', - 'settings.bandwidth.slots.upload.divider.label': 'Разделитель слотов загрузки', - 'settings.bandwidth.slots.upload.global.label': 'Глобальная загрузка слотов', - 'settings.bandwidth.slots.upload.label': 'Загрузить слоты на торрент', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Шаблоны комбобоксов: Скачать', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Шаблоны комбобоксов: Загрузить', - 'settings.bandwidth.transferrate.global.throttle.download': 'Глобальная скорость загрузки', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Глобальный тротттл скорости загрузки', - 'settings.bandwidth.transferrate.heading': 'Процент трансфертов', - 'settings.connectivity.dht.label': 'Включить DHT', - 'settings.connectivity.dht.port.label': 'DHT порт', - 'settings.connectivity.dpd.heading': 'Децентрализованное обнаружение пиров', - 'settings.connectivity.incoming.heading': 'Входящие соединения', - 'settings.connectivity.ip.hostname.label': 'Сообщил IP/имя хоста', - 'settings.connectivity.max.http.connections': 'Максимум HTTP-соединений', - 'settings.connectivity.peer.exchange.label': 'Включить обмен пирами', - 'settings.connectivity.peers.desired.label': 'Желаемые узлы', - 'settings.connectivity.peers.heading': 'Личеры', - 'settings.connectivity.peers.max.label': 'Максимум пиров', - 'settings.connectivity.peers.min.label': 'Минимум пиров', - 'settings.connectivity.peers.seeding.max.label': 'Максимум раздачи пиров', - 'settings.connectivity.peers.seeding.min.label': 'Минимум раздачи пиров', - 'settings.connectivity.port.open.label': 'Открыть порт', - 'settings.connectivity.port.randomize.label': 'Случайный порт', - 'settings.connectivity.port.range.label': 'Диапазон портов', - 'settings.resources.disk.check.hash.label': 'Проверить хэш при завершении', - 'settings.resources.disk.download.location.label': 'Папка загрузок по умолчанию', - 'settings.resources.disk.heading': 'Диск', - 'settings.resources.max.open.files': 'Максимальное количество открытых файлов', - 'settings.resources.memory.heading': 'Память', - 'settings.resources.memory.max.label': 'Максимальное использование памяти', - 'settings.tabs.bandwidth': 'Трафик', - 'settings.tabs.connectivity': 'Подключение', - 'settings.tabs.heading': 'Настройки', - 'settings.tabs.resources': 'Ресурсы', - 'settings.tabs.authentication': 'Проверка подлинности', - 'settings.tabs.userinterface': 'Интерфейс пользователя', - 'settings.tabs.diskusage': 'Использование диска', - 'settings.tabs.about': 'О программе', - 'settings.ui.locale': 'Язык', - 'settings.ui.language': 'Язык', - 'settings.ui.torrent.list': 'Отображение списка торрентов', - 'settings.ui.torrent.size': 'Размер торрента', - 'settings.ui.torrent.size.expanded': 'Расширенный вид', - 'settings.ui.torrent.size.condensed': 'Сжатый вид', - 'settings.ui.torrent.details.enabled': 'Включено', - 'settings.ui.torrent.details.tags.placement': 'В расширенном виде теги работают лучше в конце списка.', - 'settings.ui.displayed.details': 'Детали Торрента', - 'settings.diskusage.show': 'Показать', - 'settings.diskusage.mount.points': 'Точки монтирования диска', - 'settings.about.flood': 'О Flood', - 'sidebar.button.feeds': 'Ленты', - 'sidebar.button.notifications': 'Уведомления', - 'sidebar.button.settings': 'Настройки', - 'sidebar.button.speedlimits': 'Ограничения скорости', - 'sidebar.button.log.out': 'Выйти', - 'sidebar.search.placeholder': 'Поиск торрентов', - 'sidebar.transferdata.downloaded': 'Загружено', - 'sidebar.transferdata.uploaded': 'Загружено', - 'speed.unlimited': 'Неограниченный', - 'unit.size.byte': 'В', - 'unit.size.kilobyte': 'кБ', - 'unit.size.megabyte': 'МБ', - 'unit.size.gigabyte': 'Гб', - 'unit.size.terabyte': 'ТБ', - 'unit.speed': '{baseUnit}/с', - 'unit.time.year': 'yr', - 'unit.time.week': 'ск', - 'unit.time.day': 'д', - 'unit.time.hour': 'час', - 'unit.time.minute': 'м', - 'unit.time.second': 'с', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Добавить торрент', - 'torrents.add.destination.label': 'Назначение', - 'torrents.add.destination.placeholder': 'Назначение', - 'torrents.add.heading': 'Добавить торренты', - 'torrents.add.start.label': 'Начать торрент', - 'torrents.add.tab.file.browse': 'или нажмите для просмотра', - 'torrents.add.tab.file.drop': 'Перетащите файлы сюда', - 'torrents.add.tab.file.title': 'По файлу', - 'torrents.add.tab.url.input.placeholder': 'Торрент URL или Magnet ссылка', - 'torrents.add.tab.url.title': 'По URL', - 'torrents.add.torrents.label': 'Торренты', - 'torrents.add.tags': 'Теги', - 'torrents.destination.base_path': 'Использовать как базовый путь', - 'torrents.details.actions.pause': 'Пауза', - 'torrents.details.actions.start': 'Начать', - 'torrents.details.actions.stop': 'Остановить', - 'torrents.details.details': 'Детали', - 'torrents.details.files': 'Файлы', - 'torrents.details.files.loading': 'Загрузка деталей файла...', - 'torrents.details.files.download.file': `{count, plural, =1 {Скачайте файл} other {Загрузите файлы}}`, - 'torrents.details.general.comment': 'Комментарий', - 'torrents.details.general.connected': '{connected} подключено к {total}', - 'torrents.details.general.date.added': 'Добавлено', - 'torrents.details.general.date.created': 'Дата создания', - 'torrents.details.general.downloaded': 'Загружено', - 'torrents.details.general.free.disk.space': 'Свободное место на диске', - 'torrents.details.general.hash': 'Хэш', - 'torrents.details.general.heading.general': 'Общие положения', - 'torrents.details.general.heading.torrent': 'Торрент', - 'torrents.details.general.heading.tracker': 'Трекер', - 'torrents.details.general.heading.transfer': 'Перевод', - 'torrents.details.general.location': 'Местоположение', - 'torrents.details.general.none': 'Нет', - 'torrents.details.general.peers': 'Личеры', - 'torrents.details.general.scheduler.ignored': 'Игнорировать', - 'torrents.details.general.scheduler.obeyed': 'Пробежал', - 'torrents.details.general.scheduler': 'Планировщик', - 'torrents.details.general.seeds': 'Сиды', - 'torrents.details.general.size': 'Размер', - 'torrents.details.general.tags': 'Теги', - 'torrents.details.general.tracker.message': 'Сообщение трекера', - 'torrents.details.general.type.private': 'Приватный', - 'torrents.details.general.type.public': 'Публичный', - 'torrents.details.general.type': 'Тип', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Нет данных для этого торрента.', - 'torrents.details.peers': 'Личеры', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} Выбранный файл} other {{countElement} выбрал файлы}}`, - 'torrents.details.selected.files.set.priority': 'Установить приоритет', - 'torrents.details.trackers.no.data': 'Для этого торрента нет данных трекера.', - 'torrents.details.trackers.type': 'Тип', - 'torrents.details.trackers': 'Трекеры', - 'torrents.list.clear.filters': 'Очистить фильтры', - 'torrents.list.context.check.hash': 'Проверить хэш', - 'torrents.list.context.details': 'Детали торрента', - 'torrents.list.context.move': 'Установить местоположение торрента', - 'torrents.list.context.pause': 'Пауза', - 'torrents.list.context.priority': 'Приоритет', - 'torrents.list.context.remove': 'Удалить', - 'torrents.list.context.set.tags': 'Установить теги', - 'torrents.list.context.start': 'Начать', - 'torrents.list.context.stop': 'Остановить', - 'torrents.list.no.torrents': 'Нет торрентов для отображения.', - 'torrents.list.drop': 'Перетащите файлы сюда, чтобы добавить их в rTorrent.', - 'torrents.list.cannot.connect': 'Не удается подключиться к rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'из', - 'torrents.move.button.set.location': 'Установить местоположение', - 'torrents.move.button.state.setting': 'Настройка...', - 'torrents.move.data.label': 'Переместить данные', - 'torrents.move.check_hash.label': 'Проверять хэш', - 'torrents.move.heading': 'Установить местоположение торрента', - 'torrents.properties.date.added': 'Добавлено', - 'torrents.properties.base.path': 'Базовый путь', - 'torrents.properties.comment': 'Комментарий', - 'torrents.properties.creation.date': 'Дата создания', - 'torrents.properties.download.speed': 'Скорость загрузки', - 'torrents.properties.download.total': 'Загружено', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Свободное место на диске', - 'torrents.properties.hash': 'Хэш', - 'torrents.properties.ignore.schedule': 'Игнорировать планировщик', - 'torrents.properties.is.private': 'Приватный', - 'torrents.properties.name': 'Наименование', - 'torrents.properties.percentage': 'Процент завершённых', - 'torrents.properties.ratio': 'Коэффициент', - 'torrents.properties.size': 'Размер файла', - 'torrents.properties.tags': 'Теги', - 'torrents.properties.tracker.message': 'Сообщение трекера', - 'torrents.properties.upload.speed': 'Скорость отдачи', - 'torrents.properties.upload.total': 'Загружено', - 'torrents.remove.are.you.sure': `Вы уверены, что хотите удалить {count, plural, =1 {# торрент} other {# торренты}}? ?`, - 'torrents.remove.delete.data': 'Удалить данные', - 'torrents.remove.error.no.torrents.selected': 'Вы не выбрали ни одного торрента.', - 'torrents.remove': 'Удалить торренты', - 'torrents.set.tags.button.set': 'Установить теги', - 'torrents.set.tags.heading': 'Установить теги', - 'torrents.set.tags.enter.tags': 'Введите теги', - 'torrents.sort.title': 'Сортировать по', - 'connection-interruption.heading': 'Не удается подключиться к rTorrent', - 'connection-interruption.verify-settings-prompt': 'Давайте проверим настройки подключения.', - 'connection-interruption.verification-error': 'Соединение не может быть проверено.', - 'connection-interruption.verification-success': 'Успешное подключение', - 'status.diskusage.title': 'Использование диска', - 'locale.language.auto': 'Автоматически', -}; diff --git a/client/src/javascript/i18n/translations/ru.json b/client/src/javascript/i18n/translations/ru.json new file mode 100644 index 000000000..b9b350eb8 --- /dev/null +++ b/client/src/javascript/i18n/translations/ru.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Начать торрент", + "actionbar.button.stop.torrent": "Остановить торрент", + "actionbar.button.add.torrent": "Добавить торрент", + "actionbar.button.remove.torrent": "Удалить торрент", + "alert.torrent.add": "Успешно добавлено {countElement} {count, plural, =1 {} other {торрентов}}", + "alert.torrent.add.failed": "Не удалось добавить {countElement} {count, plural, =1 {торрент} other {торрентов}}", + "alert.torrent.move": "Успешно перемещено {countElement} {count, plural, =1 {} other {торрентов}}", + "alert.torrent.move.failed": "Не удалось переместить {countElement} {count, plural, =1 {} other {торрентов}}", + "alert.torrent.remove": "Удалено {countElement} {count, plural, =1 {торрент} other {торрентов}}", + "alert.torrent.remove.failed": "Не удалось удалить {countElement} {count, plural, =1 {торрент} other {торрентов}}", + "alert.settings.saved": "Настройки успешно сохранены.", + "auth.add.user": "Добавить пользователя", + "auth.connectionType": "Тип соединения rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix сокет", + "auth.create.account": "Создать Аккаунт", + "auth.create.an.account": "Создать аккаунт", + "auth.create.an.account.intro": "Добро пожаловать в Flood!", + "auth.current.user": "Текущий пользователь", + "auth.error.username.empty": "Имя пользователя не может быть пустым.", + "auth.log.in": "Войти", + "auth.login": "Логин", + "auth.password": "Пароль", + "auth.user.accounts": "Учетные записи пользователей", + "auth.username": "Имя пользователя", + "auth.admin": "Админ", + "auth.message.not.admin": "Пользователь не является администратором", + "auth.rtorrentHost": "rTorrent хост", + "auth.rtorrentPort": "rTorrent Порт", + "auth.rtorrentSocket": "rTorrent сокет", + "auth.rtorrentSocketPath": "Путь к сокету rTorrent", + "button.add": "Добавить", + "button.cancel": "Отмена", + "button.no": "Нет", + "button.save": "Сохранить настройки", + "button.save.feed": "Сохранить", + "button.test": "Тест", + "button.state.adding": "Добавление...", + "button.yes": "Да", + "button.new": "Новый", + "connectivity.modal.title": "Проблема с подключением", + "connectivity.modal.content": "Не удается подключиться к rTorrent. Пожалуйста, обновите информацию сейчас.", + "feeds.add.automatic.download.rule": "Добавить правило загрузки", + "feeds.add.feed": "Добавить канал", + "feeds.applicable.feed": "Применимая лента", + "feeds.apply.tags": "Применить теги", + "feeds.exclude.pattern": "Исключить шаблон", + "feeds.existing.feeds": "Существующие каналы", + "feeds.existing.rules": "Существующие правила", + "feeds.label": "Метка", + "feeds.match.count": "{count, plural, =1 {# совпадает} other {# совпадает}}", + "feeds.match.pattern": "Совпадение с шаблоном", + "feeds.match": "Матч", + "feeds.exclude": "Исключить", + "feeds.no.feeds.available": "Нет доступных лент.", + "feeds.no.feeds.defined": "Каналы не определены.", + "feeds.no.rules.defined": "Правила не определены.", + "feeds.regEx": "РегЭкс", + "feeds.select.feed": "Выбрать ленту", + "feeds.select.interval": "Интервал", + "feeds.start.on.load": "Запуск при загрузке", + "feeds.tabs.download.rules": "Правила загрузки", + "feeds.tabs.feeds": "Ленты", + "feeds.tabs.heading": "Каналы торрентов", + "feeds.tags": "Теги", + "feeds.time.hr": "Часы", + "feeds.time.min": "Минут", + "feeds.time.day": "Дней", + "feeds.torrent.destination": "Назначение торрента", + "feeds.url": "URL", + "feeds.search": "Поисковый термин", + "feeds.validation.invalid.regular.expression": "Неверное регулярное выражение.", + "feeds.validation.must.select.feed": "Вы должны выбрать канал.", + "feeds.validation.must.specify.destination": "Вы должны указать место назначения.", + "feeds.validation.must.specify.label": "Необходимо указать метку.", + "feeds.validation.must.specify.valid.feed.url": "Вы должны указать корректный URL канала.", + "feeds.browse.feeds": "Просмотр каналов", + "filesystem.empty.directory": "Пустой каталог.", + "filesystem.error.eacces": "Flood не имеет разрешения на чтение этого каталога.", + "filesystem.error.enoent": "Этот путь не существует. Он будет создан.", + "filesystem.fetching": "Получение структуры директорий...", + "filter.all": "Все", + "filter.status.title": "Фильтр по статусу", + "filter.status.downloading": "Скачивание", + "filter.status.completed": "Complete", + "filter.status.active": "Активный", + "filter.status.inactive": "Неактивный", + "filter.status.error": "Ошибка", + "filter.status.stopped": "Остановлено", + "filter.status.checking": "Проверка", + "filter.tracker.title": "Фильтровать по трекеру", + "filter.tag.title": "Фильтр по тегу", + "filter.untagged": "Без тегов", + "general.ago": "назад", + "general.at": "в", + "general.to": "до", + "general.of": "из", + "general.clipboard.copy": "Копировать", + "general.clipboard.copied": "Скопировано", + "mediainfo.execError": "Произошла ошибка при запуске mediainfo на сервере. Убедитесь, что mediainfo установлен и доступен в PATH для Flood.", + "mediainfo.fetching": "Извлечение...", + "mediainfo.heading": "Вывод Mediainfo", + "notification.torrent.finished.heading": "Загрузка завершена", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Сообщение об ошибке", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Очистить все", + "notification.showing": "Показано", + "priority.dont.download": "Не загружать", + "priority.high": "Высокий", + "priority.low": "Низкий", + "priority.normal": "Обычный", + "settings.bandwidth.slots.download.divider.label": "Скачать Слоты Разделителя", + "settings.bandwidth.slots.download.global.label": "Скачать слоты по всему", + "settings.bandwidth.slots.download.label": "Скачать слоты на торрент", + "settings.bandwidth.slots.heading": "Доступность слота", + "settings.bandwidth.slots.upload.divider.label": "Разделитель слотов загрузки", + "settings.bandwidth.slots.upload.global.label": "Глобальная загрузка слотов", + "settings.bandwidth.slots.upload.label": "Загрузить слоты на торрент", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Шаблоны комбобоксов: Скачать", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Шаблоны комбобоксов: Загрузить", + "settings.bandwidth.transferrate.global.throttle.download": "Глобальная скорость загрузки", + "settings.bandwidth.transferrate.global.throttle.upload": "Глобальный тротттл скорости загрузки", + "settings.bandwidth.transferrate.heading": "Процент трансфертов", + "settings.connectivity.dht.label": "Включить DHT", + "settings.connectivity.dht.port.label": "DHT порт", + "settings.connectivity.dpd.heading": "Децентрализованное обнаружение пиров", + "settings.connectivity.incoming.heading": "Входящие соединения", + "settings.connectivity.ip.hostname.label": "Сообщил IP/имя хоста", + "settings.connectivity.max.http.connections": "Максимум HTTP-соединений", + "settings.connectivity.peer.exchange.label": "Включить обмен пирами", + "settings.connectivity.peers.desired.label": "Желаемые узлы", + "settings.connectivity.peers.heading": "Личеры", + "settings.connectivity.peers.max.label": "Максимум пиров", + "settings.connectivity.peers.min.label": "Минимум пиров", + "settings.connectivity.peers.seeding.max.label": "Максимум раздачи пиров", + "settings.connectivity.peers.seeding.min.label": "Минимум раздачи пиров", + "settings.connectivity.port.open.label": "Открыть порт", + "settings.connectivity.port.randomize.label": "Случайный порт", + "settings.connectivity.port.range.label": "Диапазон портов", + "settings.resources.disk.check.hash.label": "Проверить хэш при завершении", + "settings.resources.disk.download.location.label": "Папка загрузок по умолчанию", + "settings.resources.disk.heading": "Диск", + "settings.resources.max.open.files": "Максимальное количество открытых файлов", + "settings.resources.memory.heading": "Память", + "settings.resources.memory.max.label": "Максимальное использование памяти", + "settings.tabs.bandwidth": "Трафик", + "settings.tabs.connectivity": "Подключение", + "settings.tabs.heading": "Настройки", + "settings.tabs.resources": "Ресурсы", + "settings.tabs.authentication": "Проверка подлинности", + "settings.tabs.userinterface": "Интерфейс пользователя", + "settings.tabs.diskusage": "Использование диска", + "settings.tabs.about": "О программе", + "settings.ui.locale": "Язык", + "settings.ui.language": "Язык", + "settings.ui.torrent.list": "Отображение списка торрентов", + "settings.ui.torrent.size": "Размер торрента", + "settings.ui.torrent.size.expanded": "Расширенный вид", + "settings.ui.torrent.size.condensed": "Сжатый вид", + "settings.ui.torrent.details.enabled": "Включено", + "settings.ui.torrent.details.tags.placement": "В расширенном виде теги работают лучше в конце списка.", + "settings.ui.displayed.details": "Детали Торрента", + "settings.diskusage.show": "Показать", + "settings.diskusage.mount.points": "Точки монтирования диска", + "settings.about.flood": "О Flood", + "sidebar.button.feeds": "Ленты", + "sidebar.button.notifications": "Уведомления", + "sidebar.button.settings": "Настройки", + "sidebar.button.speedlimits": "Ограничения скорости", + "sidebar.button.log.out": "Выйти", + "sidebar.search.placeholder": "Поиск торрентов", + "sidebar.transferdata.downloaded": "Загружено", + "sidebar.transferdata.uploaded": "Загружено", + "speed.unlimited": "Неограниченный", + "unit.size.byte": "В", + "unit.size.kilobyte": "кБ", + "unit.size.megabyte": "МБ", + "unit.size.gigabyte": "Гб", + "unit.size.terabyte": "ТБ", + "unit.speed": "{baseUnit}/с", + "unit.time.year": "yr", + "unit.time.week": "ск", + "unit.time.day": "д", + "unit.time.hour": "час", + "unit.time.minute": "м", + "unit.time.second": "с", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Добавить торрент", + "torrents.add.destination.label": "Назначение", + "torrents.add.destination.placeholder": "Назначение", + "torrents.add.heading": "Добавить торренты", + "torrents.add.start.label": "Начать торрент", + "torrents.add.tab.file.browse": "или нажмите для просмотра", + "torrents.add.tab.file.drop": "Перетащите файлы сюда", + "torrents.add.tab.file.title": "По файлу", + "torrents.add.tab.url.input.placeholder": "Торрент URL или Magnet ссылка", + "torrents.add.tab.url.title": "По URL", + "torrents.add.torrents.label": "Торренты", + "torrents.add.tags": "Теги", + "torrents.destination.base_path": "Использовать как базовый путь", + "torrents.details.actions.pause": "Пауза", + "torrents.details.actions.start": "Начать", + "torrents.details.actions.stop": "Остановить", + "torrents.details.details": "Детали", + "torrents.details.files": "Файлы", + "torrents.details.files.loading": "Загрузка деталей файла...", + "torrents.details.files.download.file": "{count, plural, =1 {Скачайте файл} other {Загрузите файлы}}", + "torrents.details.general.comment": "Комментарий", + "torrents.details.general.connected": "{connected} подключено к {total}", + "torrents.details.general.date.added": "Добавлено", + "torrents.details.general.date.created": "Дата создания", + "torrents.details.general.downloaded": "Загружено", + "torrents.details.general.free.disk.space": "Свободное место на диске", + "torrents.details.general.hash": "Хэш", + "torrents.details.general.heading.general": "Общие положения", + "torrents.details.general.heading.torrent": "Торрент", + "torrents.details.general.heading.tracker": "Трекер", + "torrents.details.general.heading.transfer": "Перевод", + "torrents.details.general.location": "Местоположение", + "torrents.details.general.none": "Нет", + "torrents.details.general.peers": "Личеры", + "torrents.details.general.scheduler.ignored": "Игнорировать", + "torrents.details.general.scheduler.obeyed": "Пробежал", + "torrents.details.general.scheduler": "Планировщик", + "torrents.details.general.seeds": "Сиды", + "torrents.details.general.size": "Размер", + "torrents.details.general.tags": "Теги", + "torrents.details.general.tracker.message": "Сообщение трекера", + "torrents.details.general.type.private": "Приватный", + "torrents.details.general.type.public": "Публичный", + "torrents.details.general.type": "Тип", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Нет данных для этого торрента.", + "torrents.details.peers": "Личеры", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} Выбранный файл} other {{countElement} выбрал файлы}}", + "torrents.details.selected.files.set.priority": "Установить приоритет", + "torrents.details.trackers.no.data": "Для этого торрента нет данных трекера.", + "torrents.details.trackers.type": "Тип", + "torrents.details.trackers": "Трекеры", + "torrents.list.clear.filters": "Очистить фильтры", + "torrents.list.context.check.hash": "Проверить хэш", + "torrents.list.context.details": "Детали торрента", + "torrents.list.context.move": "Установить местоположение торрента", + "torrents.list.context.pause": "Пауза", + "torrents.list.context.priority": "Приоритет", + "torrents.list.context.remove": "Удалить", + "torrents.list.context.set.tags": "Установить теги", + "torrents.list.context.start": "Начать", + "torrents.list.context.stop": "Остановить", + "torrents.list.no.torrents": "Нет торрентов для отображения.", + "torrents.list.drop": "Перетащите файлы сюда, чтобы добавить их в rTorrent.", + "torrents.list.cannot.connect": "Не удается подключиться к rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "из", + "torrents.move.button.set.location": "Установить местоположение", + "torrents.move.button.state.setting": "Настройка...", + "torrents.move.data.label": "Переместить данные", + "torrents.move.check_hash.label": "Проверять хэш", + "torrents.move.heading": "Установить местоположение торрента", + "torrents.properties.date.added": "Добавлено", + "torrents.properties.base.path": "Базовый путь", + "torrents.properties.comment": "Комментарий", + "torrents.properties.creation.date": "Дата создания", + "torrents.properties.download.speed": "Скорость загрузки", + "torrents.properties.download.total": "Загружено", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Свободное место на диске", + "torrents.properties.hash": "Хэш", + "torrents.properties.ignore.schedule": "Игнорировать планировщик", + "torrents.properties.is.private": "Приватный", + "torrents.properties.name": "Наименование", + "torrents.properties.percentage": "Процент завершённых", + "torrents.properties.ratio": "Коэффициент", + "torrents.properties.size": "Размер файла", + "torrents.properties.tags": "Теги", + "torrents.properties.tracker.message": "Сообщение трекера", + "torrents.properties.upload.speed": "Скорость отдачи", + "torrents.properties.upload.total": "Загружено", + "torrents.remove.are.you.sure": "Вы уверены, что хотите удалить {count, plural, =1 {# торрент} other {# торренты}}? ?", + "torrents.remove.delete.data": "Удалить данные", + "torrents.remove.error.no.torrents.selected": "Вы не выбрали ни одного торрента.", + "torrents.remove": "Удалить торренты", + "torrents.set.tags.button.set": "Установить теги", + "torrents.set.tags.heading": "Установить теги", + "torrents.set.tags.enter.tags": "Введите теги", + "torrents.sort.title": "Сортировать по", + "connection-interruption.heading": "Не удается подключиться к rTorrent", + "connection-interruption.verify-settings-prompt": "Давайте проверим настройки подключения.", + "connection-interruption.verification-error": "Соединение не может быть проверено.", + "connection-interruption.verification-success": "Успешное подключение", + "status.diskusage.title": "Использование диска", + "locale.language.auto": "Автоматически" +} diff --git a/client/src/javascript/i18n/translations/sr.js b/client/src/javascript/i18n/translations/sr.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/sr.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/sv.js b/client/src/javascript/i18n/translations/sv.js deleted file mode 100644 index d435f6097..000000000 --- a/client/src/javascript/i18n/translations/sv.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Starta Torrent', - 'actionbar.button.stop.torrent': 'Stoppa Torrent', - 'actionbar.button.add.torrent': 'Lägg till Torrent', - 'actionbar.button.remove.torrent': 'Ta bort Torrent', - 'alert.torrent.add': `{countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Kunde inte lägga till {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Framgångsrikt flyttat {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.torrent.move.failed': `Det gick inte att flytta {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Lyckades ta bort {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Det gick inte att ta bort {countElement} {count, plural, =1 {torrent} other {torrents}}`, - 'alert.settings.saved': 'Inställningarna har sparats.', - 'auth.add.user': 'Lägg till användare', - 'auth.connectionType': 'rTorrent Anslutningstyp', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Skapa konto', - 'auth.create.an.account': 'Skapa ett konto', - 'auth.create.an.account.intro': 'Välkommen till översvämningen!', - 'auth.current.user': 'Nuvarande användare', - 'auth.error.username.empty': 'Användarnamnet får inte vara tomt.', - 'auth.log.in': 'Logga in', - 'auth.login': 'Inloggning', - 'auth.password': 'Lösenord', - 'auth.user.accounts': 'Användarkonton', - 'auth.username': 'Användarnamn', - 'auth.admin': 'Administratör', - 'auth.message.not.admin': 'Användaren är inte Admin', - 'auth.rtorrentHost': 'rTorrent värd', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket sökväg', - 'button.add': 'Lägg till', - 'button.cancel': 'Avbryt', - 'button.no': 'Nej', - 'button.save': 'Spara inställningar', - 'button.save.feed': 'Spara', - 'button.test': 'Testa', - 'button.state.adding': 'Lägger till...', - 'button.yes': 'Ja', - 'button.new': 'Ny', - 'connectivity.modal.title': 'Problem med anslutning', - 'connectivity.modal.content': 'Kan inte ansluta till rTorrent. Vänligen uppdatera informationen nu.', - 'feeds.add.automatic.download.rule': 'Lägg till nedladdningsregel', - 'feeds.add.feed': 'Lägg till flöde', - 'feeds.applicable.feed': 'Tillämplig flöde', - 'feeds.apply.tags': 'Tillämpa taggar', - 'feeds.exclude.pattern': 'Exkludera mönster', - 'feeds.existing.feeds': 'Befintliga flöden', - 'feeds.existing.rules': 'Befintliga regler', - 'feeds.label': 'Etikett', - 'feeds.match.count': '{count, plural, =1 {# matcha} other {# matcha}}', - 'feeds.match.pattern': 'Matcha mönster', - 'feeds.match': 'Matcha', - 'feeds.exclude': 'Exkludera', - 'feeds.no.feeds.available': 'Inga flöden tillgängliga.', - 'feeds.no.feeds.defined': 'Inga flöden har definierats.', - 'feeds.no.rules.defined': 'Inga regler definierade.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Välj flöde', - 'feeds.select.interval': 'Intervall', - 'feeds.start.on.load': 'Starta vid laddning', - 'feeds.tabs.download.rules': 'Ladda ner regler', - 'feeds.tabs.feeds': 'Flöden', - 'feeds.tabs.heading': 'Flöden för Torrent', - 'feeds.tags': 'Taggar', - 'feeds.time.hr': 'Timmar', - 'feeds.time.min': 'Minuter', - 'feeds.time.day': 'Dagar', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Sök termin', - 'feeds.validation.invalid.regular.expression': 'Ogiltigt reguljärt uttryck.', - 'feeds.validation.must.select.feed': 'Du måste välja ett flöde.', - 'feeds.validation.must.specify.destination': 'Du måste ange en destination.', - 'feeds.validation.must.specify.label': 'Du måste ange en etikett.', - 'feeds.validation.must.specify.valid.feed.url': 'Du måste ange en giltig flödes-URL.', - 'feeds.browse.feeds': 'Bläddra bland flöden', - 'filesystem.empty.directory': 'Tom katalog.', - 'filesystem.error.eacces': 'Översvämningen har inte behörighet att läsa denna katalog.', - 'filesystem.error.enoent': 'Denna väg existerar inte. Den kommer att skapas.', - 'filesystem.fetching': 'Hämtar katalogstruktur...', - 'filter.all': 'Alla', - 'filter.status.title': 'Filtrera efter status', - 'filter.status.downloading': 'Hämtar', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Aktiv', - 'filter.status.inactive': 'Inaktiv', - 'filter.status.error': 'Fel', - 'filter.status.stopped': 'Stoppad', - 'filter.status.checking': 'Kontrollerar', - 'filter.tracker.title': 'Filtrera efter Tracker', - 'filter.tag.title': 'Filtrera efter tagg', - 'filter.untagged': 'Otaggade', - 'general.ago': 'sedan', - 'general.at': 'vid', - 'general.to': 'till', - 'general.of': 'av', - 'general.clipboard.copy': 'Kopiera', - 'general.clipboard.copied': 'Kopierad', - 'mediainfo.execError': - 'Ett fel uppstod när mediainfo kördes på servern. Kontrollera att mediainfo är installerat och tillgängligt i PATH till Flood.', - 'mediainfo.fetching': 'Hämtar...', - 'mediainfo.heading': 'Mediainfo utdata', - 'notification.torrent.finished.heading': 'Hämtning slutförd', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Fel rapporterat', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Rensa alla', - 'notification.showing': 'Visar', - 'priority.dont.download': 'Ladda inte ner', - 'priority.high': 'Hög', - 'priority.low': 'Låg', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Hämta Slots Delare', - 'settings.bandwidth.slots.download.global.label': 'Ladda ner Slots Global', - 'settings.bandwidth.slots.download.label': 'Ladda ner Slots per Torrent', - 'settings.bandwidth.slots.heading': 'Tillgänglighet för Slot', - 'settings.bandwidth.slots.upload.divider.label': 'Ladda upp Slots Delare', - 'settings.bandwidth.slots.upload.global.label': 'Ladda upp Slots Global', - 'settings.bandwidth.slots.upload.label': 'Ladda upp Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown förinställningar: Ladda ner', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown förinställningar: Ladda upp', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global nedladdningshastighet Trottel', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global uppladdningshastighet Trottel', - 'settings.bandwidth.transferrate.heading': 'Överföring hastighet trottoarer', - 'settings.connectivity.dht.label': 'Aktivera DHT', - 'settings.connectivity.dht.port.label': 'DHT port', - 'settings.connectivity.dpd.heading': 'Decentraliserad Peer Discovery', - 'settings.connectivity.incoming.heading': 'Inkommande anslutningar', - 'settings.connectivity.ip.hostname.label': 'Rapporterat IP/värdnamn', - 'settings.connectivity.max.http.connections': 'Maximal HTTP-anslutning', - 'settings.connectivity.peer.exchange.label': 'Aktivera Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Jämlikar önskade', - 'settings.connectivity.peers.heading': 'Klienter', - 'settings.connectivity.peers.max.label': 'Maximalt antal klienter', - 'settings.connectivity.peers.min.label': 'Minsta antal klienter', - 'settings.connectivity.peers.seeding.max.label': 'Maximal klientfröning', - 'settings.connectivity.peers.seeding.min.label': 'Minsta antal klienter Seeding', - 'settings.connectivity.port.open.label': 'Öppna port', - 'settings.connectivity.port.randomize.label': 'Slumpa port', - 'settings.connectivity.port.range.label': 'Portens intervall', - 'settings.resources.disk.check.hash.label': 'Verifiera Hash vid slutförd', - 'settings.resources.disk.download.location.label': 'Förvald nedladdningsmapp', - 'settings.resources.disk.heading': 'Diskett', - 'settings.resources.max.open.files': 'Maximalt antal öppna filer', - 'settings.resources.memory.heading': 'Minne', - 'settings.resources.memory.max.label': 'Maximal minnesanvändning', - 'settings.tabs.bandwidth': 'Bandbredd', - 'settings.tabs.connectivity': 'Anslutning', - 'settings.tabs.heading': 'Inställningar', - 'settings.tabs.resources': 'Resurser', - 'settings.tabs.authentication': 'Autentisering', - 'settings.tabs.userinterface': 'Användargränssnitt', - 'settings.tabs.diskusage': 'Diskanvändning', - 'settings.tabs.about': 'Om', - 'settings.ui.locale': 'Lokalt', - 'settings.ui.language': 'Språk', - 'settings.ui.torrent.list': 'Visning av torrentlista', - 'settings.ui.torrent.size': 'Torrent Storlek', - 'settings.ui.torrent.size.expanded': 'Utökad vy', - 'settings.ui.torrent.size.condensed': 'Kondenserad vy', - 'settings.ui.torrent.details.enabled': 'Aktiverad', - 'settings.ui.torrent.details.tags.placement': 'I den utvidgade vyn fungerar taggar bäst i slutet av listan.', - 'settings.ui.displayed.details': 'Torrent Detaljkolumner', - 'settings.diskusage.show': 'Visa', - 'settings.diskusage.mount.points': 'Disk användning monteringspunkter', - 'settings.about.flood': 'Om översvämning', - 'sidebar.button.feeds': 'Flöden', - 'sidebar.button.notifications': 'Aviseringar', - 'sidebar.button.settings': 'Inställningar', - 'sidebar.button.speedlimits': 'Hastighetsgränser', - 'sidebar.button.log.out': 'Logga ut', - 'sidebar.search.placeholder': 'Sök torrents', - 'sidebar.transferdata.downloaded': 'Nedladdad', - 'sidebar.transferdata.uploaded': 'Uppladdad', - 'speed.unlimited': 'Obegränsad', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'Tuberkulos', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'vk', - 'unit.time.day': 'd', - 'unit.time.hour': 'tim', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Lägg till Torrent', - 'torrents.add.destination.label': 'Mål', - 'torrents.add.destination.placeholder': 'Mål', - 'torrents.add.heading': 'Lägg till Torrents', - 'torrents.add.start.label': 'Starta Torrent', - 'torrents.add.tab.file.browse': 'eller klicka för att bläddra', - 'torrents.add.tab.file.drop': 'Släpp några filer här,', - 'torrents.add.tab.file.title': 'Efter fil', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL eller Magnet länk', - 'torrents.add.tab.url.title': 'Efter URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Taggar', - 'torrents.destination.base_path': 'Använd som grundsökväg', - 'torrents.details.actions.pause': 'Pausa', - 'torrents.details.actions.start': 'Starta', - 'torrents.details.actions.stop': 'Stoppa', - 'torrents.details.details': 'Detaljer', - 'torrents.details.files': 'Filer', - 'torrents.details.files.loading': 'Laddar fildetalj...', - 'torrents.details.files.download.file': `{count, plural, =1 {Ladda ner fil} other {Ladda ner filer}}`, - 'torrents.details.general.comment': 'Kommentar', - 'torrents.details.general.connected': '{connected} ansluten till {total}', - 'torrents.details.general.date.added': 'Tillagd', - 'torrents.details.general.date.created': 'Skapad datum', - 'torrents.details.general.downloaded': 'Nedladdad', - 'torrents.details.general.free.disk.space': 'Ledigt diskutrymme', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'Allmänt', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Spårare', - 'torrents.details.general.heading.transfer': 'Överföring', - 'torrents.details.general.location': 'Plats', - 'torrents.details.general.none': 'Ingen', - 'torrents.details.general.peers': 'Klienter', - 'torrents.details.general.scheduler.ignored': 'Ignorerad', - 'torrents.details.general.scheduler.obeyed': 'Lydd', - 'torrents.details.general.scheduler': 'Schemaläggare', - 'torrents.details.general.seeds': 'Frön', - 'torrents.details.general.size': 'Storlek', - 'torrents.details.general.tags': 'Taggar', - 'torrents.details.general.tracker.message': 'Spårare Meddelande', - 'torrents.details.general.type.private': 'Privat', - 'torrents.details.general.type.public': 'Publik', - 'torrents.details.general.type': 'Typ', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Det finns inga peer-data för denna torrent.', - 'torrents.details.peers': 'Klienter', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} vald fil} other {{countElement} valda filer}}`, - 'torrents.details.selected.files.set.priority': 'Ange prioritet', - 'torrents.details.trackers.no.data': 'Det finns ingen spårningsdata för denna torrent.', - 'torrents.details.trackers.type': 'Typ', - 'torrents.details.trackers': 'Spårare', - 'torrents.list.clear.filters': 'Rensa filter', - 'torrents.list.context.check.hash': 'Kontrollera hasch', - 'torrents.list.context.details': 'Torrent Detaljer', - 'torrents.list.context.move': 'Ange torrentplats', - 'torrents.list.context.pause': 'Pausa', - 'torrents.list.context.priority': 'Prioritet', - 'torrents.list.context.remove': 'Radera', - 'torrents.list.context.set.tags': 'Ange taggar', - 'torrents.list.context.start': 'Starta', - 'torrents.list.context.stop': 'Stoppa', - 'torrents.list.no.torrents': 'Inga torrents att visa.', - 'torrents.list.drop': 'Släpp filer här för att lägga till dem i rTorrent.', - 'torrents.list.cannot.connect': 'Kan inte ansluta till rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'av', - 'torrents.move.button.set.location': 'Ange plats', - 'torrents.move.button.state.setting': 'Inställer...', - 'torrents.move.data.label': 'Flytta data', - 'torrents.move.check_hash.label': 'Kontrollera hash', - 'torrents.move.heading': 'Ange torrentplats', - 'torrents.properties.date.added': 'Tillagd', - 'torrents.properties.base.path': 'Bas sökväg', - 'torrents.properties.comment': 'Kommentar', - 'torrents.properties.creation.date': 'Skapad datum', - 'torrents.properties.download.speed': 'Ladda ner hastighet', - 'torrents.properties.download.total': 'Nedladdad', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Ledigt diskutrymme', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignorera schemaläggare', - 'torrents.properties.is.private': 'Privat', - 'torrents.properties.name': 'Namn', - 'torrents.properties.percentage': 'Procent slutförd', - 'torrents.properties.ratio': 'Förhållande', - 'torrents.properties.size': 'Filstorlek', - 'torrents.properties.tags': 'Taggar', - 'torrents.properties.tracker.message': 'Spårare Meddelande', - 'torrents.properties.upload.speed': 'Ladda upp hastighet', - 'torrents.properties.upload.total': 'Uppladdad', - 'torrents.remove.are.you.sure': `Är du säker på att du vill ta bort {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Ta bort data', - 'torrents.remove.error.no.torrents.selected': 'Du har inte valt några torrenter.', - 'torrents.remove': 'Ta bort torrents', - 'torrents.set.tags.button.set': 'Ange taggar', - 'torrents.set.tags.heading': 'Ange taggar', - 'torrents.set.tags.enter.tags': 'Ange taggar', - 'torrents.sort.title': 'Sortera efter', - 'connection-interruption.heading': 'Kan inte ansluta till rTorrent', - 'connection-interruption.verify-settings-prompt': 'Låt oss verifiera dina anslutningsinställningar.', - 'connection-interruption.verification-error': 'Anslutningen kunde inte verifieras.', - 'connection-interruption.verification-success': 'Anslutningen lyckades', - 'status.diskusage.title': 'Diskanvändning', - 'locale.language.auto': 'Automatisk', -}; diff --git a/client/src/javascript/i18n/translations/sv.json b/client/src/javascript/i18n/translations/sv.json new file mode 100644 index 000000000..0135d90ad --- /dev/null +++ b/client/src/javascript/i18n/translations/sv.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Starta Torrent", + "actionbar.button.stop.torrent": "Stoppa Torrent", + "actionbar.button.add.torrent": "Lägg till Torrent", + "actionbar.button.remove.torrent": "Ta bort Torrent", + "alert.torrent.add": "{countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Kunde inte lägga till {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Framgångsrikt flyttat {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.move.failed": "Det gick inte att flytta {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Lyckades ta bort {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Det gick inte att ta bort {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.settings.saved": "Inställningarna har sparats.", + "auth.add.user": "Lägg till användare", + "auth.connectionType": "rTorrent Anslutningstyp", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Skapa konto", + "auth.create.an.account": "Skapa ett konto", + "auth.create.an.account.intro": "Välkommen till översvämningen!", + "auth.current.user": "Nuvarande användare", + "auth.error.username.empty": "Användarnamnet får inte vara tomt.", + "auth.log.in": "Logga in", + "auth.login": "Inloggning", + "auth.password": "Lösenord", + "auth.user.accounts": "Användarkonton", + "auth.username": "Användarnamn", + "auth.admin": "Administratör", + "auth.message.not.admin": "Användaren är inte Admin", + "auth.rtorrentHost": "rTorrent värd", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket sökväg", + "button.add": "Lägg till", + "button.cancel": "Avbryt", + "button.no": "Nej", + "button.save": "Spara inställningar", + "button.save.feed": "Spara", + "button.test": "Testa", + "button.state.adding": "Lägger till...", + "button.yes": "Ja", + "button.new": "Ny", + "connectivity.modal.title": "Problem med anslutning", + "connectivity.modal.content": "Kan inte ansluta till rTorrent. Vänligen uppdatera informationen nu.", + "feeds.add.automatic.download.rule": "Lägg till nedladdningsregel", + "feeds.add.feed": "Lägg till flöde", + "feeds.applicable.feed": "Tillämplig flöde", + "feeds.apply.tags": "Tillämpa taggar", + "feeds.exclude.pattern": "Exkludera mönster", + "feeds.existing.feeds": "Befintliga flöden", + "feeds.existing.rules": "Befintliga regler", + "feeds.label": "Etikett", + "feeds.match.count": "{count, plural, =1 {# matcha} other {# matcha}}", + "feeds.match.pattern": "Matcha mönster", + "feeds.match": "Matcha", + "feeds.exclude": "Exkludera", + "feeds.no.feeds.available": "Inga flöden tillgängliga.", + "feeds.no.feeds.defined": "Inga flöden har definierats.", + "feeds.no.rules.defined": "Inga regler definierade.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Välj flöde", + "feeds.select.interval": "Intervall", + "feeds.start.on.load": "Starta vid laddning", + "feeds.tabs.download.rules": "Ladda ner regler", + "feeds.tabs.feeds": "Flöden", + "feeds.tabs.heading": "Flöden för Torrent", + "feeds.tags": "Taggar", + "feeds.time.hr": "Timmar", + "feeds.time.min": "Minuter", + "feeds.time.day": "Dagar", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Sök termin", + "feeds.validation.invalid.regular.expression": "Ogiltigt reguljärt uttryck.", + "feeds.validation.must.select.feed": "Du måste välja ett flöde.", + "feeds.validation.must.specify.destination": "Du måste ange en destination.", + "feeds.validation.must.specify.label": "Du måste ange en etikett.", + "feeds.validation.must.specify.valid.feed.url": "Du måste ange en giltig flödes-URL.", + "feeds.browse.feeds": "Bläddra bland flöden", + "filesystem.empty.directory": "Tom katalog.", + "filesystem.error.eacces": "Översvämningen har inte behörighet att läsa denna katalog.", + "filesystem.error.enoent": "Denna väg existerar inte. Den kommer att skapas.", + "filesystem.fetching": "Hämtar katalogstruktur...", + "filter.all": "Alla", + "filter.status.title": "Filtrera efter status", + "filter.status.downloading": "Hämtar", + "filter.status.completed": "Complete", + "filter.status.active": "Aktiv", + "filter.status.inactive": "Inaktiv", + "filter.status.error": "Fel", + "filter.status.stopped": "Stoppad", + "filter.status.checking": "Kontrollerar", + "filter.tracker.title": "Filtrera efter Tracker", + "filter.tag.title": "Filtrera efter tagg", + "filter.untagged": "Otaggade", + "general.ago": "sedan", + "general.at": "vid", + "general.to": "till", + "general.of": "av", + "general.clipboard.copy": "Kopiera", + "general.clipboard.copied": "Kopierad", + "mediainfo.execError": "Ett fel uppstod när mediainfo kördes på servern. Kontrollera att mediainfo är installerat och tillgängligt i PATH till Flood.", + "mediainfo.fetching": "Hämtar...", + "mediainfo.heading": "Mediainfo utdata", + "notification.torrent.finished.heading": "Hämtning slutförd", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Fel rapporterat", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Rensa alla", + "notification.showing": "Visar", + "priority.dont.download": "Ladda inte ner", + "priority.high": "Hög", + "priority.low": "Låg", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Hämta Slots Delare", + "settings.bandwidth.slots.download.global.label": "Ladda ner Slots Global", + "settings.bandwidth.slots.download.label": "Ladda ner Slots per Torrent", + "settings.bandwidth.slots.heading": "Tillgänglighet för Slot", + "settings.bandwidth.slots.upload.divider.label": "Ladda upp Slots Delare", + "settings.bandwidth.slots.upload.global.label": "Ladda upp Slots Global", + "settings.bandwidth.slots.upload.label": "Ladda upp Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown förinställningar: Ladda ner", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown förinställningar: Ladda upp", + "settings.bandwidth.transferrate.global.throttle.download": "Global nedladdningshastighet Trottel", + "settings.bandwidth.transferrate.global.throttle.upload": "Global uppladdningshastighet Trottel", + "settings.bandwidth.transferrate.heading": "Överföring hastighet trottoarer", + "settings.connectivity.dht.label": "Aktivera DHT", + "settings.connectivity.dht.port.label": "DHT port", + "settings.connectivity.dpd.heading": "Decentraliserad Peer Discovery", + "settings.connectivity.incoming.heading": "Inkommande anslutningar", + "settings.connectivity.ip.hostname.label": "Rapporterat IP/värdnamn", + "settings.connectivity.max.http.connections": "Maximal HTTP-anslutning", + "settings.connectivity.peer.exchange.label": "Aktivera Peer Exchange", + "settings.connectivity.peers.desired.label": "Jämlikar önskade", + "settings.connectivity.peers.heading": "Klienter", + "settings.connectivity.peers.max.label": "Maximalt antal klienter", + "settings.connectivity.peers.min.label": "Minsta antal klienter", + "settings.connectivity.peers.seeding.max.label": "Maximal klientfröning", + "settings.connectivity.peers.seeding.min.label": "Minsta antal klienter Seeding", + "settings.connectivity.port.open.label": "Öppna port", + "settings.connectivity.port.randomize.label": "Slumpa port", + "settings.connectivity.port.range.label": "Portens intervall", + "settings.resources.disk.check.hash.label": "Verifiera Hash vid slutförd", + "settings.resources.disk.download.location.label": "Förvald nedladdningsmapp", + "settings.resources.disk.heading": "Diskett", + "settings.resources.max.open.files": "Maximalt antal öppna filer", + "settings.resources.memory.heading": "Minne", + "settings.resources.memory.max.label": "Maximal minnesanvändning", + "settings.tabs.bandwidth": "Bandbredd", + "settings.tabs.connectivity": "Anslutning", + "settings.tabs.heading": "Inställningar", + "settings.tabs.resources": "Resurser", + "settings.tabs.authentication": "Autentisering", + "settings.tabs.userinterface": "Användargränssnitt", + "settings.tabs.diskusage": "Diskanvändning", + "settings.tabs.about": "Om", + "settings.ui.locale": "Lokalt", + "settings.ui.language": "Språk", + "settings.ui.torrent.list": "Visning av torrentlista", + "settings.ui.torrent.size": "Torrent Storlek", + "settings.ui.torrent.size.expanded": "Utökad vy", + "settings.ui.torrent.size.condensed": "Kondenserad vy", + "settings.ui.torrent.details.enabled": "Aktiverad", + "settings.ui.torrent.details.tags.placement": "I den utvidgade vyn fungerar taggar bäst i slutet av listan.", + "settings.ui.displayed.details": "Torrent Detaljkolumner", + "settings.diskusage.show": "Visa", + "settings.diskusage.mount.points": "Disk användning monteringspunkter", + "settings.about.flood": "Om översvämning", + "sidebar.button.feeds": "Flöden", + "sidebar.button.notifications": "Aviseringar", + "sidebar.button.settings": "Inställningar", + "sidebar.button.speedlimits": "Hastighetsgränser", + "sidebar.button.log.out": "Logga ut", + "sidebar.search.placeholder": "Sök torrents", + "sidebar.transferdata.downloaded": "Nedladdad", + "sidebar.transferdata.uploaded": "Uppladdad", + "speed.unlimited": "Obegränsad", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "Tuberkulos", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "vk", + "unit.time.day": "d", + "unit.time.hour": "tim", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Lägg till Torrent", + "torrents.add.destination.label": "Mål", + "torrents.add.destination.placeholder": "Mål", + "torrents.add.heading": "Lägg till Torrents", + "torrents.add.start.label": "Starta Torrent", + "torrents.add.tab.file.browse": "eller klicka för att bläddra", + "torrents.add.tab.file.drop": "Släpp några filer här,", + "torrents.add.tab.file.title": "Efter fil", + "torrents.add.tab.url.input.placeholder": "Torrent URL eller Magnet länk", + "torrents.add.tab.url.title": "Efter URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Taggar", + "torrents.destination.base_path": "Använd som grundsökväg", + "torrents.details.actions.pause": "Pausa", + "torrents.details.actions.start": "Starta", + "torrents.details.actions.stop": "Stoppa", + "torrents.details.details": "Detaljer", + "torrents.details.files": "Filer", + "torrents.details.files.loading": "Laddar fildetalj...", + "torrents.details.files.download.file": "{count, plural, =1 {Ladda ner fil} other {Ladda ner filer}}", + "torrents.details.general.comment": "Kommentar", + "torrents.details.general.connected": "{connected} ansluten till {total}", + "torrents.details.general.date.added": "Tillagd", + "torrents.details.general.date.created": "Skapad datum", + "torrents.details.general.downloaded": "Nedladdad", + "torrents.details.general.free.disk.space": "Ledigt diskutrymme", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "Allmänt", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Spårare", + "torrents.details.general.heading.transfer": "Överföring", + "torrents.details.general.location": "Plats", + "torrents.details.general.none": "Ingen", + "torrents.details.general.peers": "Klienter", + "torrents.details.general.scheduler.ignored": "Ignorerad", + "torrents.details.general.scheduler.obeyed": "Lydd", + "torrents.details.general.scheduler": "Schemaläggare", + "torrents.details.general.seeds": "Frön", + "torrents.details.general.size": "Storlek", + "torrents.details.general.tags": "Taggar", + "torrents.details.general.tracker.message": "Spårare Meddelande", + "torrents.details.general.type.private": "Privat", + "torrents.details.general.type.public": "Publik", + "torrents.details.general.type": "Typ", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Det finns inga peer-data för denna torrent.", + "torrents.details.peers": "Klienter", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} vald fil} other {{countElement} valda filer}}", + "torrents.details.selected.files.set.priority": "Ange prioritet", + "torrents.details.trackers.no.data": "Det finns ingen spårningsdata för denna torrent.", + "torrents.details.trackers.type": "Typ", + "torrents.details.trackers": "Spårare", + "torrents.list.clear.filters": "Rensa filter", + "torrents.list.context.check.hash": "Kontrollera hasch", + "torrents.list.context.details": "Torrent Detaljer", + "torrents.list.context.move": "Ange torrentplats", + "torrents.list.context.pause": "Pausa", + "torrents.list.context.priority": "Prioritet", + "torrents.list.context.remove": "Radera", + "torrents.list.context.set.tags": "Ange taggar", + "torrents.list.context.start": "Starta", + "torrents.list.context.stop": "Stoppa", + "torrents.list.no.torrents": "Inga torrents att visa.", + "torrents.list.drop": "Släpp filer här för att lägga till dem i rTorrent.", + "torrents.list.cannot.connect": "Kan inte ansluta till rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "av", + "torrents.move.button.set.location": "Ange plats", + "torrents.move.button.state.setting": "Inställer...", + "torrents.move.data.label": "Flytta data", + "torrents.move.check_hash.label": "Kontrollera hash", + "torrents.move.heading": "Ange torrentplats", + "torrents.properties.date.added": "Tillagd", + "torrents.properties.base.path": "Bas sökväg", + "torrents.properties.comment": "Kommentar", + "torrents.properties.creation.date": "Skapad datum", + "torrents.properties.download.speed": "Ladda ner hastighet", + "torrents.properties.download.total": "Nedladdad", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Ledigt diskutrymme", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignorera schemaläggare", + "torrents.properties.is.private": "Privat", + "torrents.properties.name": "Namn", + "torrents.properties.percentage": "Procent slutförd", + "torrents.properties.ratio": "Förhållande", + "torrents.properties.size": "Filstorlek", + "torrents.properties.tags": "Taggar", + "torrents.properties.tracker.message": "Spårare Meddelande", + "torrents.properties.upload.speed": "Ladda upp hastighet", + "torrents.properties.upload.total": "Uppladdad", + "torrents.remove.are.you.sure": "Är du säker på att du vill ta bort {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Ta bort data", + "torrents.remove.error.no.torrents.selected": "Du har inte valt några torrenter.", + "torrents.remove": "Ta bort torrents", + "torrents.set.tags.button.set": "Ange taggar", + "torrents.set.tags.heading": "Ange taggar", + "torrents.set.tags.enter.tags": "Ange taggar", + "torrents.sort.title": "Sortera efter", + "connection-interruption.heading": "Kan inte ansluta till rTorrent", + "connection-interruption.verify-settings-prompt": "Låt oss verifiera dina anslutningsinställningar.", + "connection-interruption.verification-error": "Anslutningen kunde inte verifieras.", + "connection-interruption.verification-success": "Anslutningen lyckades", + "status.diskusage.title": "Diskanvändning", + "locale.language.auto": "Automatisk" +} diff --git a/client/src/javascript/i18n/translations/tr.js b/client/src/javascript/i18n/translations/tr.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/tr.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/uk.js b/client/src/javascript/i18n/translations/uk.js deleted file mode 100644 index 54b7b8945..000000000 --- a/client/src/javascript/i18n/translations/uk.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Почати торент', - 'actionbar.button.stop.torrent': 'Зупинити торрент', - 'actionbar.button.add.torrent': 'Додати Торрент', - 'actionbar.button.remove.torrent': 'Прибрати торент', - 'alert.torrent.add': `Успішно додано {countElement} {count, plural, =1 {торрент} other {торрент}}.`, - 'alert.torrent.add.failed': `Не вдалося додати {countElement} {count, plural, =1 {торент} other {торрент}}.`, - 'alert.torrent.move': `Успішно переміщено {countElement} {count, plural, =1 {торент} other {торрент}}.`, - 'alert.torrent.move.failed': `Не вдалося перемістити {countElement} {count, plural, =1 {торент} other {торрент}}.`, - 'alert.torrent.remove': `Успішно видалено {countElement} {count, plural, =1 {торент} other {торрент}}.`, - 'alert.torrent.remove.failed': `Не вдалося видалити {countElement} {count, plural, =1 {торент} other {торрент}}.`, - 'alert.settings.saved': 'Налаштування успішно збережені.', - 'auth.add.user': 'Добавити користувача', - 'auth.connectionType': 'тип підключення rTorrent', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Унікальний сокет', - 'auth.create.account': 'Створити обл. запис', - 'auth.create.an.account': 'Створити акаунт', - 'auth.create.an.account.intro': 'Ласкаво просимо до Флуту!', - 'auth.current.user': 'Поточний користувач', - 'auth.error.username.empty': "Ім'я користувача не може бути порожнім.", - 'auth.log.in': 'Увійти', - 'auth.login': 'Логін', - 'auth.password': 'Пароль', - 'auth.user.accounts': 'Облікові записи користувачів', - 'auth.username': "Ім'я користувача", - 'auth.admin': 'Адмін', - 'auth.message.not.admin': 'Користувач не є адміністратором', - 'auth.rtorrentHost': 'rTorrent Хост', - 'auth.rtorrentPort': 'rTorrent порт', - 'auth.rtorrentSocket': 'rTorrent Сокет', - 'auth.rtorrentSocketPath': 'RTorrent Socket шлях', - 'button.add': 'Додати', - 'button.cancel': 'Скасувати', - 'button.no': 'Ні', - 'button.save': 'Зберегти Налаштування', - 'button.save.feed': 'Зберегти', - 'button.test': 'Тест', - 'button.state.adding': 'Додаємо...', - 'button.yes': 'Так', - 'button.new': 'Новий', - 'connectivity.modal.title': 'Проблема з підключенням', - 'connectivity.modal.content': 'Не вдається підключитися до rTorrent. Зараз необхідно оновити інформацію.', - 'feeds.add.automatic.download.rule': 'Додати правило завантаження', - 'feeds.add.feed': 'Добавити RSS Feed', - 'feeds.applicable.feed': 'Стрічка додатків', - 'feeds.apply.tags': 'Застосувати мітки', - 'feeds.exclude.pattern': 'Виключити ключ', - 'feeds.existing.feeds': 'Існуючі подачі', - 'feeds.existing.rules': 'Існуючі правила', - 'feeds.label': 'Мітка', - 'feeds.match.count': '{count, plural, =1 {# співпадають} other {# матчів}}', - 'feeds.match.pattern': 'Шаблон матчу', - 'feeds.match': 'Матч', - 'feeds.exclude': 'Не включати', - 'feeds.no.feeds.available': 'Немає доступних каналів.', - 'feeds.no.feeds.defined': 'Каналів не визначено.', - 'feeds.no.rules.defined': 'Правила не визначені.', - 'feeds.regEx': 'Реджекс', - 'feeds.select.feed': 'Вибрати стрічку', - 'feeds.select.interval': 'Проміжок', - 'feeds.start.on.load': 'Запустити при завантаженні', - 'feeds.tabs.download.rules': 'Правила завантаження', - 'feeds.tabs.feeds': 'Стрічки новин', - 'feeds.tabs.heading': 'Торент фіди', - 'feeds.tags': 'Мітки', - 'feeds.time.hr': 'Годин', - 'feeds.time.min': 'Хвилин', - 'feeds.time.day': 'Днів', - 'feeds.torrent.destination': 'Призначення торенту', - 'feeds.url': 'Адреса', - 'feeds.search': 'Шукати за словом', - 'feeds.validation.invalid.regular.expression': 'Недійсний регулярний вираз.', - 'feeds.validation.must.select.feed': 'Ви повинні вибрати канал.', - 'feeds.validation.must.specify.destination': 'Ви повинні вказати місце призначення.', - 'feeds.validation.must.specify.label': 'Будь ласка, вкажіть мітку.', - 'feeds.validation.must.specify.valid.feed.url': 'Необхідно вказати дійсний URL каналу.', - 'feeds.browse.feeds': 'Перегляд стрічок', - 'filesystem.empty.directory': 'Тека порожня.', - 'filesystem.error.eacces': 'Флуд не має дозволу на читання цієї теки.', - 'filesystem.error.enoent': 'Цей шлях не існує. Він буде створений.', - 'filesystem.fetching': 'Отримання структури каталогу...', - 'filter.all': 'Всі', - 'filter.status.title': 'Фільтр за станом', - 'filter.status.downloading': 'Завантажується', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Активний', - 'filter.status.inactive': 'Неактивний', - 'filter.status.error': 'Помилка', - 'filter.status.stopped': 'Зупинено', - 'filter.status.checking': 'Перевірка', - 'filter.tracker.title': 'Фільтр по трекеру', - 'filter.tag.title': 'Фільтр за ярликами', - 'filter.untagged': 'Без тегів', - 'general.ago': 'тому', - 'general.at': 'під', - 'general.to': 'по', - 'general.of': 'з', - 'general.clipboard.copy': 'Копія', - 'general.clipboard.copied': 'Скопійовано', - 'mediainfo.execError': - 'Виникла помилка під час роботи mediainfo на сервері. Перевірте, що mediainfo встановлений і доступний у PATH to Flood.', - 'mediainfo.fetching': 'Отримання...', - 'mediainfo.heading': 'Вивід Середньовіччя', - 'notification.torrent.finished.heading': 'Завершене завантаження', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Повідомлення про помилку', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Очистити все', - 'notification.showing': 'Показано', - 'priority.dont.download': 'Не завантажувати', - 'priority.high': 'Високий', - 'priority.low': 'Низька', - 'priority.normal': 'Нормальний', - 'settings.bandwidth.slots.download.divider.label': 'Завантажити розділювач слотів', - 'settings.bandwidth.slots.download.global.label': 'Завантажити слоти глобальним', - 'settings.bandwidth.slots.download.label': 'Завантажити слоти на торент', - 'settings.bandwidth.slots.heading': 'Наявність слоту', - 'settings.bandwidth.slots.upload.divider.label': 'Завантажити розділювач слотів', - 'settings.bandwidth.slots.upload.global.label': 'Глобальна передача слотів', - 'settings.bandwidth.slots.upload.label': 'Відвантажити слоти за торент', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Пресети випадаючого списку: Завантажити', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Пресети випадаючого списку: Завантаження', - 'settings.bandwidth.transferrate.global.throttle.download': 'Збільшення швидкості завантаження', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Збільшення швидкості вивантаження', - 'settings.bandwidth.transferrate.heading': 'Збільшення швидкості передачі', - 'settings.connectivity.dht.label': 'Увімкнути DHT', - 'settings.connectivity.dht.port.label': 'DHT порт', - 'settings.connectivity.dpd.heading': 'Децентралізований канал для учасника', - 'settings.connectivity.incoming.heading': 'Вхідні підключення', - 'settings.connectivity.ip.hostname.label': 'Повідомлено IP/Hostname', - 'settings.connectivity.max.http.connections': 'Максимальна HTTP підключень', - 'settings.connectivity.peer.exchange.label': 'Увімкнути обмін учасниками', - 'settings.connectivity.peers.desired.label': 'Учасників Бажано', - 'settings.connectivity.peers.heading': 'Учасники', - 'settings.connectivity.peers.max.label': 'Максимальна кількість учасників', - 'settings.connectivity.peers.min.label': 'Мінімум учасників', - 'settings.connectivity.peers.seeding.max.label': 'Максимальна кількість учасників роздачі', - 'settings.connectivity.peers.seeding.min.label': 'Мінімум учасників на роздачі', - 'settings.connectivity.port.open.label': 'Відкритий порт', - 'settings.connectivity.port.randomize.label': 'Перемішати порт', - 'settings.connectivity.port.range.label': 'Діапазон портів', - 'settings.resources.disk.check.hash.label': 'Перевірити хеш при завершенні', - 'settings.resources.disk.download.location.label': 'Тека для завантажень за замовчуванням', - 'settings.resources.disk.heading': 'Диск', - 'settings.resources.max.open.files': 'Максимум відкритих файлів', - 'settings.resources.memory.heading': "Пам'ять", - 'settings.resources.memory.max.label': "Макс. використання пам'яті", - 'settings.tabs.bandwidth': 'Ширина пропускної здатності', - 'settings.tabs.connectivity': 'Підключення', - 'settings.tabs.heading': 'Налаштування', - 'settings.tabs.resources': 'Ресурси', - 'settings.tabs.authentication': 'Автентифікація', - 'settings.tabs.userinterface': 'Інтерфейс користувача', - 'settings.tabs.diskusage': 'Використання диску', - 'settings.tabs.about': 'Про програму', - 'settings.ui.locale': 'Локалізація', - 'settings.ui.language': 'Мова:', - 'settings.ui.torrent.list': 'Відображення торрентів', - 'settings.ui.torrent.size': 'Розмір торенту', - 'settings.ui.torrent.size.expanded': 'Розширений вигляд', - 'settings.ui.torrent.size.condensed': 'Стиснутий вигляд', - 'settings.ui.torrent.details.enabled': 'Увімкнено', - 'settings.ui.torrent.details.tags.placement': 'У розширеному перегляді теги в кінці списку працюють найкраще.', - 'settings.ui.displayed.details': 'Стовпці подробиць торенту', - 'settings.diskusage.show': 'Показати', - 'settings.diskusage.mount.points': 'Очки для використання диску', - 'settings.about.flood': 'Про Flood', - 'sidebar.button.feeds': 'Стрічки новин', - 'sidebar.button.notifications': 'Сповіщення', - 'sidebar.button.settings': 'Налаштування', - 'sidebar.button.speedlimits': 'Обмеження швидкості', - 'sidebar.button.log.out': 'Вийти з системи', - 'sidebar.search.placeholder': 'Пошук торентів', - 'sidebar.transferdata.downloaded': 'Завантажено', - 'sidebar.transferdata.uploaded': 'Відвантажено', - 'speed.unlimited': 'Необмежено', - 'unit.size.byte': 'Сі', - 'unit.size.kilobyte': 'кБ', - 'unit.size.megabyte': 'МБ', - 'unit.size.gigabyte': 'ГБ', - 'unit.size.terabyte': 'ТБ', - 'unit.speed': '{baseUnit}/с', - 'unit.time.year': 'yr', - 'unit.time.week': 'тижд', - 'unit.time.day': 'д', - 'unit.time.hour': 'год', - 'unit.time.minute': 'м', - 'unit.time.second': 'с', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Додати Торрент', - 'torrents.add.destination.label': 'Пункт призначення', - 'torrents.add.destination.placeholder': 'Пункт призначення', - 'torrents.add.heading': 'Додати торенти', - 'torrents.add.start.label': 'Почати торент', - 'torrents.add.tab.file.browse': 'або клацніть для перегляду', - 'torrents.add.tab.file.drop': 'Перетягніть сюди файли,', - 'torrents.add.tab.file.title': 'За файлом', - 'torrents.add.tab.url.input.placeholder': 'Адреса торенту або Magnet-посилання', - 'torrents.add.tab.url.title': 'За URL', - 'torrents.add.torrents.label': 'Торенти', - 'torrents.add.tags': 'Мітки', - 'torrents.destination.base_path': 'Використовувати як Базовий шлях', - 'torrents.details.actions.pause': 'Пауза', - 'torrents.details.actions.start': 'Старт', - 'torrents.details.actions.stop': 'Зупинити', - 'torrents.details.details': 'Подробиці', - 'torrents.details.files': 'Файли', - 'torrents.details.files.loading': 'Завантаження подробиць файлу...', - 'torrents.details.files.download.file': `{count, plural, =1 {Завантажити файл} other {Завантажити файл}}`, - 'torrents.details.general.comment': 'Коментар', - 'torrents.details.general.connected': '{connected} підключено до {total}', - 'torrents.details.general.date.added': 'Додано', - 'torrents.details.general.date.created': 'Дата створення', - 'torrents.details.general.downloaded': 'Завантажено', - 'torrents.details.general.free.disk.space': 'Вільний дисковий простір', - 'torrents.details.general.hash': 'Хеш', - 'torrents.details.general.heading.general': 'Загальні налаштування', - 'torrents.details.general.heading.torrent': 'Торент', - 'torrents.details.general.heading.tracker': 'Трекер', - 'torrents.details.general.heading.transfer': 'Переказ', - 'torrents.details.general.location': 'Місцезнаходження', - 'torrents.details.general.none': 'Без ефекту', - 'torrents.details.general.peers': 'Учасники', - 'torrents.details.general.scheduler.ignored': 'Ігнорується', - 'torrents.details.general.scheduler.obeyed': 'Підборіддя', - 'torrents.details.general.scheduler': 'Планувальник', - 'torrents.details.general.seeds': 'Насіння', - 'torrents.details.general.size': 'Розмір', - 'torrents.details.general.tags': 'Мітки', - 'torrents.details.general.tracker.message': 'Трекер повідомлення', - 'torrents.details.general.type.private': 'Приватний', - 'torrents.details.general.type.public': 'Загальнодоступна', - 'torrents.details.general.type': 'Тип', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'Немає даних для учасників цього торенту.', - 'torrents.details.peers': 'Учасники', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} Обраний файл} other {{countElement} обрані файли}}`, - 'torrents.details.selected.files.set.priority': 'Встановити пріоритет', - 'torrents.details.trackers.no.data': 'Немає даних трекеру для цього торенту.', - 'torrents.details.trackers.type': 'Тип', - 'torrents.details.trackers': 'Трекери', - 'torrents.list.clear.filters': 'Скинути фільтри', - 'torrents.list.context.check.hash': 'Перевірити хеш', - 'torrents.list.context.details': 'Деталі торенту', - 'torrents.list.context.move': 'Встановити розташування торентів', - 'torrents.list.context.pause': 'Пауза', - 'torrents.list.context.priority': 'Пріоритет', - 'torrents.list.context.remove': 'Видалити', - 'torrents.list.context.set.tags': 'Встановити позначки', - 'torrents.list.context.start': 'Старт', - 'torrents.list.context.stop': 'Зупинити', - 'torrents.list.no.torrents': 'Немає торентів для відображення.', - 'torrents.list.drop': 'Перетягніть файли сюди, щоб додати їх в rTorrent.', - 'torrents.list.cannot.connect': 'Не вдалося підключитися до rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'з', - 'torrents.move.button.set.location': 'Задати місцезнаходження', - 'torrents.move.button.state.setting': 'Налаштування...', - 'torrents.move.data.label': 'Переміщення даних', - 'torrents.move.check_hash.label': 'Перевірити хеш', - 'torrents.move.heading': 'Встановити розташування торентів', - 'torrents.properties.date.added': 'Додано', - 'torrents.properties.base.path': 'Основний шлях', - 'torrents.properties.comment': 'Коментар', - 'torrents.properties.creation.date': 'Дата створення', - 'torrents.properties.download.speed': 'Швидкість завантаження', - 'torrents.properties.download.total': 'Завантажено', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Вільний дисковий простір', - 'torrents.properties.hash': 'Хеш', - 'torrents.properties.ignore.schedule': 'Ігнорувати планувальник', - 'torrents.properties.is.private': 'Приватний', - 'torrents.properties.name': "Ім'я", - 'torrents.properties.percentage': 'Процент завершено', - 'torrents.properties.ratio': 'Співвідношення', - 'torrents.properties.size': 'Розмір файлу', - 'torrents.properties.tags': 'Мітки', - 'torrents.properties.tracker.message': 'Трекер повідомлення', - 'torrents.properties.upload.speed': 'Швидкість вивантаження', - 'torrents.properties.upload.total': 'Відвантажено', - 'torrents.remove.are.you.sure': `Ви впевнені, що хочете видалити {count, plural, =1 {# торент} other {# торрентів}}?`, - 'torrents.remove.delete.data': 'Видалити дані', - 'torrents.remove.error.no.torrents.selected': 'Ви не вибрали жодного торенту.', - 'torrents.remove': 'Вилучити торенти', - 'torrents.set.tags.button.set': 'Встановити позначки', - 'torrents.set.tags.heading': 'Встановити позначки', - 'torrents.set.tags.enter.tags': 'Введіть мітки', - 'torrents.sort.title': 'Сортувати за', - 'connection-interruption.heading': 'Не вдається підключитися до rTorrent', - 'connection-interruption.verify-settings-prompt': 'Давайте перевіримо ваші параметри підключення.', - 'connection-interruption.verification-error': 'Неможливо перевірити підключення.', - 'connection-interruption.verification-success': "З'єднання успішне", - 'status.diskusage.title': 'Використання диску', - 'locale.language.auto': 'Автоматично', -}; diff --git a/client/src/javascript/i18n/translations/uk.json b/client/src/javascript/i18n/translations/uk.json new file mode 100644 index 000000000..6d4697f96 --- /dev/null +++ b/client/src/javascript/i18n/translations/uk.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "Почати торент", + "actionbar.button.stop.torrent": "Зупинити торрент", + "actionbar.button.add.torrent": "Додати Торрент", + "actionbar.button.remove.torrent": "Прибрати торент", + "alert.torrent.add": "Успішно додано {countElement} {count, plural, =1 {торрент} other {торрент}}.", + "alert.torrent.add.failed": "Не вдалося додати {countElement} {count, plural, =1 {торент} other {торрент}}.", + "alert.torrent.move": "Успішно переміщено {countElement} {count, plural, =1 {торент} other {торрент}}.", + "alert.torrent.move.failed": "Не вдалося перемістити {countElement} {count, plural, =1 {торент} other {торрент}}.", + "alert.torrent.remove": "Успішно видалено {countElement} {count, plural, =1 {торент} other {торрент}}.", + "alert.torrent.remove.failed": "Не вдалося видалити {countElement} {count, plural, =1 {торент} other {торрент}}.", + "alert.settings.saved": "Налаштування успішно збережені.", + "auth.add.user": "Добавити користувача", + "auth.connectionType": "тип підключення rTorrent", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Унікальний сокет", + "auth.create.account": "Створити обл. запис", + "auth.create.an.account": "Створити акаунт", + "auth.create.an.account.intro": "Ласкаво просимо до Флуту!", + "auth.current.user": "Поточний користувач", + "auth.error.username.empty": "Ім'я користувача не може бути порожнім.", + "auth.log.in": "Увійти", + "auth.login": "Логін", + "auth.password": "Пароль", + "auth.user.accounts": "Облікові записи користувачів", + "auth.username": "Ім'я користувача", + "auth.admin": "Адмін", + "auth.message.not.admin": "Користувач не є адміністратором", + "auth.rtorrentHost": "rTorrent Хост", + "auth.rtorrentPort": "rTorrent порт", + "auth.rtorrentSocket": "rTorrent Сокет", + "auth.rtorrentSocketPath": "RTorrent Socket шлях", + "button.add": "Додати", + "button.cancel": "Скасувати", + "button.no": "Ні", + "button.save": "Зберегти Налаштування", + "button.save.feed": "Зберегти", + "button.test": "Тест", + "button.state.adding": "Додаємо...", + "button.yes": "Так", + "button.new": "Новий", + "connectivity.modal.title": "Проблема з підключенням", + "connectivity.modal.content": "Не вдається підключитися до rTorrent. Зараз необхідно оновити інформацію.", + "feeds.add.automatic.download.rule": "Додати правило завантаження", + "feeds.add.feed": "Добавити RSS Feed", + "feeds.applicable.feed": "Стрічка додатків", + "feeds.apply.tags": "Застосувати мітки", + "feeds.exclude.pattern": "Виключити ключ", + "feeds.existing.feeds": "Існуючі подачі", + "feeds.existing.rules": "Існуючі правила", + "feeds.label": "Мітка", + "feeds.match.count": "{count, plural, =1 {# співпадають} other {# матчів}}", + "feeds.match.pattern": "Шаблон матчу", + "feeds.match": "Матч", + "feeds.exclude": "Не включати", + "feeds.no.feeds.available": "Немає доступних каналів.", + "feeds.no.feeds.defined": "Каналів не визначено.", + "feeds.no.rules.defined": "Правила не визначені.", + "feeds.regEx": "Реджекс", + "feeds.select.feed": "Вибрати стрічку", + "feeds.select.interval": "Проміжок", + "feeds.start.on.load": "Запустити при завантаженні", + "feeds.tabs.download.rules": "Правила завантаження", + "feeds.tabs.feeds": "Стрічки новин", + "feeds.tabs.heading": "Торент фіди", + "feeds.tags": "Мітки", + "feeds.time.hr": "Годин", + "feeds.time.min": "Хвилин", + "feeds.time.day": "Днів", + "feeds.torrent.destination": "Призначення торенту", + "feeds.url": "Адреса", + "feeds.search": "Шукати за словом", + "feeds.validation.invalid.regular.expression": "Недійсний регулярний вираз.", + "feeds.validation.must.select.feed": "Ви повинні вибрати канал.", + "feeds.validation.must.specify.destination": "Ви повинні вказати місце призначення.", + "feeds.validation.must.specify.label": "Будь ласка, вкажіть мітку.", + "feeds.validation.must.specify.valid.feed.url": "Необхідно вказати дійсний URL каналу.", + "feeds.browse.feeds": "Перегляд стрічок", + "filesystem.empty.directory": "Тека порожня.", + "filesystem.error.eacces": "Флуд не має дозволу на читання цієї теки.", + "filesystem.error.enoent": "Цей шлях не існує. Він буде створений.", + "filesystem.fetching": "Отримання структури каталогу...", + "filter.all": "Всі", + "filter.status.title": "Фільтр за станом", + "filter.status.downloading": "Завантажується", + "filter.status.completed": "Complete", + "filter.status.active": "Активний", + "filter.status.inactive": "Неактивний", + "filter.status.error": "Помилка", + "filter.status.stopped": "Зупинено", + "filter.status.checking": "Перевірка", + "filter.tracker.title": "Фільтр по трекеру", + "filter.tag.title": "Фільтр за ярликами", + "filter.untagged": "Без тегів", + "general.ago": "тому", + "general.at": "під", + "general.to": "по", + "general.of": "з", + "general.clipboard.copy": "Копія", + "general.clipboard.copied": "Скопійовано", + "mediainfo.execError": "Виникла помилка під час роботи mediainfo на сервері. Перевірте, що mediainfo встановлений і доступний у PATH to Flood.", + "mediainfo.fetching": "Отримання...", + "mediainfo.heading": "Вивід Середньовіччя", + "notification.torrent.finished.heading": "Завершене завантаження", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Повідомлення про помилку", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Очистити все", + "notification.showing": "Показано", + "priority.dont.download": "Не завантажувати", + "priority.high": "Високий", + "priority.low": "Низька", + "priority.normal": "Нормальний", + "settings.bandwidth.slots.download.divider.label": "Завантажити розділювач слотів", + "settings.bandwidth.slots.download.global.label": "Завантажити слоти глобальним", + "settings.bandwidth.slots.download.label": "Завантажити слоти на торент", + "settings.bandwidth.slots.heading": "Наявність слоту", + "settings.bandwidth.slots.upload.divider.label": "Завантажити розділювач слотів", + "settings.bandwidth.slots.upload.global.label": "Глобальна передача слотів", + "settings.bandwidth.slots.upload.label": "Відвантажити слоти за торент", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Пресети випадаючого списку: Завантажити", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Пресети випадаючого списку: Завантаження", + "settings.bandwidth.transferrate.global.throttle.download": "Збільшення швидкості завантаження", + "settings.bandwidth.transferrate.global.throttle.upload": "Збільшення швидкості вивантаження", + "settings.bandwidth.transferrate.heading": "Збільшення швидкості передачі", + "settings.connectivity.dht.label": "Увімкнути DHT", + "settings.connectivity.dht.port.label": "DHT порт", + "settings.connectivity.dpd.heading": "Децентралізований канал для учасника", + "settings.connectivity.incoming.heading": "Вхідні підключення", + "settings.connectivity.ip.hostname.label": "Повідомлено IP/Hostname", + "settings.connectivity.max.http.connections": "Максимальна HTTP підключень", + "settings.connectivity.peer.exchange.label": "Увімкнути обмін учасниками", + "settings.connectivity.peers.desired.label": "Учасників Бажано", + "settings.connectivity.peers.heading": "Учасники", + "settings.connectivity.peers.max.label": "Максимальна кількість учасників", + "settings.connectivity.peers.min.label": "Мінімум учасників", + "settings.connectivity.peers.seeding.max.label": "Максимальна кількість учасників роздачі", + "settings.connectivity.peers.seeding.min.label": "Мінімум учасників на роздачі", + "settings.connectivity.port.open.label": "Відкритий порт", + "settings.connectivity.port.randomize.label": "Перемішати порт", + "settings.connectivity.port.range.label": "Діапазон портів", + "settings.resources.disk.check.hash.label": "Перевірити хеш при завершенні", + "settings.resources.disk.download.location.label": "Тека для завантажень за замовчуванням", + "settings.resources.disk.heading": "Диск", + "settings.resources.max.open.files": "Максимум відкритих файлів", + "settings.resources.memory.heading": "Пам'ять", + "settings.resources.memory.max.label": "Макс. використання пам'яті", + "settings.tabs.bandwidth": "Ширина пропускної здатності", + "settings.tabs.connectivity": "Підключення", + "settings.tabs.heading": "Налаштування", + "settings.tabs.resources": "Ресурси", + "settings.tabs.authentication": "Автентифікація", + "settings.tabs.userinterface": "Інтерфейс користувача", + "settings.tabs.diskusage": "Використання диску", + "settings.tabs.about": "Про програму", + "settings.ui.locale": "Локалізація", + "settings.ui.language": "Мова:", + "settings.ui.torrent.list": "Відображення торрентів", + "settings.ui.torrent.size": "Розмір торенту", + "settings.ui.torrent.size.expanded": "Розширений вигляд", + "settings.ui.torrent.size.condensed": "Стиснутий вигляд", + "settings.ui.torrent.details.enabled": "Увімкнено", + "settings.ui.torrent.details.tags.placement": "У розширеному перегляді теги в кінці списку працюють найкраще.", + "settings.ui.displayed.details": "Стовпці подробиць торенту", + "settings.diskusage.show": "Показати", + "settings.diskusage.mount.points": "Очки для використання диску", + "settings.about.flood": "Про Flood", + "sidebar.button.feeds": "Стрічки новин", + "sidebar.button.notifications": "Сповіщення", + "sidebar.button.settings": "Налаштування", + "sidebar.button.speedlimits": "Обмеження швидкості", + "sidebar.button.log.out": "Вийти з системи", + "sidebar.search.placeholder": "Пошук торентів", + "sidebar.transferdata.downloaded": "Завантажено", + "sidebar.transferdata.uploaded": "Відвантажено", + "speed.unlimited": "Необмежено", + "unit.size.byte": "Сі", + "unit.size.kilobyte": "кБ", + "unit.size.megabyte": "МБ", + "unit.size.gigabyte": "ГБ", + "unit.size.terabyte": "ТБ", + "unit.speed": "{baseUnit}/с", + "unit.time.year": "yr", + "unit.time.week": "тижд", + "unit.time.day": "д", + "unit.time.hour": "год", + "unit.time.minute": "м", + "unit.time.second": "с", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Додати Торрент", + "torrents.add.destination.label": "Пункт призначення", + "torrents.add.destination.placeholder": "Пункт призначення", + "torrents.add.heading": "Додати торенти", + "torrents.add.start.label": "Почати торент", + "torrents.add.tab.file.browse": "або клацніть для перегляду", + "torrents.add.tab.file.drop": "Перетягніть сюди файли,", + "torrents.add.tab.file.title": "За файлом", + "torrents.add.tab.url.input.placeholder": "Адреса торенту або Magnet-посилання", + "torrents.add.tab.url.title": "За URL", + "torrents.add.torrents.label": "Торенти", + "torrents.add.tags": "Мітки", + "torrents.destination.base_path": "Використовувати як Базовий шлях", + "torrents.details.actions.pause": "Пауза", + "torrents.details.actions.start": "Старт", + "torrents.details.actions.stop": "Зупинити", + "torrents.details.details": "Подробиці", + "torrents.details.files": "Файли", + "torrents.details.files.loading": "Завантаження подробиць файлу...", + "torrents.details.files.download.file": "{count, plural, =1 {Завантажити файл} other {Завантажити файл}}", + "torrents.details.general.comment": "Коментар", + "torrents.details.general.connected": "{connected} підключено до {total}", + "torrents.details.general.date.added": "Додано", + "torrents.details.general.date.created": "Дата створення", + "torrents.details.general.downloaded": "Завантажено", + "torrents.details.general.free.disk.space": "Вільний дисковий простір", + "torrents.details.general.hash": "Хеш", + "torrents.details.general.heading.general": "Загальні налаштування", + "torrents.details.general.heading.torrent": "Торент", + "torrents.details.general.heading.tracker": "Трекер", + "torrents.details.general.heading.transfer": "Переказ", + "torrents.details.general.location": "Місцезнаходження", + "torrents.details.general.none": "Без ефекту", + "torrents.details.general.peers": "Учасники", + "torrents.details.general.scheduler.ignored": "Ігнорується", + "torrents.details.general.scheduler.obeyed": "Підборіддя", + "torrents.details.general.scheduler": "Планувальник", + "torrents.details.general.seeds": "Насіння", + "torrents.details.general.size": "Розмір", + "torrents.details.general.tags": "Мітки", + "torrents.details.general.tracker.message": "Трекер повідомлення", + "torrents.details.general.type.private": "Приватний", + "torrents.details.general.type.public": "Загальнодоступна", + "torrents.details.general.type": "Тип", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "Немає даних для учасників цього торенту.", + "torrents.details.peers": "Учасники", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} Обраний файл} other {{countElement} обрані файли}}", + "torrents.details.selected.files.set.priority": "Встановити пріоритет", + "torrents.details.trackers.no.data": "Немає даних трекеру для цього торенту.", + "torrents.details.trackers.type": "Тип", + "torrents.details.trackers": "Трекери", + "torrents.list.clear.filters": "Скинути фільтри", + "torrents.list.context.check.hash": "Перевірити хеш", + "torrents.list.context.details": "Деталі торенту", + "torrents.list.context.move": "Встановити розташування торентів", + "torrents.list.context.pause": "Пауза", + "torrents.list.context.priority": "Пріоритет", + "torrents.list.context.remove": "Видалити", + "torrents.list.context.set.tags": "Встановити позначки", + "torrents.list.context.start": "Старт", + "torrents.list.context.stop": "Зупинити", + "torrents.list.no.torrents": "Немає торентів для відображення.", + "torrents.list.drop": "Перетягніть файли сюди, щоб додати їх в rTorrent.", + "torrents.list.cannot.connect": "Не вдалося підключитися до rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "з", + "torrents.move.button.set.location": "Задати місцезнаходження", + "torrents.move.button.state.setting": "Налаштування...", + "torrents.move.data.label": "Переміщення даних", + "torrents.move.check_hash.label": "Перевірити хеш", + "torrents.move.heading": "Встановити розташування торентів", + "torrents.properties.date.added": "Додано", + "torrents.properties.base.path": "Основний шлях", + "torrents.properties.comment": "Коментар", + "torrents.properties.creation.date": "Дата створення", + "torrents.properties.download.speed": "Швидкість завантаження", + "torrents.properties.download.total": "Завантажено", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Вільний дисковий простір", + "torrents.properties.hash": "Хеш", + "torrents.properties.ignore.schedule": "Ігнорувати планувальник", + "torrents.properties.is.private": "Приватний", + "torrents.properties.name": "Ім'я", + "torrents.properties.percentage": "Процент завершено", + "torrents.properties.ratio": "Співвідношення", + "torrents.properties.size": "Розмір файлу", + "torrents.properties.tags": "Мітки", + "torrents.properties.tracker.message": "Трекер повідомлення", + "torrents.properties.upload.speed": "Швидкість вивантаження", + "torrents.properties.upload.total": "Відвантажено", + "torrents.remove.are.you.sure": "Ви впевнені, що хочете видалити {count, plural, =1 {# торент} other {# торрентів}}?", + "torrents.remove.delete.data": "Видалити дані", + "torrents.remove.error.no.torrents.selected": "Ви не вибрали жодного торенту.", + "torrents.remove": "Вилучити торенти", + "torrents.set.tags.button.set": "Встановити позначки", + "torrents.set.tags.heading": "Встановити позначки", + "torrents.set.tags.enter.tags": "Введіть мітки", + "torrents.sort.title": "Сортувати за", + "connection-interruption.heading": "Не вдається підключитися до rTorrent", + "connection-interruption.verify-settings-prompt": "Давайте перевіримо ваші параметри підключення.", + "connection-interruption.verification-error": "Неможливо перевірити підключення.", + "connection-interruption.verification-success": "З'єднання успішне", + "status.diskusage.title": "Використання диску", + "locale.language.auto": "Автоматично" +} diff --git a/client/src/javascript/i18n/translations/vi.js b/client/src/javascript/i18n/translations/vi.js deleted file mode 100644 index c2e673a5f..000000000 --- a/client/src/javascript/i18n/translations/vi.js +++ /dev/null @@ -1,296 +0,0 @@ -export default { - 'actionbar.button.start.torrent': 'Start Torrent', - 'actionbar.button.stop.torrent': 'Stop Torrent', - 'actionbar.button.add.torrent': 'Add Torrent', - 'actionbar.button.remove.torrent': 'Remove Torrent', - 'alert.torrent.add': `Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.add.failed': `Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move': `Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.move.failed': `Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove': `Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.torrent.remove.failed': `Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.`, - 'alert.settings.saved': 'Successfully saved settings.', - 'auth.add.user': 'Add User', - 'auth.connectionType': 'rTorrent Connection Type', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': 'Create Account', - 'auth.create.an.account': 'Create an account', - 'auth.create.an.account.intro': 'Welcome to Flood!', - 'auth.current.user': 'Current User', - 'auth.error.username.empty': 'Username cannot be empty.', - 'auth.log.in': 'Log In', - 'auth.login': 'Login', - 'auth.password': 'Password', - 'auth.user.accounts': 'User Accounts', - 'auth.username': 'Username', - 'auth.admin': 'Admin', - 'auth.message.not.admin': 'User is not Admin', - 'auth.rtorrentHost': 'rTorrent Host', - 'auth.rtorrentPort': 'rTorrent Port', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket Path', - 'button.add': 'Add', - 'button.cancel': 'Cancel', - 'button.no': 'No', - 'button.save': 'Save Settings', - 'button.save.feed': 'Save', - 'button.test': 'Test', - 'button.state.adding': 'Adding...', - 'button.yes': 'Yes', - 'button.new': 'New', - 'connectivity.modal.title': 'Connectivity Issue', - 'connectivity.modal.content': 'Cannot connect to rTorrent. Please update the information now.', - 'feeds.add.automatic.download.rule': 'Add Download Rule', - 'feeds.add.feed': 'Add Feed', - 'feeds.applicable.feed': 'Applicable Feed', - 'feeds.apply.tags': 'Apply Tags', - 'feeds.exclude.pattern': 'Exclude Pattern', - 'feeds.existing.feeds': 'Existing Feeds', - 'feeds.existing.rules': 'Existing Rules', - 'feeds.label': 'Label', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': 'Match Pattern', - 'feeds.match': 'Match', - 'feeds.exclude': 'Exclude', - 'feeds.no.feeds.available': 'No feeds available.', - 'feeds.no.feeds.defined': 'No feeds defined.', - 'feeds.no.rules.defined': 'No rules defined.', - 'feeds.regEx': 'RegEx', - 'feeds.select.feed': 'Select Feed', - 'feeds.select.interval': 'Interval', - 'feeds.start.on.load': 'Start on load', - 'feeds.tabs.download.rules': 'Download Rules', - 'feeds.tabs.feeds': 'Feeds', - 'feeds.tabs.heading': 'Torrent Feeds', - 'feeds.tags': 'Tags', - 'feeds.time.hr': 'Hours', - 'feeds.time.min': 'Minutes', - 'feeds.time.day': 'Days', - 'feeds.torrent.destination': 'Torrent Destination', - 'feeds.url': 'URL', - 'feeds.search': 'Search term', - 'feeds.validation.invalid.regular.expression': 'Invalid regular expression.', - 'feeds.validation.must.select.feed': 'You must select a feed.', - 'feeds.validation.must.specify.destination': 'You must specify a destination.', - 'feeds.validation.must.specify.label': 'You must specify a label.', - 'feeds.validation.must.specify.valid.feed.url': 'You must specify a valid feed URL.', - 'feeds.browse.feeds': 'Browse feeds', - 'filesystem.empty.directory': 'Empty directory.', - 'filesystem.error.eacces': 'Flood does not have permission to read this directory.', - 'filesystem.error.enoent': 'This path does not exist. It will be created.', - 'filesystem.fetching': 'Fetching directory structure...', - 'filter.all': 'All', - 'filter.status.title': 'Filter by Status', - 'filter.status.downloading': 'Downloading', - 'filter.status.completed': 'Complete', - 'filter.status.active': 'Active', - 'filter.status.inactive': 'Inactive', - 'filter.status.error': 'Error', - 'filter.status.stopped': 'Stopped', - 'filter.status.checking': 'Checking', - 'filter.tracker.title': 'Filter by Tracker', - 'filter.tag.title': 'Filter by Tag', - 'filter.untagged': 'Untagged', - 'general.ago': 'ago', - 'general.at': 'at', - 'general.to': 'to', - 'general.of': 'of', - 'general.clipboard.copy': 'Copy', - 'general.clipboard.copied': 'Copied', - 'mediainfo.execError': - 'An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.', - 'mediainfo.fetching': 'Fetching...', - 'mediainfo.heading': 'Mediainfo Output', - 'notification.torrent.finished.heading': 'Finished Downloading', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': 'Error Reported', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': 'Clear All', - 'notification.showing': 'Showing', - 'priority.dont.download': "Don't Download", - 'priority.high': 'High', - 'priority.low': 'Low', - 'priority.normal': 'Normal', - 'settings.bandwidth.slots.download.divider.label': 'Download Slots Divider', - 'settings.bandwidth.slots.download.global.label': 'Download Slots Global', - 'settings.bandwidth.slots.download.label': 'Download Slots Per Torrent', - 'settings.bandwidth.slots.heading': 'Slot Availability', - 'settings.bandwidth.slots.upload.divider.label': 'Upload Slots Divider', - 'settings.bandwidth.slots.upload.global.label': 'Upload Slots Global', - 'settings.bandwidth.slots.upload.label': 'Upload Slots Per Torrent', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': 'Dropdown Presets: Download', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': 'Dropdown Presets: Upload', - 'settings.bandwidth.transferrate.global.throttle.download': 'Global Download Rate Throttle', - 'settings.bandwidth.transferrate.global.throttle.upload': 'Global Upload Rate Throttle', - 'settings.bandwidth.transferrate.heading': 'Transfer Rate Throttles', - 'settings.connectivity.dht.label': 'Enable DHT', - 'settings.connectivity.dht.port.label': 'DHT Port', - 'settings.connectivity.dpd.heading': 'Decentralized Peer Discovery', - 'settings.connectivity.incoming.heading': 'Incoming Connections', - 'settings.connectivity.ip.hostname.label': 'Reported IP/Hostname', - 'settings.connectivity.max.http.connections': 'Maximum HTTP Connections', - 'settings.connectivity.peer.exchange.label': 'Enable Peer Exchange', - 'settings.connectivity.peers.desired.label': 'Peers Desired', - 'settings.connectivity.peers.heading': 'Peers', - 'settings.connectivity.peers.max.label': 'Maximum Peers', - 'settings.connectivity.peers.min.label': 'Minimum Peers', - 'settings.connectivity.peers.seeding.max.label': 'Maximum Peers Seeding', - 'settings.connectivity.peers.seeding.min.label': 'Minimum Peers Seeding', - 'settings.connectivity.port.open.label': 'Open Port', - 'settings.connectivity.port.randomize.label': 'Randomize Port', - 'settings.connectivity.port.range.label': 'Port Range', - 'settings.resources.disk.check.hash.label': 'Verify Hash on Completion', - 'settings.resources.disk.download.location.label': 'Default Download Directory', - 'settings.resources.disk.heading': 'Disk', - 'settings.resources.max.open.files': 'Maximum Open Files', - 'settings.resources.memory.heading': 'Memory', - 'settings.resources.memory.max.label': 'Max Memory Usage', - 'settings.tabs.bandwidth': 'Bandwidth', - 'settings.tabs.connectivity': 'Connectivity', - 'settings.tabs.heading': 'Settings', - 'settings.tabs.resources': 'Resources', - 'settings.tabs.authentication': 'Authentication', - 'settings.tabs.userinterface': 'User Interface', - 'settings.tabs.diskusage': 'Disk Usage', - 'settings.tabs.about': 'About', - 'settings.ui.locale': 'Locale', - 'settings.ui.language': 'Language', - 'settings.ui.torrent.list': 'Torrent List Display', - 'settings.ui.torrent.size': 'Torrent Size', - 'settings.ui.torrent.size.expanded': 'Expanded View', - 'settings.ui.torrent.size.condensed': 'Condensed View', - 'settings.ui.torrent.details.enabled': 'Enabled', - 'settings.ui.torrent.details.tags.placement': 'In the expanded view, tags work best at the end of the list.', - 'settings.ui.displayed.details': 'Torrent Detail Columns', - 'settings.diskusage.show': 'Show', - 'settings.diskusage.mount.points': 'Disk Usage Mount Points', - 'settings.about.flood': 'About Flood', - 'sidebar.button.feeds': 'Feeds', - 'sidebar.button.notifications': 'Notifications', - 'sidebar.button.settings': 'Settings', - 'sidebar.button.speedlimits': 'Speed Limits', - 'sidebar.button.log.out': 'Log Out', - 'sidebar.search.placeholder': 'Search torrents', - 'sidebar.transferdata.downloaded': 'Downloaded', - 'sidebar.transferdata.uploaded': 'Uploaded', - 'speed.unlimited': 'Unlimited', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': 'yr', - 'unit.time.week': 'wk', - 'unit.time.day': 'd', - 'unit.time.hour': 'hr', - 'unit.time.minute': 'm', - 'unit.time.second': 's', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': 'Add Torrent', - 'torrents.add.destination.label': 'Destination', - 'torrents.add.destination.placeholder': 'Destination', - 'torrents.add.heading': 'Add Torrents', - 'torrents.add.start.label': 'Start Torrent', - 'torrents.add.tab.file.browse': 'or click to browse', - 'torrents.add.tab.file.drop': 'Drop some files here,', - 'torrents.add.tab.file.title': 'By File', - 'torrents.add.tab.url.input.placeholder': 'Torrent URL or Magnet Link', - 'torrents.add.tab.url.title': 'By URL', - 'torrents.add.torrents.label': 'Torrents', - 'torrents.add.tags': 'Tags', - 'torrents.destination.base_path': 'Use as Base Path', - 'torrents.details.actions.pause': 'Pause', - 'torrents.details.actions.start': 'Start', - 'torrents.details.actions.stop': 'Stop', - 'torrents.details.details': 'Details', - 'torrents.details.files': 'Files', - 'torrents.details.files.loading': 'Loading file detail...', - 'torrents.details.files.download.file': `{count, plural, =1 {Download File} other {Download Files}}`, - 'torrents.details.general.comment': 'Comment', - 'torrents.details.general.connected': '{connected} connected of {total}', - 'torrents.details.general.date.added': 'Added', - 'torrents.details.general.date.created': 'Creation Date', - 'torrents.details.general.downloaded': 'Downloaded', - 'torrents.details.general.free.disk.space': 'Free Disk Space', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': 'General', - 'torrents.details.general.heading.torrent': 'Torrent', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': 'Transfer', - 'torrents.details.general.location': 'Location', - 'torrents.details.general.none': 'None', - 'torrents.details.general.peers': 'Peers', - 'torrents.details.general.scheduler.ignored': 'Ignored', - 'torrents.details.general.scheduler.obeyed': 'Obeyed', - 'torrents.details.general.scheduler': 'Scheduler', - 'torrents.details.general.seeds': 'Seeds', - 'torrents.details.general.size': 'Size', - 'torrents.details.general.tags': 'Tags', - 'torrents.details.general.tracker.message': 'Tracker Message', - 'torrents.details.general.type.private': 'Private', - 'torrents.details.general.type.public': 'Public', - 'torrents.details.general.type': 'Type', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': 'There is no peer data for this torrent.', - 'torrents.details.peers': 'Peers', - 'torrents.details.selected.files': `{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}`, - 'torrents.details.selected.files.set.priority': 'Set Priority', - 'torrents.details.trackers.no.data': 'There is no tracker data for this torrent.', - 'torrents.details.trackers.type': 'Type', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': 'Clear Filters', - 'torrents.list.context.check.hash': 'Check Hash', - 'torrents.list.context.details': 'Torrent Details', - 'torrents.list.context.move': 'Set Torrent Location', - 'torrents.list.context.pause': 'Pause', - 'torrents.list.context.priority': 'Priority', - 'torrents.list.context.remove': 'Remove', - 'torrents.list.context.set.tags': 'Set Tags', - 'torrents.list.context.start': 'Start', - 'torrents.list.context.stop': 'Stop', - 'torrents.list.no.torrents': 'No torrents to display.', - 'torrents.list.drop': 'Drop files here to add them to rTorrent.', - 'torrents.list.cannot.connect': 'Cannot connect to rTorrent.', - 'torrent.list.peers': '{connected} {of} {total}', - 'torrent.list.peers.of': 'of', - 'torrents.move.button.set.location': 'Set Location', - 'torrents.move.button.state.setting': 'Setting...', - 'torrents.move.data.label': 'Move data', - 'torrents.move.check_hash.label': 'Check hash', - 'torrents.move.heading': 'Set Torrent Location', - 'torrents.properties.date.added': 'Added', - 'torrents.properties.base.path': 'Base Path', - 'torrents.properties.comment': 'Comment', - 'torrents.properties.creation.date': 'Creation Date', - 'torrents.properties.download.speed': 'Download Speed', - 'torrents.properties.download.total': 'Downloaded', - 'torrents.properties.eta': 'ETA', - 'torrents.properties.free.disk.space': 'Free Disk Space', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': 'Ignore Scheduler', - 'torrents.properties.is.private': 'Private', - 'torrents.properties.name': 'Name', - 'torrents.properties.percentage': 'Percent Complete', - 'torrents.properties.ratio': 'Ratio', - 'torrents.properties.size': 'File Size', - 'torrents.properties.tags': 'Tags', - 'torrents.properties.tracker.message': 'Tracker Message', - 'torrents.properties.upload.speed': 'Upload Speed', - 'torrents.properties.upload.total': 'Uploaded', - 'torrents.remove.are.you.sure': `Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?`, - 'torrents.remove.delete.data': 'Delete data', - 'torrents.remove.error.no.torrents.selected': "You haven't selected any torrents.", - 'torrents.remove': 'Remove Torrents', - 'torrents.set.tags.button.set': 'Set Tags', - 'torrents.set.tags.heading': 'Set Tags', - 'torrents.set.tags.enter.tags': 'Enter tags', - 'torrents.sort.title': 'Sort By', - 'connection-interruption.heading': 'Cannot connect to rTorrent', - 'connection-interruption.verify-settings-prompt': "Let's verify your connection settings.", - 'connection-interruption.verification-error': 'Connection could not be verified.', - 'connection-interruption.verification-success': 'Connection successful', - 'status.diskusage.title': 'Disk Usage', - 'locale.language.auto': 'Automatic', -}; diff --git a/client/src/javascript/i18n/translations/zh-Hans.js b/client/src/javascript/i18n/translations/zh-Hans.js deleted file mode 100644 index 21168480d..000000000 --- a/client/src/javascript/i18n/translations/zh-Hans.js +++ /dev/null @@ -1,295 +0,0 @@ -export default { - 'actionbar.button.start.torrent': '启动种子', - 'actionbar.button.stop.torrent': '停止种子', - 'actionbar.button.add.torrent': '添加种子', - 'actionbar.button.remove.torrent': '移除种子', - 'alert.torrent.add': `成功添加 {countElement} 个种子。`, - 'alert.torrent.add.failed': `{countElement} 个种子添加失败。`, - 'alert.torrent.move': `移动 {countElement} 个种子成功。`, - 'alert.torrent.move.failed': `{countElement} 个种子移动失败。`, - 'alert.torrent.remove': `成功移除 {countElement} 个种子。`, - 'alert.torrent.remove.failed': `{countElement} 个种子移除失败。`, - 'alert.settings.saved': '设置保存成功!', - 'auth.add.user': '增加用户', - 'auth.connectionType': 'rTorrent 连接类型', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': '创建账号', - 'auth.create.an.account': '创建一个账号', - 'auth.create.an.account.intro': '欢迎使用 Flood!', - 'auth.current.user': '当前用户', - 'auth.error.username.empty': '用户名不能为空', - 'auth.log.in': '登录', - 'auth.login': '登录', - 'auth.password': '密码', - 'auth.user.accounts': '用户账号', - 'auth.username': '用户名', - 'auth.admin': '管理员', - 'auth.message.not.admin': '用户不是管理员', - 'auth.rtorrentHost': 'rTorrent 主机', - 'auth.rtorrentPort': 'rTorrent 端口', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket 路径', - 'button.add': '新增', - 'button.cancel': '取消', - 'button.no': '取消', - 'button.save': '保存设置', - 'button.save.feed': '保存', - 'button.test': '测试', - 'button.state.adding': '正在添加...', - 'button.yes': '是', - 'button.new': '添加', - 'connectivity.modal.title': '连接失败', - 'connectivity.modal.content': '无法连接至 rTorrent. 请更新信息!', - 'feeds.add.automatic.download.rule': '增加下载规则', - 'feeds.add.feed': '添加订阅源', - 'feeds.applicable.feed': '可用的订阅源', - 'feeds.apply.tags': '变更标签', - 'feeds.exclude.pattern': '排除规则', - 'feeds.existing.feeds': '现有的订阅源', - 'feeds.existing.rules': '现有的规则', - 'feeds.label': '标签', - 'feeds.match.count': '# 个匹配', - 'feeds.match.pattern': '匹配规则', - 'feeds.match': '匹配', - 'feeds.exclude': '排除', - 'feeds.no.feeds.available': '没有可用的订阅源。', - 'feeds.no.feeds.defined': '没有定义订阅源。', - 'feeds.no.rules.defined': '没有定义规则。', - 'feeds.regEx': '正则', - 'feeds.select.feed': '选择订阅源', - 'feeds.select.interval': '间隔', - 'feeds.start.on.load': '读取后开始', - 'feeds.tabs.download.rules': '下载规则', - 'feeds.tabs.feeds': '订阅源', - 'feeds.tabs.heading': '种子源', - 'feeds.tags': '标签', - 'feeds.time.hr': '时', - 'feeds.time.min': '分', - 'feeds.time.day': '天', - 'feeds.torrent.destination': '下载位置', - 'feeds.url': '网址', - 'feeds.search': '搜索关键词', - 'feeds.validation.invalid.regular.expression': '无效的RegEx。', - 'feeds.validation.must.select.feed': '你必须选择一个订阅源。', - 'feeds.validation.must.specify.destination': '你必须指定下载位置。', - 'feeds.validation.must.specify.label': '你必须指定标签。', - 'feeds.validation.must.specify.valid.feed.url': '你必须指定有效的订阅源网址。', - 'feeds.browse.feeds': '浏览订阅源', - 'filesystem.empty.directory': '空目录。', - 'filesystem.error.eacces': 'Flood没有权限读取此目录。', - 'filesystem.error.enoent': '路径不存在,将会创建此目录。', - 'filesystem.fetching': '获取目录结构...', - 'filter.all': '全部', - 'filter.status.title': '按状态筛选', - 'filter.status.downloading': '下载中', - 'filter.status.completed': '已完成', - 'filter.status.active': '活动中', - 'filter.status.inactive': '非活动中', - 'filter.status.error': '错误', - 'filter.status.stopped': '已停止', - 'filter.status.checking': '校验中', - 'filter.tracker.title': '按Tracker筛选', - 'filter.tag.title': '按标签筛选', - 'filter.untagged': '无标签', - 'general.ago': '前', - 'general.at': '在', - 'general.to': '到', - 'general.of': '的', - 'general.clipboard.copy': '复制', - 'general.clipboard.copied': '复制成功', - 'mediainfo.execError': '在服务器上运行mediainfo时发生错误。检查mediainfo是否已经安装,并且在PATH中!', - 'mediainfo.fetching': '获取中...', - 'mediainfo.heading': 'Mediainfo 输出', - 'notification.torrent.finished.heading': '下载完成!', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': '错误报告', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': '全部清除', - 'notification.showing': '显示', - 'priority.dont.download': '不下载', - 'priority.high': '高', - 'priority.low': '低', - 'priority.normal': '正常', - 'settings.bandwidth.slots.download.divider.label': '下载槽分配器', - 'settings.bandwidth.slots.download.global.label': '全局下载槽数', - 'settings.bandwidth.slots.download.label': '每个种子下载槽数', - 'settings.bandwidth.slots.heading': '传输槽位限制', - 'settings.bandwidth.slots.upload.divider.label': '上传槽分配器', - 'settings.bandwidth.slots.upload.global.label': '全局上传槽数', - 'settings.bandwidth.slots.upload.label': '每个种子上传槽数', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': '下载速度限制菜单', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': '上传速度限制菜单', - 'settings.bandwidth.transferrate.global.throttle.download': '全局下载速度限制', - 'settings.bandwidth.transferrate.global.throttle.upload': '全局上传速度限制', - 'settings.bandwidth.transferrate.heading': '传输速度限制', - 'settings.connectivity.dht.label': '开启 DHT', - 'settings.connectivity.dht.port.label': 'DHT 端口', - 'settings.connectivity.dpd.heading': '分散式节点发现', - 'settings.connectivity.incoming.heading': '传入连接', - 'settings.connectivity.ip.hostname.label': '上报 IP/主机名', - 'settings.connectivity.max.http.connections': '最大HTTP连接数', - 'settings.connectivity.peer.exchange.label': '启用节点交换', - 'settings.connectivity.peers.desired.label': '期望节点数', - 'settings.connectivity.peers.heading': '节点', - 'settings.connectivity.peers.max.label': '最大节点数', - 'settings.connectivity.peers.min.label': '最小节点数', - 'settings.connectivity.peers.seeding.max.label': '最大做种数', - 'settings.connectivity.peers.seeding.min.label': '最小做种数', - 'settings.connectivity.port.open.label': '开放端口', - 'settings.connectivity.port.randomize.label': '随机端口', - 'settings.connectivity.port.range.label': '端口范围', - 'settings.resources.disk.check.hash.label': '完成后校验', - 'settings.resources.disk.download.location.label': '默认下载目录', - 'settings.resources.disk.heading': '磁盘', - 'settings.resources.max.open.files': '最大打开文件数', - 'settings.resources.memory.heading': '内存', - 'settings.resources.memory.max.label': '最大内存使用', - 'settings.tabs.bandwidth': '带宽', - 'settings.tabs.connectivity': '连接', - 'settings.tabs.heading': '设置', - 'settings.tabs.resources': '资源', - 'settings.tabs.authentication': '认证', - 'settings.tabs.userinterface': '用户接口', - 'settings.tabs.diskusage': '磁盘使用', - 'settings.tabs.about': '关于', - 'settings.ui.locale': '本地化', - 'settings.ui.language': '语言', - 'settings.ui.torrent.list': '种子列表显示模式', - 'settings.ui.torrent.size': '种子大小', - 'settings.ui.torrent.size.expanded': '展开模式', - 'settings.ui.torrent.size.condensed': '紧凑模式', - 'settings.ui.torrent.details.enabled': '启用', - 'settings.ui.torrent.details.tags.placement': '在展开模式中,标签最好能够在列表末尾。', - 'settings.ui.displayed.details': '种子详情列表', - 'settings.diskusage.show': '显示', - 'settings.diskusage.mount.points': '磁盘挂载点', - 'settings.about.flood': '关于Flood', - 'sidebar.button.feeds': '订阅源', - 'sidebar.button.notifications': '通知', - 'sidebar.button.settings': '设置', - 'sidebar.button.speedlimits': '速度限制', - 'sidebar.button.log.out': '登出', - 'sidebar.search.placeholder': '搜索种子', - 'sidebar.transferdata.downloaded': '已下载', - 'sidebar.transferdata.uploaded': '已上传', - 'speed.unlimited': '无限制', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'kB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': '年', - 'unit.time.week': '周', - 'unit.time.day': '天', - 'unit.time.hour': '时', - 'unit.time.minute': '分', - 'unit.time.second': '秒', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': '添加种子', - 'torrents.add.destination.label': '下载位置', - 'torrents.add.destination.placeholder': '下载位置', - 'torrents.add.heading': '添加种子', - 'torrents.add.start.label': '开始下载', - 'torrents.add.tab.file.browse': '或点击浏览', - 'torrents.add.tab.file.drop': '将文件拖至此处,', - 'torrents.add.tab.file.title': '上传文件', - 'torrents.add.tab.url.input.placeholder': '种子网址或磁力链接', - 'torrents.add.tab.url.title': '从网址', - 'torrents.add.torrents.label': '种子', - 'torrents.add.tags': '标签', - 'torrents.destination.base_path': '作为基础路径', - 'torrents.details.actions.pause': '暂停', - 'torrents.details.actions.start': '开始', - 'torrents.details.actions.stop': '停止', - 'torrents.details.details': '详情', - 'torrents.details.files': '文件', - 'torrents.details.files.loading': '正在加载详细信息...', - 'torrents.details.files.download.file': `下载文件`, - 'torrents.details.general.comment': '评论', - 'torrents.details.general.connected': '已连接到 {connected} / {total}', - 'torrents.details.general.date.added': '添加时间', - 'torrents.details.general.date.created': '创建时间', - 'torrents.details.general.downloaded': '已下载', - 'torrents.details.general.free.disk.space': '可用磁盘空间', - 'torrents.details.general.hash': 'Hash', - 'torrents.details.general.heading.general': '概况', - 'torrents.details.general.heading.torrent': '种子', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': '传输', - 'torrents.details.general.location': '位置', - 'torrents.details.general.none': '无', - 'torrents.details.general.peers': '节点', - 'torrents.details.general.scheduler.ignored': '已忽略', - 'torrents.details.general.scheduler.obeyed': '已遵守', - 'torrents.details.general.scheduler': '调度器', - 'torrents.details.general.seeds': '做种者', - 'torrents.details.general.size': '大小', - 'torrents.details.general.tags': '标签', - 'torrents.details.general.tracker.message': 'Tracker 信息', - 'torrents.details.general.type.private': '私有', - 'torrents.details.general.type.public': '公开', - 'torrents.details.general.type': '类型', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': '这个种子没有节点信息。', - 'torrents.details.peers': '节点', - 'torrents.details.selected.files': `已选择 {countElement} 个文件`, - 'torrents.details.selected.files.set.priority': '设置优先级', - 'torrents.details.trackers.no.data': '这个种子没有 Tracker 信息。', - 'torrents.details.trackers.type': '类型', - 'torrents.details.trackers': 'Tracker 服务器', - 'torrents.list.clear.filters': '清除筛选', - 'torrents.list.context.check.hash': '校验', - 'torrents.list.context.details': '种子详情', - 'torrents.list.context.move': '设置种子位置', - 'torrents.list.context.pause': '暂停', - 'torrents.list.context.priority': '优先级', - 'torrents.list.context.remove': '移除', - 'torrents.list.context.set.tags': '设置标签', - 'torrents.list.context.start': '开始', - 'torrents.list.context.stop': '停止', - 'torrents.list.no.torrents': '没有可显示的种子。', - 'torrents.list.drop': '将文件拖放到此处,以添加到 rTorrent。', - 'torrents.list.cannot.connect': '无法连接到 rTorrent.', - 'torrent.list.peers': '{connected} / {total}', - 'torrent.list.peers.of': '/', - 'torrents.move.button.set.location': '设置路径', - 'torrents.move.button.state.setting': '设置中...', - 'torrents.move.data.label': '移动数据', - 'torrents.move.check_hash.label': '校验', - 'torrents.move.heading': '设置种子路径', - 'torrents.properties.date.added': '添加时间', - 'torrents.properties.base.path': '位置', - 'torrents.properties.comment': '备注', - 'torrents.properties.creation.date': '创建时间', - 'torrents.properties.download.speed': '下载速度', - 'torrents.properties.download.total': '已下载', - 'torrents.properties.eta': '剩余时间', - 'torrents.properties.free.disk.space': '可用磁盘空间', - 'torrents.properties.hash': 'Hash', - 'torrents.properties.ignore.schedule': '忽略调度器', - 'torrents.properties.is.private': '私有', - 'torrents.properties.name': '名称', - 'torrents.properties.percentage': '完成百分比', - 'torrents.properties.ratio': '分享率', - 'torrents.properties.size': '文件大小', - 'torrents.properties.tags': '标签', - 'torrents.properties.tracker.message': 'Tracker 信息', - 'torrents.properties.upload.speed': '上传速度', - 'torrents.properties.upload.total': '已上传', - 'torrents.remove.are.you.sure': `你确定你想要删除 # 个种子`, - 'torrents.remove.delete.data': '删除数据', - 'torrents.remove.error.no.torrents.selected': '您没有选择任何种子。', - 'torrents.remove': '移除种子', - 'torrents.set.tags.button.set': '设置标签', - 'torrents.set.tags.heading': '设置标签', - 'torrents.set.tags.enter.tags': '输入标签', - 'torrents.sort.title': '排序方式', - 'connection-interruption.heading': '无法连接到 rTorrent', - 'connection-interruption.verify-settings-prompt': '检查您的连接设置', - 'connection-interruption.verification-error': '无法建立连接。', - 'connection-interruption.verification-success': '连接成功!', - 'status.diskusage.title': '磁盘使用量', - 'locale.language.auto': '自动', -}; diff --git a/client/src/javascript/i18n/translations/zh-Hans.json b/client/src/javascript/i18n/translations/zh-Hans.json new file mode 100644 index 000000000..a5a5be4b4 --- /dev/null +++ b/client/src/javascript/i18n/translations/zh-Hans.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "启动种子", + "actionbar.button.stop.torrent": "停止种子", + "actionbar.button.add.torrent": "添加种子", + "actionbar.button.remove.torrent": "移除种子", + "alert.torrent.add": "成功添加 {countElement} 个种子。", + "alert.torrent.add.failed": "{countElement} 个种子添加失败。", + "alert.torrent.move": "移动 {countElement} 个种子成功。", + "alert.torrent.move.failed": "{countElement} 个种子移动失败。", + "alert.torrent.remove": "成功移除 {countElement} 个种子。", + "alert.torrent.remove.failed": "{countElement} 个种子移除失败。", + "alert.settings.saved": "设置保存成功!", + "auth.add.user": "增加用户", + "auth.connectionType": "rTorrent 连接类型", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "创建账号", + "auth.create.an.account": "创建一个账号", + "auth.create.an.account.intro": "欢迎使用 Flood!", + "auth.current.user": "当前用户", + "auth.error.username.empty": "用户名不能为空", + "auth.log.in": "登录", + "auth.login": "登录", + "auth.password": "密码", + "auth.user.accounts": "用户账号", + "auth.username": "用户名", + "auth.admin": "管理员", + "auth.message.not.admin": "用户不是管理员", + "auth.rtorrentHost": "rTorrent 主机", + "auth.rtorrentPort": "rTorrent 端口", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket 路径", + "button.add": "新增", + "button.cancel": "取消", + "button.no": "取消", + "button.save": "保存设置", + "button.save.feed": "保存", + "button.test": "测试", + "button.state.adding": "正在添加...", + "button.yes": "是", + "button.new": "添加", + "connectivity.modal.title": "连接失败", + "connectivity.modal.content": "无法连接至 rTorrent. 请更新信息!", + "feeds.add.automatic.download.rule": "增加下载规则", + "feeds.add.feed": "添加订阅源", + "feeds.applicable.feed": "可用的订阅源", + "feeds.apply.tags": "变更标签", + "feeds.exclude.pattern": "排除规则", + "feeds.existing.feeds": "现有的订阅源", + "feeds.existing.rules": "现有的规则", + "feeds.label": "标签", + "feeds.match.count": "# 个匹配", + "feeds.match.pattern": "匹配规则", + "feeds.match": "匹配", + "feeds.exclude": "排除", + "feeds.no.feeds.available": "没有可用的订阅源。", + "feeds.no.feeds.defined": "没有定义订阅源。", + "feeds.no.rules.defined": "没有定义规则。", + "feeds.regEx": "正则", + "feeds.select.feed": "选择订阅源", + "feeds.select.interval": "间隔", + "feeds.start.on.load": "读取后开始", + "feeds.tabs.download.rules": "下载规则", + "feeds.tabs.feeds": "订阅源", + "feeds.tabs.heading": "种子源", + "feeds.tags": "标签", + "feeds.time.hr": "时", + "feeds.time.min": "分", + "feeds.time.day": "天", + "feeds.torrent.destination": "下载位置", + "feeds.url": "网址", + "feeds.search": "搜索关键词", + "feeds.validation.invalid.regular.expression": "无效的RegEx。", + "feeds.validation.must.select.feed": "你必须选择一个订阅源。", + "feeds.validation.must.specify.destination": "你必须指定下载位置。", + "feeds.validation.must.specify.label": "你必须指定标签。", + "feeds.validation.must.specify.valid.feed.url": "你必须指定有效的订阅源网址。", + "feeds.browse.feeds": "浏览订阅源", + "filesystem.empty.directory": "空目录。", + "filesystem.error.eacces": "Flood没有权限读取此目录。", + "filesystem.error.enoent": "路径不存在,将会创建此目录。", + "filesystem.fetching": "获取目录结构...", + "filter.all": "全部", + "filter.status.title": "按状态筛选", + "filter.status.downloading": "下载中", + "filter.status.completed": "已完成", + "filter.status.active": "活动中", + "filter.status.inactive": "非活动中", + "filter.status.error": "错误", + "filter.status.stopped": "已停止", + "filter.status.checking": "校验中", + "filter.tracker.title": "按Tracker筛选", + "filter.tag.title": "按标签筛选", + "filter.untagged": "无标签", + "general.ago": "前", + "general.at": "在", + "general.to": "到", + "general.of": "的", + "general.clipboard.copy": "复制", + "general.clipboard.copied": "复制成功", + "mediainfo.execError": "在服务器上运行mediainfo时发生错误。检查mediainfo是否已经安装,并且在PATH中!", + "mediainfo.fetching": "获取中...", + "mediainfo.heading": "Mediainfo 输出", + "notification.torrent.finished.heading": "下载完成!", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "错误报告", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "全部清除", + "notification.showing": "显示", + "priority.dont.download": "不下载", + "priority.high": "高", + "priority.low": "低", + "priority.normal": "正常", + "settings.bandwidth.slots.download.divider.label": "下载槽分配器", + "settings.bandwidth.slots.download.global.label": "全局下载槽数", + "settings.bandwidth.slots.download.label": "每个种子下载槽数", + "settings.bandwidth.slots.heading": "传输槽位限制", + "settings.bandwidth.slots.upload.divider.label": "上传槽分配器", + "settings.bandwidth.slots.upload.global.label": "全局上传槽数", + "settings.bandwidth.slots.upload.label": "每个种子上传槽数", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "下载速度限制菜单", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "上传速度限制菜单", + "settings.bandwidth.transferrate.global.throttle.download": "全局下载速度限制", + "settings.bandwidth.transferrate.global.throttle.upload": "全局上传速度限制", + "settings.bandwidth.transferrate.heading": "传输速度限制", + "settings.connectivity.dht.label": "开启 DHT", + "settings.connectivity.dht.port.label": "DHT 端口", + "settings.connectivity.dpd.heading": "分散式节点发现", + "settings.connectivity.incoming.heading": "传入连接", + "settings.connectivity.ip.hostname.label": "上报 IP/主机名", + "settings.connectivity.max.http.connections": "最大HTTP连接数", + "settings.connectivity.peer.exchange.label": "启用节点交换", + "settings.connectivity.peers.desired.label": "期望节点数", + "settings.connectivity.peers.heading": "节点", + "settings.connectivity.peers.max.label": "最大节点数", + "settings.connectivity.peers.min.label": "最小节点数", + "settings.connectivity.peers.seeding.max.label": "最大做种数", + "settings.connectivity.peers.seeding.min.label": "最小做种数", + "settings.connectivity.port.open.label": "开放端口", + "settings.connectivity.port.randomize.label": "随机端口", + "settings.connectivity.port.range.label": "端口范围", + "settings.resources.disk.check.hash.label": "完成后校验", + "settings.resources.disk.download.location.label": "默认下载目录", + "settings.resources.disk.heading": "磁盘", + "settings.resources.max.open.files": "最大打开文件数", + "settings.resources.memory.heading": "内存", + "settings.resources.memory.max.label": "最大内存使用", + "settings.tabs.bandwidth": "带宽", + "settings.tabs.connectivity": "连接", + "settings.tabs.heading": "设置", + "settings.tabs.resources": "资源", + "settings.tabs.authentication": "认证", + "settings.tabs.userinterface": "用户接口", + "settings.tabs.diskusage": "磁盘使用", + "settings.tabs.about": "关于", + "settings.ui.locale": "本地化", + "settings.ui.language": "语言", + "settings.ui.torrent.list": "种子列表显示模式", + "settings.ui.torrent.size": "种子大小", + "settings.ui.torrent.size.expanded": "展开模式", + "settings.ui.torrent.size.condensed": "紧凑模式", + "settings.ui.torrent.details.enabled": "启用", + "settings.ui.torrent.details.tags.placement": "在展开模式中,标签最好能够在列表末尾。", + "settings.ui.displayed.details": "种子详情列表", + "settings.diskusage.show": "显示", + "settings.diskusage.mount.points": "磁盘挂载点", + "settings.about.flood": "关于Flood", + "sidebar.button.feeds": "订阅源", + "sidebar.button.notifications": "通知", + "sidebar.button.settings": "设置", + "sidebar.button.speedlimits": "速度限制", + "sidebar.button.log.out": "登出", + "sidebar.search.placeholder": "搜索种子", + "sidebar.transferdata.downloaded": "已下载", + "sidebar.transferdata.uploaded": "已上传", + "speed.unlimited": "无限制", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "年", + "unit.time.week": "周", + "unit.time.day": "天", + "unit.time.hour": "时", + "unit.time.minute": "分", + "unit.time.second": "秒", + "unit.time.infinity": "∞", + "torrents.add.button.add": "添加种子", + "torrents.add.destination.label": "下载位置", + "torrents.add.destination.placeholder": "下载位置", + "torrents.add.heading": "添加种子", + "torrents.add.start.label": "开始下载", + "torrents.add.tab.file.browse": "或点击浏览", + "torrents.add.tab.file.drop": "将文件拖至此处,", + "torrents.add.tab.file.title": "上传文件", + "torrents.add.tab.url.input.placeholder": "种子网址或磁力链接", + "torrents.add.tab.url.title": "从网址", + "torrents.add.torrents.label": "种子", + "torrents.add.tags": "标签", + "torrents.destination.base_path": "作为基础路径", + "torrents.details.actions.pause": "暂停", + "torrents.details.actions.start": "开始", + "torrents.details.actions.stop": "停止", + "torrents.details.details": "详情", + "torrents.details.files": "文件", + "torrents.details.files.loading": "正在加载详细信息...", + "torrents.details.files.download.file": "下载文件", + "torrents.details.general.comment": "评论", + "torrents.details.general.connected": "已连接到 {connected} / {total}", + "torrents.details.general.date.added": "添加时间", + "torrents.details.general.date.created": "创建时间", + "torrents.details.general.downloaded": "已下载", + "torrents.details.general.free.disk.space": "可用磁盘空间", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "概况", + "torrents.details.general.heading.torrent": "种子", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "传输", + "torrents.details.general.location": "位置", + "torrents.details.general.none": "无", + "torrents.details.general.peers": "节点", + "torrents.details.general.scheduler.ignored": "已忽略", + "torrents.details.general.scheduler.obeyed": "已遵守", + "torrents.details.general.scheduler": "调度器", + "torrents.details.general.seeds": "做种者", + "torrents.details.general.size": "大小", + "torrents.details.general.tags": "标签", + "torrents.details.general.tracker.message": "Tracker 信息", + "torrents.details.general.type.private": "私有", + "torrents.details.general.type.public": "公开", + "torrents.details.general.type": "类型", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "这个种子没有节点信息。", + "torrents.details.peers": "节点", + "torrents.details.selected.files": "已选择 {countElement} 个文件", + "torrents.details.selected.files.set.priority": "设置优先级", + "torrents.details.trackers.no.data": "这个种子没有 Tracker 信息。", + "torrents.details.trackers.type": "类型", + "torrents.details.trackers": "Tracker 服务器", + "torrents.list.clear.filters": "清除筛选", + "torrents.list.context.check.hash": "校验", + "torrents.list.context.details": "种子详情", + "torrents.list.context.move": "设置种子位置", + "torrents.list.context.pause": "暂停", + "torrents.list.context.priority": "优先级", + "torrents.list.context.remove": "移除", + "torrents.list.context.set.tags": "设置标签", + "torrents.list.context.start": "开始", + "torrents.list.context.stop": "停止", + "torrents.list.no.torrents": "没有可显示的种子。", + "torrents.list.drop": "将文件拖放到此处,以添加到 rTorrent。", + "torrents.list.cannot.connect": "无法连接到 rTorrent.", + "torrent.list.peers": "{connected} / {total}", + "torrent.list.peers.of": "/", + "torrents.move.button.set.location": "设置路径", + "torrents.move.button.state.setting": "设置中...", + "torrents.move.data.label": "移动数据", + "torrents.move.check_hash.label": "校验", + "torrents.move.heading": "设置种子路径", + "torrents.properties.date.added": "添加时间", + "torrents.properties.base.path": "位置", + "torrents.properties.comment": "备注", + "torrents.properties.creation.date": "创建时间", + "torrents.properties.download.speed": "下载速度", + "torrents.properties.download.total": "已下载", + "torrents.properties.eta": "剩余时间", + "torrents.properties.free.disk.space": "可用磁盘空间", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "忽略调度器", + "torrents.properties.is.private": "私有", + "torrents.properties.name": "名称", + "torrents.properties.percentage": "完成百分比", + "torrents.properties.ratio": "分享率", + "torrents.properties.size": "文件大小", + "torrents.properties.tags": "标签", + "torrents.properties.tracker.message": "Tracker 信息", + "torrents.properties.upload.speed": "上传速度", + "torrents.properties.upload.total": "已上传", + "torrents.remove.are.you.sure": "你确定你想要删除 # 个种子", + "torrents.remove.delete.data": "删除数据", + "torrents.remove.error.no.torrents.selected": "您没有选择任何种子。", + "torrents.remove": "移除种子", + "torrents.set.tags.button.set": "设置标签", + "torrents.set.tags.heading": "设置标签", + "torrents.set.tags.enter.tags": "输入标签", + "torrents.sort.title": "排序方式", + "connection-interruption.heading": "无法连接到 rTorrent", + "connection-interruption.verify-settings-prompt": "检查您的连接设置", + "connection-interruption.verification-error": "无法建立连接。", + "connection-interruption.verification-success": "连接成功!", + "status.diskusage.title": "磁盘使用量", + "locale.language.auto": "自动" +} diff --git a/client/src/javascript/i18n/translations/zh-Hant.js b/client/src/javascript/i18n/translations/zh-Hant.js deleted file mode 100644 index 4d66580d4..000000000 --- a/client/src/javascript/i18n/translations/zh-Hant.js +++ /dev/null @@ -1,295 +0,0 @@ -export default { - 'actionbar.button.start.torrent': '開始下載', - 'actionbar.button.stop.torrent': '停止下載', - 'actionbar.button.add.torrent': '新增種子', - 'actionbar.button.remove.torrent': '移除種子', - 'alert.torrent.add': `成功新增 {countElement} 個種子。`, - 'alert.torrent.add.failed': `新增 {countElement} 個種子失敗。`, - 'alert.torrent.move': `成功移動 {countElement} 個種子。`, - 'alert.torrent.move.failed': `移動 {countElement} 個種子失敗。`, - 'alert.torrent.remove': `成功移除 {countElement} 個種子。`, - 'alert.torrent.remove.failed': `移除 {countElement} 個種子失敗。`, - 'alert.settings.saved': '設定儲存成功。', - 'auth.add.user': '新增使用者', - 'auth.connectionType': 'rTorrent 連線類型', - 'auth.connectionType.tcp': 'TCP', - 'auth.connectionType.socket': 'Unix Socket', - 'auth.create.account': '建立帳號', - 'auth.create.an.account': '建立一個帳號', - 'auth.create.an.account.intro': '歡迎使用 Flood!', - 'auth.current.user': '目前使用者', - 'auth.error.username.empty': '使用者名稱不可以留空!', - 'auth.log.in': '登入', - 'auth.login': '登入', - 'auth.password': '密碼', - 'auth.user.accounts': '使用者帳號', - 'auth.username': '使用者名稱', - 'auth.admin': '管理員', - 'auth.message.not.admin': '使用者不是管理員', - 'auth.rtorrentHost': 'rTorrent 主機', - 'auth.rtorrentPort': 'rTorrent 連接埠', - 'auth.rtorrentSocket': 'rTorrent Socket', - 'auth.rtorrentSocketPath': 'rTorrent Socket 路徑', - 'button.add': '新增', - 'button.cancel': '取消', - 'button.no': '否', - 'button.save': '儲存設定', - 'button.save.feed': '儲存', - 'button.test': '測試', - 'button.state.adding': '新增中...', - 'button.yes': '是', - 'button.new': '新增', - 'connectivity.modal.title': '連線問題', - 'connectivity.modal.content': '無法連線到 rTorrent。請更新連線資訊。', - 'feeds.add.automatic.download.rule': '新增下載規則', - 'feeds.add.feed': '新增訊息來源', - 'feeds.applicable.feed': '可使用的訊息來源', - 'feeds.apply.tags': '套用標籤', - 'feeds.exclude.pattern': '例外Pattern', - 'feeds.existing.feeds': '已存在的訊息來源', - 'feeds.existing.rules': '已存在的規則 ', - 'feeds.label': '標籤', - 'feeds.match.count': '{count, plural, =1 {# match} other {# matches}}', - 'feeds.match.pattern': '符合Pattern', - 'feeds.match': '符合', - 'feeds.exclude': '除外', - 'feeds.no.feeds.available': '沒有可用的訊息來源', - 'feeds.no.feeds.defined': '沒有任何訊息來源', - 'feeds.no.rules.defined': '沒有任何規則。', - 'feeds.regEx': '正則表達式', - 'feeds.select.feed': '選擇訊息來源', - 'feeds.select.interval': '內部', - 'feeds.start.on.load': '讀取後開始', - 'feeds.tabs.download.rules': '下載規則', - 'feeds.tabs.feeds': '訊息來源(Feeds)', - 'feeds.tabs.heading': '種子訊息來源(Feeds)', - 'feeds.tags': '標籤', - 'feeds.time.hr': '小時', - 'feeds.time.min': '分鐘', - 'feeds.time.day': '日', - 'feeds.torrent.destination': '下載位置', - 'feeds.url': '網址', - 'feeds.search': '搜尋關鍵字', - 'feeds.validation.invalid.regular.expression': '無效的正則表達式。', - 'feeds.validation.must.select.feed': '你必須選擇一個訊息來源。', - 'feeds.validation.must.specify.destination': '您必須指定下載位置。', - 'feeds.validation.must.specify.label': '你必須指定標籤。', - 'feeds.validation.must.specify.valid.feed.url': '你必須指定一個有效的訊息來源網址。', - 'feeds.browse.feeds': '瀏覽訊息來源', - 'filesystem.empty.directory': '空白資料夾。', - 'filesystem.error.eacces': 'Flood 沒有權限去讀取資料夾的內容。', - 'filesystem.error.enoent': '路徑不存在,系統會自動建立。', - 'filesystem.fetching': '抓取資料夾結構中...', - 'filter.all': '全部', - 'filter.status.title': '篩選狀態', - 'filter.status.downloading': '下載中', - 'filter.status.completed': '已完成', - 'filter.status.active': '活躍的', - 'filter.status.inactive': '不活躍的', - 'filter.status.error': '錯誤', - 'filter.status.stopped': '已停止', - 'filter.status.checking': '檢查中', - 'filter.tracker.title': '篩選 Tracker', - 'filter.tag.title': '篩選 Tag', - 'filter.untagged': '未標籤', - 'general.ago': '前', - 'general.at': '於', - 'general.to': '給', - 'general.of': '的', - 'general.clipboard.copy': '複製', - 'general.clipboard.copied': '已複製', - 'mediainfo.execError': '執行 MediaInfo 發生錯誤,請確認系統中有安裝 mediainfo 且該執行檔位於 PATH 變數中。', - 'mediainfo.fetching': '抓取中...', - 'mediainfo.heading': 'Mediainfo輸出', - 'notification.torrent.finished.heading': '下載完成', - 'notification.torrent.finished.body': '{name}', - 'notification.torrent.errored.heading': '錯誤回報', - 'notification.torrent.errored.body': '{name}', - 'notification.clear.all': '全部清除', - 'notification.showing': '檢視', - 'priority.dont.download': '不要下載', - 'priority.high': '高優先權', - 'priority.low': '低優先權', - 'priority.normal': '中優先權', - 'settings.bandwidth.slots.download.divider.label': '下載數間隔', - 'settings.bandwidth.slots.download.global.label': '最大同時下載數', - 'settings.bandwidth.slots.download.label': '每個 Torrent 最大下載數', - 'settings.bandwidth.slots.heading': '傳輸個數限制', - 'settings.bandwidth.slots.upload.divider.label': '上傳數間隔', - 'settings.bandwidth.slots.upload.global.label': '最大同時上傳數', - 'settings.bandwidth.slots.upload.label': '每個 Torrent 最大上傳數', - 'settings.bandwidth.transferrate.dropdown.preset.download.label': '下拉選單可選擇下載速度', - 'settings.bandwidth.transferrate.dropdown.preset.upload.label': '下拉選單可選擇上傳速度', - 'settings.bandwidth.transferrate.global.throttle.download': '總下載速度限制', - 'settings.bandwidth.transferrate.global.throttle.upload': '總上傳速度限制', - 'settings.bandwidth.transferrate.heading': '傳輸速度限制', - 'settings.connectivity.dht.label': '啟用 DHT', - 'settings.connectivity.dht.port.label': 'DHT 連接埠', - 'settings.connectivity.dpd.heading': '分散式節點發現', - 'settings.connectivity.incoming.heading': '連入連線', - 'settings.connectivity.ip.hostname.label': '回報IP/主機名稱', - 'settings.connectivity.max.http.connections': '最大 HTTP 連線', - 'settings.connectivity.peer.exchange.label': '啟用節點交換', - 'settings.connectivity.peers.desired.label': '需要節點數', - 'settings.connectivity.peers.heading': '節點', - 'settings.connectivity.peers.max.label': '最大節點數', - 'settings.connectivity.peers.min.label': '最小節點數', - 'settings.connectivity.peers.seeding.max.label': '最大作種節點數', - 'settings.connectivity.peers.seeding.min.label': '最小作種節點數', - 'settings.connectivity.port.open.label': '開放連接埠', - 'settings.connectivity.port.randomize.label': '隨機連接埠', - 'settings.connectivity.port.range.label': '連接埠範圍', - 'settings.resources.disk.check.hash.label': '完成時驗證雜湊', - 'settings.resources.disk.download.location.label': '預設下載資料夾', - 'settings.resources.disk.heading': '磁碟', - 'settings.resources.max.open.files': '最大開啟檔案數', - 'settings.resources.memory.heading': '記憶體', - 'settings.resources.memory.max.label': '最大記憶體使用量', - 'settings.tabs.bandwidth': '頻寬', - 'settings.tabs.connectivity': '連線', - 'settings.tabs.heading': '設定', - 'settings.tabs.resources': '資源', - 'settings.tabs.authentication': '驗證', - 'settings.tabs.userinterface': '使用者介面', - 'settings.tabs.diskusage': '磁碟使用量', - 'settings.tabs.about': '關於', - 'settings.ui.locale': '語系', - 'settings.ui.language': '語言', - 'settings.ui.torrent.list': '種子列表顯示模式', - 'settings.ui.torrent.size': '種子大小', - 'settings.ui.torrent.size.expanded': '展開模式', - 'settings.ui.torrent.size.condensed': '壓縮模式', - 'settings.ui.torrent.details.enabled': '啟用', - 'settings.ui.torrent.details.tags.placement': '在展開模式中,把標籤放在列表的最後一項會比較好。', - 'settings.ui.displayed.details': '種子詳細資訊欄位', - 'settings.diskusage.show': '顯示', - 'settings.diskusage.mount.points': '掛載節點磁碟空間使用量', - 'settings.about.flood': '關於Flood', - 'sidebar.button.feeds': '訊息來源', - 'sidebar.button.notifications': '通知', - 'sidebar.button.settings': '設定', - 'sidebar.button.speedlimits': '速度限制', - 'sidebar.button.log.out': '登出', - 'sidebar.search.placeholder': '搜尋種子', - 'sidebar.transferdata.downloaded': '已下載', - 'sidebar.transferdata.uploaded': '已上傳', - 'speed.unlimited': '無限制', - 'unit.size.byte': 'B', - 'unit.size.kilobyte': 'KB', - 'unit.size.megabyte': 'MB', - 'unit.size.gigabyte': 'GB', - 'unit.size.terabyte': 'TB', - 'unit.speed': '{baseUnit}/s', - 'unit.time.year': '年', - 'unit.time.week': '週', - 'unit.time.day': '天', - 'unit.time.hour': '時', - 'unit.time.minute': '分', - 'unit.time.second': '秒', - 'unit.time.infinity': '∞', - 'torrents.add.button.add': '新增種子', - 'torrents.add.destination.label': '下載位置', - 'torrents.add.destination.placeholder': '下載位置', - 'torrents.add.heading': '新增種子', - 'torrents.add.start.label': '開始下載', - 'torrents.add.tab.file.browse': '或點擊瀏覽', - 'torrents.add.tab.file.drop': '拖曳檔案到這個視窗', - 'torrents.add.tab.file.title': '從檔案', - 'torrents.add.tab.url.input.placeholder': '種子網址或磁力連結', - 'torrents.add.tab.url.title': '從網址', - 'torrents.add.torrents.label': '種子', - 'torrents.add.tags': '標籤', - 'torrents.destination.base_path': '當作基本路徑', - 'torrents.details.actions.pause': '暫停', - 'torrents.details.actions.start': '開始', - 'torrents.details.actions.stop': '停止', - 'torrents.details.details': '詳細資訊', - 'torrents.details.files': '檔案', - 'torrents.details.files.loading': '讀取檔案詳細資訊...', - 'torrents.details.files.download.file': `下載檔案`, - 'torrents.details.general.comment': '評論', - 'torrents.details.general.connected': '已連線到 {total} 中的 {connected}', - 'torrents.details.general.date.added': '新增日期', - 'torrents.details.general.date.created': '建立日期', - 'torrents.details.general.downloaded': '已下載', - 'torrents.details.general.free.disk.space': '可用磁碟空間', - 'torrents.details.general.hash': '雜湊值', - 'torrents.details.general.heading.general': '通用', - 'torrents.details.general.heading.torrent': '種子', - 'torrents.details.general.heading.tracker': 'Tracker', - 'torrents.details.general.heading.transfer': '傳輸', - 'torrents.details.general.location': '位置', - 'torrents.details.general.none': '無', - 'torrents.details.general.peers': '節點', - 'torrents.details.general.scheduler.ignored': '忽略', - 'torrents.details.general.scheduler.obeyed': '直接下載', - 'torrents.details.general.scheduler': '排程', - 'torrents.details.general.seeds': '節點使用者', - 'torrents.details.general.size': '大小', - 'torrents.details.general.tags': '標籤', - 'torrents.details.general.tracker.message': 'Tracker訊息', - 'torrents.details.general.type.private': '私有', - 'torrents.details.general.type.public': '公開', - 'torrents.details.general.type': '類型', - 'torrents.details.mediainfo': 'Mediainfo', - 'torrents.details.peers.no.data': '這個種子沒有任何節點資訊。', - 'torrents.details.peers': '節點', - 'torrents.details.selected.files': `已選擇 {countElement} 個檔案`, - 'torrents.details.selected.files.set.priority': '設定優先權', - 'torrents.details.trackers.no.data': '這個種子沒有任何 tracker 資訊。', - 'torrents.details.trackers.type': '類型', - 'torrents.details.trackers': 'Trackers', - 'torrents.list.clear.filters': '清除篩選條件', - 'torrents.list.context.check.hash': '檢查雜湊', - 'torrents.list.context.details': '種子詳細資訊', - 'torrents.list.context.move': '設定種子位置', - 'torrents.list.context.pause': '暫停', - 'torrents.list.context.priority': '優先權', - 'torrents.list.context.remove': '移除', - 'torrents.list.context.set.tags': '設定標籤', - 'torrents.list.context.start': '開始', - 'torrents.list.context.stop': '停止', - 'torrents.list.no.torrents': '沒有任何種子可以顯示。', - 'torrents.list.drop': '將檔案拖曳到這裡來新增到 rTorrent。', - 'torrents.list.cannot.connect': '無法連線到 rTorrent。', - 'torrent.list.peers': '{total} 中的 {connected}', - 'torrent.list.peers.of': '中的', - 'torrents.move.button.set.location': '設定下載位置', - 'torrents.move.button.state.setting': '設定中...', - 'torrents.move.data.label': '移動資料', - 'torrents.move.check_hash.label': '檢查雜湊', - 'torrents.move.heading': '設定下載位置', - 'torrents.properties.date.added': '新增日期', - 'torrents.properties.base.path': '下載位置', - 'torrents.properties.comment': '評論', - 'torrents.properties.creation.date': '建立日期', - 'torrents.properties.download.speed': '下載速度', - 'torrents.properties.download.total': '已下載', - 'torrents.properties.eta': '剩餘時間', - 'torrents.properties.free.disk.space': '可用磁碟空間', - 'torrents.properties.hash': '雜湊', - 'torrents.properties.ignore.schedule': '忽略排程', - 'torrents.properties.is.private': '私有', - 'torrents.properties.name': '任務名稱', - 'torrents.properties.percentage': '完成比例', - 'torrents.properties.ratio': '分享率', - 'torrents.properties.size': '檔案大小', - 'torrents.properties.tags': '標籤', - 'torrents.properties.tracker.message': 'Tracker 訊息', - 'torrents.properties.upload.speed': '上傳速度', - 'torrents.properties.upload.total': '已上傳', - 'torrents.remove.are.you.sure': `你確定要移除這些種子嗎?`, - 'torrents.remove.delete.data': '刪除已下載檔案', - 'torrents.remove.error.no.torrents.selected': '你沒有選擇任何種子。', - 'torrents.remove': '移除種子', - 'torrents.set.tags.button.set': '設定標籤', - 'torrents.set.tags.heading': '設定標籤', - 'torrents.set.tags.enter.tags': '輸入標籤', - 'torrents.sort.title': '排序方式', - 'connection-interruption.heading': '無法連線到 rTorrent', - 'connection-interruption.verify-settings-prompt': '檢查連線設定。', - 'connection-interruption.verification-error': '無法建立連線。', - 'connection-interruption.verification-success': '連線成功', - 'status.diskusage.title': '磁碟空間使用量', - 'locale.language.auto': '自動', -}; diff --git a/client/src/javascript/i18n/translations/zh-Hant.json b/client/src/javascript/i18n/translations/zh-Hant.json new file mode 100644 index 000000000..56573c576 --- /dev/null +++ b/client/src/javascript/i18n/translations/zh-Hant.json @@ -0,0 +1,295 @@ +{ + "actionbar.button.start.torrent": "開始下載", + "actionbar.button.stop.torrent": "停止下載", + "actionbar.button.add.torrent": "新增種子", + "actionbar.button.remove.torrent": "移除種子", + "alert.torrent.add": "成功新增 {countElement} 個種子。", + "alert.torrent.add.failed": "新增 {countElement} 個種子失敗。", + "alert.torrent.move": "成功移動 {countElement} 個種子。", + "alert.torrent.move.failed": "移動 {countElement} 個種子失敗。", + "alert.torrent.remove": "成功移除 {countElement} 個種子。", + "alert.torrent.remove.failed": "移除 {countElement} 個種子失敗。", + "alert.settings.saved": "設定儲存成功。", + "auth.add.user": "新增使用者", + "auth.connectionType": "rTorrent 連線類型", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "建立帳號", + "auth.create.an.account": "建立一個帳號", + "auth.create.an.account.intro": "歡迎使用 Flood!", + "auth.current.user": "目前使用者", + "auth.error.username.empty": "使用者名稱不可以留空!", + "auth.log.in": "登入", + "auth.login": "登入", + "auth.password": "密碼", + "auth.user.accounts": "使用者帳號", + "auth.username": "使用者名稱", + "auth.admin": "管理員", + "auth.message.not.admin": "使用者不是管理員", + "auth.rtorrentHost": "rTorrent 主機", + "auth.rtorrentPort": "rTorrent 連接埠", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket 路徑", + "button.add": "新增", + "button.cancel": "取消", + "button.no": "否", + "button.save": "儲存設定", + "button.save.feed": "儲存", + "button.test": "測試", + "button.state.adding": "新增中...", + "button.yes": "是", + "button.new": "新增", + "connectivity.modal.title": "連線問題", + "connectivity.modal.content": "無法連線到 rTorrent。請更新連線資訊。", + "feeds.add.automatic.download.rule": "新增下載規則", + "feeds.add.feed": "新增訊息來源", + "feeds.applicable.feed": "可使用的訊息來源", + "feeds.apply.tags": "套用標籤", + "feeds.exclude.pattern": "例外Pattern", + "feeds.existing.feeds": "已存在的訊息來源", + "feeds.existing.rules": "已存在的規則 ", + "feeds.label": "標籤", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "符合Pattern", + "feeds.match": "符合", + "feeds.exclude": "除外", + "feeds.no.feeds.available": "沒有可用的訊息來源", + "feeds.no.feeds.defined": "沒有任何訊息來源", + "feeds.no.rules.defined": "沒有任何規則。", + "feeds.regEx": "正則表達式", + "feeds.select.feed": "選擇訊息來源", + "feeds.select.interval": "內部", + "feeds.start.on.load": "讀取後開始", + "feeds.tabs.download.rules": "下載規則", + "feeds.tabs.feeds": "訊息來源(Feeds)", + "feeds.tabs.heading": "種子訊息來源(Feeds)", + "feeds.tags": "標籤", + "feeds.time.hr": "小時", + "feeds.time.min": "分鐘", + "feeds.time.day": "日", + "feeds.torrent.destination": "下載位置", + "feeds.url": "網址", + "feeds.search": "搜尋關鍵字", + "feeds.validation.invalid.regular.expression": "無效的正則表達式。", + "feeds.validation.must.select.feed": "你必須選擇一個訊息來源。", + "feeds.validation.must.specify.destination": "您必須指定下載位置。", + "feeds.validation.must.specify.label": "你必須指定標籤。", + "feeds.validation.must.specify.valid.feed.url": "你必須指定一個有效的訊息來源網址。", + "feeds.browse.feeds": "瀏覽訊息來源", + "filesystem.empty.directory": "空白資料夾。", + "filesystem.error.eacces": "Flood 沒有權限去讀取資料夾的內容。", + "filesystem.error.enoent": "路徑不存在,系統會自動建立。", + "filesystem.fetching": "抓取資料夾結構中...", + "filter.all": "全部", + "filter.status.title": "篩選狀態", + "filter.status.downloading": "下載中", + "filter.status.completed": "已完成", + "filter.status.active": "活躍的", + "filter.status.inactive": "不活躍的", + "filter.status.error": "錯誤", + "filter.status.stopped": "已停止", + "filter.status.checking": "檢查中", + "filter.tracker.title": "篩選 Tracker", + "filter.tag.title": "篩選 Tag", + "filter.untagged": "未標籤", + "general.ago": "前", + "general.at": "於", + "general.to": "給", + "general.of": "的", + "general.clipboard.copy": "複製", + "general.clipboard.copied": "已複製", + "mediainfo.execError": "執行 MediaInfo 發生錯誤,請確認系統中有安裝 mediainfo 且該執行檔位於 PATH 變數中。", + "mediainfo.fetching": "抓取中...", + "mediainfo.heading": "Mediainfo輸出", + "notification.torrent.finished.heading": "下載完成", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "錯誤回報", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "全部清除", + "notification.showing": "檢視", + "priority.dont.download": "不要下載", + "priority.high": "高優先權", + "priority.low": "低優先權", + "priority.normal": "中優先權", + "settings.bandwidth.slots.download.divider.label": "下載數間隔", + "settings.bandwidth.slots.download.global.label": "最大同時下載數", + "settings.bandwidth.slots.download.label": "每個 Torrent 最大下載數", + "settings.bandwidth.slots.heading": "傳輸個數限制", + "settings.bandwidth.slots.upload.divider.label": "上傳數間隔", + "settings.bandwidth.slots.upload.global.label": "最大同時上傳數", + "settings.bandwidth.slots.upload.label": "每個 Torrent 最大上傳數", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "下拉選單可選擇下載速度", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "下拉選單可選擇上傳速度", + "settings.bandwidth.transferrate.global.throttle.download": "總下載速度限制", + "settings.bandwidth.transferrate.global.throttle.upload": "總上傳速度限制", + "settings.bandwidth.transferrate.heading": "傳輸速度限制", + "settings.connectivity.dht.label": "啟用 DHT", + "settings.connectivity.dht.port.label": "DHT 連接埠", + "settings.connectivity.dpd.heading": "分散式節點發現", + "settings.connectivity.incoming.heading": "連入連線", + "settings.connectivity.ip.hostname.label": "回報IP/主機名稱", + "settings.connectivity.max.http.connections": "最大 HTTP 連線", + "settings.connectivity.peer.exchange.label": "啟用節點交換", + "settings.connectivity.peers.desired.label": "需要節點數", + "settings.connectivity.peers.heading": "節點", + "settings.connectivity.peers.max.label": "最大節點數", + "settings.connectivity.peers.min.label": "最小節點數", + "settings.connectivity.peers.seeding.max.label": "最大作種節點數", + "settings.connectivity.peers.seeding.min.label": "最小作種節點數", + "settings.connectivity.port.open.label": "開放連接埠", + "settings.connectivity.port.randomize.label": "隨機連接埠", + "settings.connectivity.port.range.label": "連接埠範圍", + "settings.resources.disk.check.hash.label": "完成時驗證雜湊", + "settings.resources.disk.download.location.label": "預設下載資料夾", + "settings.resources.disk.heading": "磁碟", + "settings.resources.max.open.files": "最大開啟檔案數", + "settings.resources.memory.heading": "記憶體", + "settings.resources.memory.max.label": "最大記憶體使用量", + "settings.tabs.bandwidth": "頻寬", + "settings.tabs.connectivity": "連線", + "settings.tabs.heading": "設定", + "settings.tabs.resources": "資源", + "settings.tabs.authentication": "驗證", + "settings.tabs.userinterface": "使用者介面", + "settings.tabs.diskusage": "磁碟使用量", + "settings.tabs.about": "關於", + "settings.ui.locale": "語系", + "settings.ui.language": "語言", + "settings.ui.torrent.list": "種子列表顯示模式", + "settings.ui.torrent.size": "種子大小", + "settings.ui.torrent.size.expanded": "展開模式", + "settings.ui.torrent.size.condensed": "壓縮模式", + "settings.ui.torrent.details.enabled": "啟用", + "settings.ui.torrent.details.tags.placement": "在展開模式中,把標籤放在列表的最後一項會比較好。", + "settings.ui.displayed.details": "種子詳細資訊欄位", + "settings.diskusage.show": "顯示", + "settings.diskusage.mount.points": "掛載節點磁碟空間使用量", + "settings.about.flood": "關於Flood", + "sidebar.button.feeds": "訊息來源", + "sidebar.button.notifications": "通知", + "sidebar.button.settings": "設定", + "sidebar.button.speedlimits": "速度限制", + "sidebar.button.log.out": "登出", + "sidebar.search.placeholder": "搜尋種子", + "sidebar.transferdata.downloaded": "已下載", + "sidebar.transferdata.uploaded": "已上傳", + "speed.unlimited": "無限制", + "unit.size.byte": "B", + "unit.size.kilobyte": "KB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "年", + "unit.time.week": "週", + "unit.time.day": "天", + "unit.time.hour": "時", + "unit.time.minute": "分", + "unit.time.second": "秒", + "unit.time.infinity": "∞", + "torrents.add.button.add": "新增種子", + "torrents.add.destination.label": "下載位置", + "torrents.add.destination.placeholder": "下載位置", + "torrents.add.heading": "新增種子", + "torrents.add.start.label": "開始下載", + "torrents.add.tab.file.browse": "或點擊瀏覽", + "torrents.add.tab.file.drop": "拖曳檔案到這個視窗", + "torrents.add.tab.file.title": "從檔案", + "torrents.add.tab.url.input.placeholder": "種子網址或磁力連結", + "torrents.add.tab.url.title": "從網址", + "torrents.add.torrents.label": "種子", + "torrents.add.tags": "標籤", + "torrents.destination.base_path": "當作基本路徑", + "torrents.details.actions.pause": "暫停", + "torrents.details.actions.start": "開始", + "torrents.details.actions.stop": "停止", + "torrents.details.details": "詳細資訊", + "torrents.details.files": "檔案", + "torrents.details.files.loading": "讀取檔案詳細資訊...", + "torrents.details.files.download.file": "下載檔案", + "torrents.details.general.comment": "評論", + "torrents.details.general.connected": "已連線到 {total} 中的 {connected}", + "torrents.details.general.date.added": "新增日期", + "torrents.details.general.date.created": "建立日期", + "torrents.details.general.downloaded": "已下載", + "torrents.details.general.free.disk.space": "可用磁碟空間", + "torrents.details.general.hash": "雜湊值", + "torrents.details.general.heading.general": "通用", + "torrents.details.general.heading.torrent": "種子", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "傳輸", + "torrents.details.general.location": "位置", + "torrents.details.general.none": "無", + "torrents.details.general.peers": "節點", + "torrents.details.general.scheduler.ignored": "忽略", + "torrents.details.general.scheduler.obeyed": "直接下載", + "torrents.details.general.scheduler": "排程", + "torrents.details.general.seeds": "節點使用者", + "torrents.details.general.size": "大小", + "torrents.details.general.tags": "標籤", + "torrents.details.general.tracker.message": "Tracker訊息", + "torrents.details.general.type.private": "私有", + "torrents.details.general.type.public": "公開", + "torrents.details.general.type": "類型", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "這個種子沒有任何節點資訊。", + "torrents.details.peers": "節點", + "torrents.details.selected.files": "已選擇 {countElement} 個檔案", + "torrents.details.selected.files.set.priority": "設定優先權", + "torrents.details.trackers.no.data": "這個種子沒有任何 tracker 資訊。", + "torrents.details.trackers.type": "類型", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "清除篩選條件", + "torrents.list.context.check.hash": "檢查雜湊", + "torrents.list.context.details": "種子詳細資訊", + "torrents.list.context.move": "設定種子位置", + "torrents.list.context.pause": "暫停", + "torrents.list.context.priority": "優先權", + "torrents.list.context.remove": "移除", + "torrents.list.context.set.tags": "設定標籤", + "torrents.list.context.start": "開始", + "torrents.list.context.stop": "停止", + "torrents.list.no.torrents": "沒有任何種子可以顯示。", + "torrents.list.drop": "將檔案拖曳到這裡來新增到 rTorrent。", + "torrents.list.cannot.connect": "無法連線到 rTorrent。", + "torrent.list.peers": "{total} 中的 {connected}", + "torrent.list.peers.of": "中的", + "torrents.move.button.set.location": "設定下載位置", + "torrents.move.button.state.setting": "設定中...", + "torrents.move.data.label": "移動資料", + "torrents.move.check_hash.label": "檢查雜湊", + "torrents.move.heading": "設定下載位置", + "torrents.properties.date.added": "新增日期", + "torrents.properties.base.path": "下載位置", + "torrents.properties.comment": "評論", + "torrents.properties.creation.date": "建立日期", + "torrents.properties.download.speed": "下載速度", + "torrents.properties.download.total": "已下載", + "torrents.properties.eta": "剩餘時間", + "torrents.properties.free.disk.space": "可用磁碟空間", + "torrents.properties.hash": "雜湊", + "torrents.properties.ignore.schedule": "忽略排程", + "torrents.properties.is.private": "私有", + "torrents.properties.name": "任務名稱", + "torrents.properties.percentage": "完成比例", + "torrents.properties.ratio": "分享率", + "torrents.properties.size": "檔案大小", + "torrents.properties.tags": "標籤", + "torrents.properties.tracker.message": "Tracker 訊息", + "torrents.properties.upload.speed": "上傳速度", + "torrents.properties.upload.total": "已上傳", + "torrents.remove.are.you.sure": "你確定要移除這些種子嗎?", + "torrents.remove.delete.data": "刪除已下載檔案", + "torrents.remove.error.no.torrents.selected": "你沒有選擇任何種子。", + "torrents.remove": "移除種子", + "torrents.set.tags.button.set": "設定標籤", + "torrents.set.tags.heading": "設定標籤", + "torrents.set.tags.enter.tags": "輸入標籤", + "torrents.sort.title": "排序方式", + "connection-interruption.heading": "無法連線到 rTorrent", + "connection-interruption.verify-settings-prompt": "檢查連線設定。", + "connection-interruption.verification-error": "無法建立連線。", + "connection-interruption.verification-success": "連線成功", + "status.diskusage.title": "磁碟空間使用量", + "locale.language.auto": "自動" +} diff --git a/crowdin.yml b/crowdin.yml index c7f1df728..dc98e3a29 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,5 +1,5 @@ commit_message: 'i18n: new translations for %language%' append_commit_message: false files: - - source: /client/src/javascript/i18n/strings.js - translation: /client/src/javascript/i18n/translations/%osx_locale%.js + - source: /client/src/javascript/i18n/strings.json + translation: /client/src/javascript/i18n/translations/%osx_locale%.json diff --git a/tsconfig.json b/tsconfig.json index 3d0d84121..ded6e1d98 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,7 @@ "noEmit": true, "strict": true, "isolatedModules": true, + "resolveJsonModule": true, "esModuleInterop": true, "baseUrl": "./", "paths": { From ca0d457b53ce12d396acd320b282cd45b76f7049 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 12 Aug 2020 09:08:23 -0500 Subject: [PATCH 041/651] i18n: new translations and placeholders (#11) * i18n: new translations for Romanian * i18n: new translations for Korean * i18n: new translations for Chinese Traditional * i18n: new translations for Chinese Simplified * i18n: new translations for Ukrainian * i18n: new translations for Turkish * i18n: new translations for Swedish * i18n: new translations for Serbian (Cyrillic) * i18n: new translations for Russian * i18n: new translations for Portuguese * i18n: new translations for Polish * i18n: new translations for Norwegian * i18n: new translations for Dutch * i18n: new translations for Japanese * i18n: new translations for French * i18n: new translations for Italian * i18n: new translations for Hungarian * i18n: new translations for Hebrew * i18n: new translations for Finnish * i18n: new translations for Greek * i18n: new translations for German * i18n: new translations for Danish * i18n: new translations for Czech * i18n: new translations for Catalan * i18n: new translations for Arabic * i18n: new translations for Afrikaans * i18n: new translations for Spanish * i18n: new translations for Vietnamese --- .../src/javascript/i18n/translations/af.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/ar.json | 16 +- .../src/javascript/i18n/translations/ca.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/cs.json | 16 +- .../src/javascript/i18n/translations/da.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/de.json | 16 +- .../src/javascript/i18n/translations/el.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/es.json | 16 +- .../src/javascript/i18n/translations/fi.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/fr.json | 16 +- .../src/javascript/i18n/translations/he.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/hu.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/it.json | 16 +- .../src/javascript/i18n/translations/ja.json | 16 +- .../src/javascript/i18n/translations/ko.json | 16 +- .../src/javascript/i18n/translations/nl.json | 1 + .../src/javascript/i18n/translations/no.json | 16 +- .../src/javascript/i18n/translations/pl.json | 16 +- .../src/javascript/i18n/translations/pt.json | 16 +- .../src/javascript/i18n/translations/ro.json | 16 +- .../src/javascript/i18n/translations/ru.json | 16 +- .../src/javascript/i18n/translations/sr.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/sv.json | 16 +- .../src/javascript/i18n/translations/tr.json | 309 ++++++++++++++++++ .../src/javascript/i18n/translations/uk.json | 16 +- .../src/javascript/i18n/translations/vi.json | 309 ++++++++++++++++++ .../javascript/i18n/translations/zh-Hans.json | 16 +- .../javascript/i18n/translations/zh-Hant.json | 16 +- 28 files changed, 3346 insertions(+), 17 deletions(-) create mode 100644 client/src/javascript/i18n/translations/af.json create mode 100644 client/src/javascript/i18n/translations/ca.json create mode 100644 client/src/javascript/i18n/translations/da.json create mode 100644 client/src/javascript/i18n/translations/el.json create mode 100644 client/src/javascript/i18n/translations/fi.json create mode 100644 client/src/javascript/i18n/translations/he.json create mode 100644 client/src/javascript/i18n/translations/hu.json create mode 100644 client/src/javascript/i18n/translations/sr.json create mode 100644 client/src/javascript/i18n/translations/tr.json create mode 100644 client/src/javascript/i18n/translations/vi.json diff --git a/client/src/javascript/i18n/translations/af.json b/client/src/javascript/i18n/translations/af.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/af.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/ar.json b/client/src/javascript/i18n/translations/ar.json index 0c0165976..f18469d8e 100644 --- a/client/src/javascript/i18n/translations/ar.json +++ b/client/src/javascript/i18n/translations/ar.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "اسم المستخدم لا يمكن أن يكون فارغاً.", "auth.log.in": "تسجيل الدخول", "auth.login": "تسجيل الدخول", + "auth.login.intro": "Log in to your account.", "auth.password": "كلمة المرور", "auth.user.accounts": "حسابات المستخدم", "auth.username": "اسم المستخدم", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "يجب عليك تحديد الوجهة.", "feeds.validation.must.specify.label": "يجب عليك تحديد التسمية.", "feeds.validation.must.specify.valid.feed.url": "يجب عليك تحديد رابط تغذية صالح.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "تصفح الخلاصات", "filesystem.empty.directory": "مجلد فارغ.", "filesystem.error.eacces": "الفيضان ليس لديه الصلاحية لقراءة هذا الدليل.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "البحث عن التورنت", "sidebar.transferdata.downloaded": "تم التحميل", "sidebar.transferdata.uploaded": "تم الرفع", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "غير محدود", "unit.size.byte": "ب", "unit.size.kilobyte": "كيلوبايت", @@ -244,6 +248,7 @@ "torrents.list.context.details": "تفاصيل التورنت", "torrents.list.context.move": "تعيين موقع التورنت", "torrents.list.context.pause": "إيقاف", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "الأولوية", "torrents.list.context.remove": "إزالة", "torrents.list.context.set.tags": "تعيين العلامات", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "رسالة تتبع", "torrents.properties.upload.speed": "سرعة التحميل", "torrents.properties.upload.total": "تم الرفع", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "هل أنت متأكد من أنك تريد إزالة {count, plural, =1 {# تورنت} other {# تورنت}}?", "torrents.remove.delete.data": "حذف البيانات", "torrents.remove.error.no.torrents.selected": "لم تقم باختيار أي تورنات.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "تعذر التحقق من الاتصال.", "connection-interruption.verification-success": "تم الاتصال بنجاح", "status.diskusage.title": "استخدام القرص", - "locale.language.auto": "تلقائي" + "locale.language.auto": "تلقائي", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/ca.json b/client/src/javascript/i18n/translations/ca.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/ca.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/cs.json b/client/src/javascript/i18n/translations/cs.json index e9177e09b..e40ef8a15 100644 --- a/client/src/javascript/i18n/translations/cs.json +++ b/client/src/javascript/i18n/translations/cs.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Uživatelské jméno nemůže být prázdné.", "auth.log.in": "Přihlásit se", "auth.login": "Přihlásit se", + "auth.login.intro": "Log in to your account.", "auth.password": "Heslo", "auth.user.accounts": "Uživatelské účty", "auth.username": "Uživatelské jméno", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Musíte zadat destinaci.", "feeds.validation.must.specify.label": "Musíte zadat popisek.", "feeds.validation.must.specify.valid.feed.url": "Musíte zadat platnou URL kanálu.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Procházet kanály", "filesystem.empty.directory": "Prázdný adresář.", "filesystem.error.eacces": "Záplava nemá oprávnění ke čtení tohoto adresáře.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Hledat torrenty", "sidebar.transferdata.downloaded": "Staženo", "sidebar.transferdata.uploaded": "Nahráno", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Bez omezení", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Podrobnosti Torrentu", "torrents.list.context.move": "Nastavit umístění Torrentu", "torrents.list.context.pause": "Pozastavit", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Priorita", "torrents.list.context.remove": "Odebrat", "torrents.list.context.set.tags": "Nastavit štítky", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Sledovací zpráva", "torrents.properties.upload.speed": "Rychlost nahrávání", "torrents.properties.upload.total": "Nahráno", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Jste si jisti, že chcete odstranit {count, plural, =1 {# torrent} other {# torrentů}}?", "torrents.remove.delete.data": "Odstranit data", "torrents.remove.error.no.torrents.selected": "Nevybrali jste žádné torrenty.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Nelze ověřit spojení.", "connection-interruption.verification-success": "Připojení bylo úspěšné", "status.diskusage.title": "Využití disku", - "locale.language.auto": "Automaticky" + "locale.language.auto": "Automaticky", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/da.json b/client/src/javascript/i18n/translations/da.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/da.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/de.json b/client/src/javascript/i18n/translations/de.json index f7bc21082..a7ebb40b1 100644 --- a/client/src/javascript/i18n/translations/de.json +++ b/client/src/javascript/i18n/translations/de.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Benutzername darf nicht leer sein.", "auth.log.in": "Anmelden", "auth.login": "Anmelden", + "auth.login.intro": "Log in to your account.", "auth.password": "Passwort", "auth.user.accounts": "Benutzerkonten", "auth.username": "Benutzername", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Sie müssen ein Ziel angeben.", "feeds.validation.must.specify.label": "Sie müssen ein Label angeben.", "feeds.validation.must.specify.valid.feed.url": "Sie müssen eine gültige Feed-URL angeben.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Feeds durchsuchen", "filesystem.empty.directory": "Leeres Verzeichnis.", "filesystem.error.eacces": "Flood hat keine Berechtigung, dieses Verzeichnis zu lesen.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Suche Torrents", "sidebar.transferdata.downloaded": "Heruntergeladen", "sidebar.transferdata.uploaded": "Hochgeladen", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Unbegrenzt", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Torrent-Details", "torrents.list.context.move": "Torrent-Standort festlegen", "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Priorität", "torrents.list.context.remove": "Entfernen", "torrents.list.context.set.tags": "Tags setzen", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Tracker-Nachricht", "torrents.properties.upload.speed": "Upload-Geschwindigkeit", "torrents.properties.upload.total": "Hochgeladen", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", "torrents.remove.delete.data": "Daten löschen", "torrents.remove.error.no.torrents.selected": "Sie haben keine Torrents ausgewählt.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Verbindung konnte nicht verifiziert werden.", "connection-interruption.verification-success": "Verbindung erfolgreich", "status.diskusage.title": "Plattennutzung", - "locale.language.auto": "Automatisch" + "locale.language.auto": "Automatisch", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/el.json b/client/src/javascript/i18n/translations/el.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/el.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/es.json b/client/src/javascript/i18n/translations/es.json index 08212625d..f49514488 100644 --- a/client/src/javascript/i18n/translations/es.json +++ b/client/src/javascript/i18n/translations/es.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Nombre de usuario no puede estar en blanco.", "auth.log.in": "Iniciar Sesión", "auth.login": "Acceder", + "auth.login.intro": "Log in to your account.", "auth.password": "Contraseña", "auth.user.accounts": "Cuentas de Usuario", "auth.username": "Nombre de Usuario", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Debe seleccionar una destinación.", "feeds.validation.must.specify.label": "Debe seleccionar un rotulo", "feeds.validation.must.specify.valid.feed.url": "Debe seleccionar un URL de fuente valido.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Ver feeds", "filesystem.empty.directory": "Carpeta vacía", "filesystem.error.eacces": "Flood no tiene permisos para leer esta carpeta.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Buscar torrents", "sidebar.transferdata.downloaded": "Descargado", "sidebar.transferdata.uploaded": "Subido", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Sín Límite", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Detalles de Torrent", "torrents.list.context.move": "Configurar Carpeta de Descarga", "torrents.list.context.pause": "Pausar", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Prioridad", "torrents.list.context.remove": "Eliminar", "torrents.list.context.set.tags": "Configurar Etiquetas", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Mensaje de Tracker", "torrents.properties.upload.speed": "Velocidad de Subida", "torrents.properties.upload.total": "Cant. Subida", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "¿Seguro que quiere eliminar {count, plural, =0 {cero torrents} =1 {un torrent} other {# torrents}}?", "torrents.remove.delete.data": "Eliminar datos", "torrents.remove.error.no.torrents.selected": "No ha seleccionado un torrent.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "No se pudo verificar la conexión.", "connection-interruption.verification-success": "Conexión exitosa", "status.diskusage.title": "Uso del disco", - "locale.language.auto": "Automátic" + "locale.language.auto": "Automátic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/fi.json b/client/src/javascript/i18n/translations/fi.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/fi.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/fr.json b/client/src/javascript/i18n/translations/fr.json index 6310f6432..1c89183b8 100644 --- a/client/src/javascript/i18n/translations/fr.json +++ b/client/src/javascript/i18n/translations/fr.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Le nom d'utilisateur ne peut pas être vide.", "auth.log.in": "Connexion", "auth.login": "Identifiant", + "auth.login.intro": "Log in to your account.", "auth.password": "Mot de Passe", "auth.user.accounts": "Comptes", "auth.username": "Nom d'Utilisateur", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Vous devez définir un emplacement.", "feeds.validation.must.specify.label": "Vous devez définir un label.", "feeds.validation.must.specify.valid.feed.url": "Vous devez définir une URL de flux valide.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Parcourir les flux", "filesystem.empty.directory": "Répertoire vide.", "filesystem.error.eacces": "Flood n'a pas la permission de lire ce répertoire.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Rechercher des Torrents", "sidebar.transferdata.downloaded": "Reçu", "sidebar.transferdata.uploaded": "Envoyé", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Illimité", "unit.size.byte": "o", "unit.size.kilobyte": "ko", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Détails du torrent", "torrents.list.context.move": "Déplacer", "torrents.list.context.pause": "Mettre en pause", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Priorité", "torrents.list.context.remove": "Supprimer", "torrents.list.context.set.tags": "Définir un Tag", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Message du Tracker", "torrents.properties.upload.speed": "Vitesse d'Envoi", "torrents.properties.upload.total": "Données Envoyées", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Êtes-vous certain(e) de vouloir supprimer {count, plural, =0 {aucun torrent} =1 {un torrent} other {# torrents}} ?", "torrents.remove.delete.data": "Supprimer les données", "torrents.remove.error.no.torrents.selected": "Vous n'avez sélectionné aucun torrent.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "La connexion n'a pas pu être vérifiée.", "connection-interruption.verification-success": "Connexion réussie", "status.diskusage.title": "Utilisation du disque", - "locale.language.auto": "Automatique" + "locale.language.auto": "Automatique", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/he.json b/client/src/javascript/i18n/translations/he.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/he.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/hu.json b/client/src/javascript/i18n/translations/hu.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/hu.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/it.json b/client/src/javascript/i18n/translations/it.json index 08a4d49cd..ee75da835 100644 --- a/client/src/javascript/i18n/translations/it.json +++ b/client/src/javascript/i18n/translations/it.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Il nome utente non può essere vuoto.", "auth.log.in": "Log In", "auth.login": "Accedi", + "auth.login.intro": "Log in to your account.", "auth.password": "Password", "auth.user.accounts": "Account Utente", "auth.username": "Username", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "È necessario specificare una destinazione.", "feeds.validation.must.specify.label": "È necessario specificare un'etichetta.", "feeds.validation.must.specify.valid.feed.url": "È necessario specificare un URL feed valido.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Sfoglia i feed", "filesystem.empty.directory": "Directory vuota.", "filesystem.error.eacces": "Flood non ha il permesso di leggere questa directory.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Cerca torrent", "sidebar.transferdata.downloaded": "Scaricato", "sidebar.transferdata.uploaded": "Caricato", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Illimitato", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Dettagli Torrent", "torrents.list.context.move": "Imposta Posizione Del Torrent", "torrents.list.context.pause": "Pausa", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Priorità", "torrents.list.context.remove": "Rimuovi", "torrents.list.context.set.tags": "Imposta Etichette", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Messaggio Tracker", "torrents.properties.upload.speed": "Velocità Di Caricamento", "torrents.properties.upload.total": "Caricato", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Sei sicuro di voler rimuovere {count, plural, =1 {# torrent} other {# torrents}}?", "torrents.remove.delete.data": "Elimina dati", "torrents.remove.error.no.torrents.selected": "Non hai selezionato alcun torrent.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "La connessione non può essere verificata.", "connection-interruption.verification-success": "Connessione riuscita", "status.diskusage.title": "Uso Del Disco", - "locale.language.auto": "Automatico" + "locale.language.auto": "Automatico", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/ja.json b/client/src/javascript/i18n/translations/ja.json index fbe8b6618..89fb0b12f 100644 --- a/client/src/javascript/i18n/translations/ja.json +++ b/client/src/javascript/i18n/translations/ja.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "ユーザー名は空にできません。", "auth.log.in": "ログイン", "auth.login": "ログイン", + "auth.login.intro": "Log in to your account.", "auth.password": "パスワード", "auth.user.accounts": "ユーザーアカウント", "auth.username": "ユーザー名", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "目的地を指定する必要があります。", "feeds.validation.must.specify.label": "ラベルを指定する必要があります。", "feeds.validation.must.specify.valid.feed.url": "有効なフィードURLを指定する必要があります。", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "フィードを参照", "filesystem.empty.directory": "空のディレクトリ。", "filesystem.error.eacces": "このディレクトリを読み込む権限がありません。", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Torrent を検索", "sidebar.transferdata.downloaded": "ダウンロード済み", "sidebar.transferdata.uploaded": "アップロードしました", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "無制限です", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "トレントの詳細", "torrents.list.context.move": "トレントの場所を設定", "torrents.list.context.pause": "一時停止", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "優先度", "torrents.list.context.remove": "削除", "torrents.list.context.set.tags": "タグを設定", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "トラッカーメッセージ", "torrents.properties.upload.speed": "アップロード速度", "torrents.properties.upload.total": "アップロードしました", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "削除してもよろしいですか? {count, plural, =1 {# Torrent} other {# Torrent}}?", "torrents.remove.delete.data": "データを削除", "torrents.remove.error.no.torrents.selected": "トレントを選択していません。", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "接続を確認できませんでした。", "connection-interruption.verification-success": "接続に成功しました", "status.diskusage.title": "ディスクの使用量", - "locale.language.auto": "自動" + "locale.language.auto": "自動", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/ko.json b/client/src/javascript/i18n/translations/ko.json index b05a3d0ef..33227761c 100644 --- a/client/src/javascript/i18n/translations/ko.json +++ b/client/src/javascript/i18n/translations/ko.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "사용자 이름은 비어있을 수 없습니다.", "auth.log.in": "로그인", "auth.login": "로그인", + "auth.login.intro": "Log in to your account.", "auth.password": "비밀번호", "auth.user.accounts": "사용자 계정", "auth.username": "사용자 이름", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "저장할 경로를 지정해야 합니다.", "feeds.validation.must.specify.label": "라벨을 지정해야 합니다.", "feeds.validation.must.specify.valid.feed.url": "올바른 피드 URL을 지정해야 합니다.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Browse feeds", "filesystem.empty.directory": "비어있는 디렉토리입니다.", "filesystem.error.eacces": "Flood에 이 디렉토리를 읽을 권한이 없습니다.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "토렌트 검색", "sidebar.transferdata.downloaded": "다운로드한 크기", "sidebar.transferdata.uploaded": "업로드한 크기", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "무제한", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "토렌트 속성", "torrents.list.context.move": "토렌트 위치 지정", "torrents.list.context.pause": "일시중지", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "우선순위", "torrents.list.context.remove": "제거", "torrents.list.context.set.tags": "태그 지정", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "트래커 메시지", "torrents.properties.upload.speed": "업로드 속도", "torrents.properties.upload.total": "업로드 크기", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "정말 {count, plural, =0 {0개 토렌트를} =1 {토렌트 한 개를} other {#개 토렌트를}} 제거할까요?", "torrents.remove.delete.data": "데이터 삭제", "torrents.remove.error.no.torrents.selected": "토렌트를 선택하지 않았습니다.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "연결을 검증하지 못했습니다.", "connection-interruption.verification-success": "연결 성공", "status.diskusage.title": "Disk Usage", - "locale.language.auto": "자동" + "locale.language.auto": "자동", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/nl.json b/client/src/javascript/i18n/translations/nl.json index f1ef4e6c8..a87e20da1 100644 --- a/client/src/javascript/i18n/translations/nl.json +++ b/client/src/javascript/i18n/translations/nl.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Gebruikersnaam mag niet leeg zijn.", "auth.log.in": "Log in", "auth.login": "Aanmelden", + "auth.login.intro": "Log in to your account.", "auth.password": "Wachtwoord", "auth.user.accounts": "Accounts", "auth.username": "Gebruikersnaam", diff --git a/client/src/javascript/i18n/translations/no.json b/client/src/javascript/i18n/translations/no.json index 849e4cc7f..aae081f35 100644 --- a/client/src/javascript/i18n/translations/no.json +++ b/client/src/javascript/i18n/translations/no.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Brukernavnfeltet kan ikke være tomt.", "auth.log.in": "Logg inn", "auth.login": "Innlogging", + "auth.login.intro": "Log in to your account.", "auth.password": "Passord", "auth.user.accounts": "Bruker kontoer", "auth.username": "Brukernavn", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Du må spesifisere en destinasjon.", "feeds.validation.must.specify.label": "Du må angi en etikett.", "feeds.validation.must.specify.valid.feed.url": "Du må angi en gyldig feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Bla gjennom fôr", "filesystem.empty.directory": "Tom mappe.", "filesystem.error.eacces": "Flom har ikke tillatelse til å lese denne mappen.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Søk torrents", "sidebar.transferdata.downloaded": "Nedlastet", "sidebar.transferdata.uploaded": "Opplastet", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Ubegrenset", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Torrent detaljer", "torrents.list.context.move": "Angi torrent plassering", "torrents.list.context.pause": "pause", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Prioritet", "torrents.list.context.remove": "Fjern", "torrents.list.context.set.tags": "Angi Etiketter", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Melding om sporingsagent", "torrents.properties.upload.speed": "Opplastnings hastighet", "torrents.properties.upload.total": "Opplastet", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Er du sikker på at du vil fjerne {count, plural, =1 {# torrent} other {# torrenter}}?", "torrents.remove.delete.data": "Slett data", "torrents.remove.error.no.torrents.selected": "Du har ikke valgt noen torrenter.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Tilkobling kunne ikke verifiseres.", "connection-interruption.verification-success": "Tilkobling vellykket", "status.diskusage.title": "Bruk av diskplass", - "locale.language.auto": "Automatisk" + "locale.language.auto": "Automatisk", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/pl.json b/client/src/javascript/i18n/translations/pl.json index 99016cb18..d10083d1e 100644 --- a/client/src/javascript/i18n/translations/pl.json +++ b/client/src/javascript/i18n/translations/pl.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Nazwa użytkownika nie może być pusta.", "auth.log.in": "Zaloguj się", "auth.login": "Logowanie", + "auth.login.intro": "Log in to your account.", "auth.password": "Hasło", "auth.user.accounts": "Konta użytkowników", "auth.username": "Nazwa użytkownika", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Musisz określić miejsce docelowe.", "feeds.validation.must.specify.label": "Musisz określić etykietę.", "feeds.validation.must.specify.valid.feed.url": "Musisz podać poprawny adres URL kanału.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Przeglądaj kanały", "filesystem.empty.directory": "Pusty katalog.", "filesystem.error.eacces": "Powódź nie ma uprawnień do odczytu tego katalogu.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Szukaj torrentów", "sidebar.transferdata.downloaded": "Pobrano", "sidebar.transferdata.uploaded": "Przesłano", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Nieograniczona", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Szczegóły torrenta", "torrents.list.context.move": "Ustaw lokalizację torrenta", "torrents.list.context.pause": "Wstrzymaj", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Priorytet", "torrents.list.context.remove": "Usuń", "torrents.list.context.set.tags": "Ustaw tagi", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Wiadomość trackera", "torrents.properties.upload.speed": "Prędkość przesyłania", "torrents.properties.upload.total": "Przesłano", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Czy na pewno chcesz usunąć {count, plural, =1 {# torrenty} other {# torrentów}}?", "torrents.remove.delete.data": "Usuń dane", "torrents.remove.error.no.torrents.selected": "Nie wybrałeś żadnych torrentów.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Nie można zweryfikować połączenia.", "connection-interruption.verification-success": "Połączenie udane", "status.diskusage.title": "Użycie dysku", - "locale.language.auto": "Automatyczne" + "locale.language.auto": "Automatyczne", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/pt.json b/client/src/javascript/i18n/translations/pt.json index fb0a3e502..ab3e3a231 100644 --- a/client/src/javascript/i18n/translations/pt.json +++ b/client/src/javascript/i18n/translations/pt.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Nome de usuário não pode estar vazio.", "auth.log.in": "Iniciar sessão", "auth.login": "Conectar-se", + "auth.login.intro": "Log in to your account.", "auth.password": "Palavra-passe", "auth.user.accounts": "Contas de usuário", "auth.username": "Usuário:", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Você deve especificar um destino.", "feeds.validation.must.specify.label": "Você deve especificar uma etiqueta.", "feeds.validation.must.specify.valid.feed.url": "Você deve especificar uma URL de feed válida.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Procurar feeds", "filesystem.empty.directory": "Diretório vazio.", "filesystem.error.eacces": "O Flood não tem permissão para ler este diretório.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Procurar torrents", "sidebar.transferdata.downloaded": "Baixado", "sidebar.transferdata.uploaded": "Enviado", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Ilimitado", "unit.size.byte": "B", "unit.size.kilobyte": "KB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Detalhes do Torrent", "torrents.list.context.move": "Definir local do Torrent", "torrents.list.context.pause": "Suspender", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Prioridade", "torrents.list.context.remove": "Excluir", "torrents.list.context.set.tags": "Definir Tags", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Mensagem do Rastreador", "torrents.properties.upload.speed": "Velocidade de Upload", "torrents.properties.upload.total": "Enviado", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Você tem certeza que quer remover {count, plural, =1 {# torrent} other {# torrents}}?", "torrents.remove.delete.data": "Apagar dados", "torrents.remove.error.no.torrents.selected": "Você não selecionou nenhum torrents.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "A conexão não pôde ser verificada.", "connection-interruption.verification-success": "Conexão bem sucedida", "status.diskusage.title": "Uso do disco", - "locale.language.auto": "Automático" + "locale.language.auto": "Automático", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/ro.json b/client/src/javascript/i18n/translations/ro.json index a3963e3fe..52464cd32 100644 --- a/client/src/javascript/i18n/translations/ro.json +++ b/client/src/javascript/i18n/translations/ro.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Numele de utilizator nu poate fi gol.", "auth.log.in": "Autentificare", "auth.login": "Autentificare", + "auth.login.intro": "Log in to your account.", "auth.password": "Parolă", "auth.user.accounts": "Conturi de utilizator", "auth.username": "Nume", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Trebuie să specificați o destinație.", "feeds.validation.must.specify.label": "Trebuie să specificați o etichetă.", "feeds.validation.must.specify.valid.feed.url": "Trebuie să specificați un URL de feed valid.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Răsfoiește feed-uri", "filesystem.empty.directory": "Dosar gol.", "filesystem.error.eacces": "Inundațiile nu au permisiunea de a citi acest director.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Caută torente", "sidebar.transferdata.downloaded": "Descărcat", "sidebar.transferdata.uploaded": "Încărcat", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Nelimitat", "unit.size.byte": "p", "unit.size.kilobyte": "KO", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Detalii Torent", "torrents.list.context.move": "Setează Locația Torentului", "torrents.list.context.pause": "Întrerupeți", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Prioritate", "torrents.list.context.remove": "Elimină", "torrents.list.context.set.tags": "Setare etichete", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Mesaj de urmărire", "torrents.properties.upload.speed": "Viteza de Încărcare", "torrents.properties.upload.total": "Încărcat", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Ești sigur că vrei să ștergi {count, plural, =1 {# torrente} other {# torrente}}?", "torrents.remove.delete.data": "Ștergere date", "torrents.remove.error.no.torrents.selected": "Nu ai selectat niciun torent.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Conexiunea nu a putut fi verificată.", "connection-interruption.verification-success": "Conexiune reușită", "status.diskusage.title": "Utilizare disc", - "locale.language.auto": "Automat" + "locale.language.auto": "Automat", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/ru.json b/client/src/javascript/i18n/translations/ru.json index b9b350eb8..c8f9b847e 100644 --- a/client/src/javascript/i18n/translations/ru.json +++ b/client/src/javascript/i18n/translations/ru.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Имя пользователя не может быть пустым.", "auth.log.in": "Войти", "auth.login": "Логин", + "auth.login.intro": "Log in to your account.", "auth.password": "Пароль", "auth.user.accounts": "Учетные записи пользователей", "auth.username": "Имя пользователя", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Вы должны указать место назначения.", "feeds.validation.must.specify.label": "Необходимо указать метку.", "feeds.validation.must.specify.valid.feed.url": "Вы должны указать корректный URL канала.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Просмотр каналов", "filesystem.empty.directory": "Пустой каталог.", "filesystem.error.eacces": "Flood не имеет разрешения на чтение этого каталога.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Поиск торрентов", "sidebar.transferdata.downloaded": "Загружено", "sidebar.transferdata.uploaded": "Загружено", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Неограниченный", "unit.size.byte": "В", "unit.size.kilobyte": "кБ", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Детали торрента", "torrents.list.context.move": "Установить местоположение торрента", "torrents.list.context.pause": "Пауза", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Приоритет", "torrents.list.context.remove": "Удалить", "torrents.list.context.set.tags": "Установить теги", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Сообщение трекера", "torrents.properties.upload.speed": "Скорость отдачи", "torrents.properties.upload.total": "Загружено", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Вы уверены, что хотите удалить {count, plural, =1 {# торрент} other {# торренты}}? ?", "torrents.remove.delete.data": "Удалить данные", "torrents.remove.error.no.torrents.selected": "Вы не выбрали ни одного торрента.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Соединение не может быть проверено.", "connection-interruption.verification-success": "Успешное подключение", "status.diskusage.title": "Использование диска", - "locale.language.auto": "Автоматически" + "locale.language.auto": "Автоматически", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/sr.json b/client/src/javascript/i18n/translations/sr.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/sr.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/sv.json b/client/src/javascript/i18n/translations/sv.json index 0135d90ad..b631ec495 100644 --- a/client/src/javascript/i18n/translations/sv.json +++ b/client/src/javascript/i18n/translations/sv.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Användarnamnet får inte vara tomt.", "auth.log.in": "Logga in", "auth.login": "Inloggning", + "auth.login.intro": "Log in to your account.", "auth.password": "Lösenord", "auth.user.accounts": "Användarkonton", "auth.username": "Användarnamn", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Du måste ange en destination.", "feeds.validation.must.specify.label": "Du måste ange en etikett.", "feeds.validation.must.specify.valid.feed.url": "Du måste ange en giltig flödes-URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Bläddra bland flöden", "filesystem.empty.directory": "Tom katalog.", "filesystem.error.eacces": "Översvämningen har inte behörighet att läsa denna katalog.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Sök torrents", "sidebar.transferdata.downloaded": "Nedladdad", "sidebar.transferdata.uploaded": "Uppladdad", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Obegränsad", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Torrent Detaljer", "torrents.list.context.move": "Ange torrentplats", "torrents.list.context.pause": "Pausa", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Prioritet", "torrents.list.context.remove": "Radera", "torrents.list.context.set.tags": "Ange taggar", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Spårare Meddelande", "torrents.properties.upload.speed": "Ladda upp hastighet", "torrents.properties.upload.total": "Uppladdad", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Är du säker på att du vill ta bort {count, plural, =1 {# torrent} other {# torrents}}?", "torrents.remove.delete.data": "Ta bort data", "torrents.remove.error.no.torrents.selected": "Du har inte valt några torrenter.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Anslutningen kunde inte verifieras.", "connection-interruption.verification-success": "Anslutningen lyckades", "status.diskusage.title": "Diskanvändning", - "locale.language.auto": "Automatisk" + "locale.language.auto": "Automatisk", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/tr.json b/client/src/javascript/i18n/translations/tr.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/tr.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/uk.json b/client/src/javascript/i18n/translations/uk.json index 6d4697f96..c0dc42798 100644 --- a/client/src/javascript/i18n/translations/uk.json +++ b/client/src/javascript/i18n/translations/uk.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "Ім'я користувача не може бути порожнім.", "auth.log.in": "Увійти", "auth.login": "Логін", + "auth.login.intro": "Log in to your account.", "auth.password": "Пароль", "auth.user.accounts": "Облікові записи користувачів", "auth.username": "Ім'я користувача", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "Ви повинні вказати місце призначення.", "feeds.validation.must.specify.label": "Будь ласка, вкажіть мітку.", "feeds.validation.must.specify.valid.feed.url": "Необхідно вказати дійсний URL каналу.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "Перегляд стрічок", "filesystem.empty.directory": "Тека порожня.", "filesystem.error.eacces": "Флуд не має дозволу на читання цієї теки.", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "Пошук торентів", "sidebar.transferdata.downloaded": "Завантажено", "sidebar.transferdata.uploaded": "Відвантажено", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "Необмежено", "unit.size.byte": "Сі", "unit.size.kilobyte": "кБ", @@ -244,6 +248,7 @@ "torrents.list.context.details": "Деталі торенту", "torrents.list.context.move": "Встановити розташування торентів", "torrents.list.context.pause": "Пауза", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "Пріоритет", "torrents.list.context.remove": "Видалити", "torrents.list.context.set.tags": "Встановити позначки", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Трекер повідомлення", "torrents.properties.upload.speed": "Швидкість вивантаження", "torrents.properties.upload.total": "Відвантажено", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "Ви впевнені, що хочете видалити {count, plural, =1 {# торент} other {# торрентів}}?", "torrents.remove.delete.data": "Видалити дані", "torrents.remove.error.no.torrents.selected": "Ви не вибрали жодного торенту.", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "Неможливо перевірити підключення.", "connection-interruption.verification-success": "З'єднання успішне", "status.diskusage.title": "Використання диску", - "locale.language.auto": "Автоматично" + "locale.language.auto": "Автоматично", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/vi.json b/client/src/javascript/i18n/translations/vi.json new file mode 100644 index 000000000..8a8b62212 --- /dev/null +++ b/client/src/javascript/i18n/translations/vi.json @@ -0,0 +1,309 @@ +{ + "actionbar.button.start.torrent": "Start Torrent", + "actionbar.button.stop.torrent": "Stop Torrent", + "actionbar.button.add.torrent": "Add Torrent", + "actionbar.button.remove.torrent": "Remove Torrent", + "alert.torrent.add": "Successfully added {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Failed to add {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move": "Successfully moved {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.move.failed": "Failed to move {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Successfully removed {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove.failed": "Failed to remove {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Successfully saved settings.", + "auth.add.user": "Add User", + "auth.connectionType": "rTorrent Connection Type", + "auth.connectionType.tcp": "TCP", + "auth.connectionType.socket": "Unix Socket", + "auth.create.account": "Create Account", + "auth.create.an.account": "Create an account", + "auth.create.an.account.intro": "Welcome to Flood!", + "auth.current.user": "Current User", + "auth.error.username.empty": "Username cannot be empty.", + "auth.log.in": "Log In", + "auth.login": "Login", + "auth.login.intro": "Log in to your account.", + "auth.password": "Password", + "auth.user.accounts": "User Accounts", + "auth.username": "Username", + "auth.admin": "Admin", + "auth.message.not.admin": "User is not Admin", + "auth.rtorrentHost": "rTorrent Host", + "auth.rtorrentPort": "rTorrent Port", + "auth.rtorrentSocket": "rTorrent Socket", + "auth.rtorrentSocketPath": "rTorrent Socket Path", + "button.add": "Add", + "button.cancel": "Cancel", + "button.no": "No", + "button.save": "Save Settings", + "button.save.feed": "Save", + "button.test": "Test", + "button.state.adding": "Adding...", + "button.yes": "Yes", + "button.new": "New", + "connectivity.modal.title": "Connectivity Issue", + "connectivity.modal.content": "Cannot connect to rTorrent. Please update the information now.", + "feeds.add.automatic.download.rule": "Add Download Rule", + "feeds.add.feed": "Add Feed", + "feeds.applicable.feed": "Applicable Feed", + "feeds.apply.tags": "Apply Tags", + "feeds.exclude.pattern": "Exclude Pattern", + "feeds.existing.feeds": "Existing Feeds", + "feeds.existing.rules": "Existing Rules", + "feeds.label": "Label", + "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", + "feeds.match.pattern": "Match Pattern", + "feeds.match": "Match", + "feeds.exclude": "Exclude", + "feeds.no.feeds.available": "No feeds available.", + "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.rules.defined": "No rules defined.", + "feeds.regEx": "RegEx", + "feeds.select.feed": "Select Feed", + "feeds.select.interval": "Interval", + "feeds.start.on.load": "Start on load", + "feeds.tabs.download.rules": "Download Rules", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Torrent Feeds", + "feeds.tags": "Tags", + "feeds.time.hr": "Hours", + "feeds.time.min": "Minutes", + "feeds.time.day": "Days", + "feeds.torrent.destination": "Torrent Destination", + "feeds.url": "URL", + "feeds.search": "Search term", + "feeds.validation.invalid.regular.expression": "Invalid regular expression.", + "feeds.validation.must.select.feed": "You must select a feed.", + "feeds.validation.must.specify.destination": "You must specify a destination.", + "feeds.validation.must.specify.label": "You must specify a label.", + "feeds.validation.must.specify.valid.feed.url": "You must specify a valid feed URL.", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.browse.feeds": "Browse feeds", + "filesystem.empty.directory": "Empty directory.", + "filesystem.error.eacces": "Flood does not have permission to read this directory.", + "filesystem.error.enoent": "This path does not exist. It will be created.", + "filesystem.fetching": "Fetching directory structure...", + "filter.all": "All", + "filter.status.title": "Filter by Status", + "filter.status.downloading": "Downloading", + "filter.status.completed": "Complete", + "filter.status.active": "Active", + "filter.status.inactive": "Inactive", + "filter.status.error": "Error", + "filter.status.stopped": "Stopped", + "filter.status.checking": "Checking", + "filter.tracker.title": "Filter by Tracker", + "filter.tag.title": "Filter by Tag", + "filter.untagged": "Untagged", + "general.ago": "ago", + "general.at": "at", + "general.to": "to", + "general.of": "of", + "general.clipboard.copy": "Copy", + "general.clipboard.copied": "Copied", + "mediainfo.execError": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.", + "mediainfo.fetching": "Fetching...", + "mediainfo.heading": "Mediainfo Output", + "notification.torrent.finished.heading": "Finished Downloading", + "notification.torrent.finished.body": "{name}", + "notification.torrent.errored.heading": "Error Reported", + "notification.torrent.errored.body": "{name}", + "notification.clear.all": "Clear All", + "notification.showing": "Showing", + "priority.dont.download": "Don't Download", + "priority.high": "High", + "priority.low": "Low", + "priority.normal": "Normal", + "settings.bandwidth.slots.download.divider.label": "Download Slots Divider", + "settings.bandwidth.slots.download.global.label": "Download Slots Global", + "settings.bandwidth.slots.download.label": "Download Slots Per Torrent", + "settings.bandwidth.slots.heading": "Slot Availability", + "settings.bandwidth.slots.upload.divider.label": "Upload Slots Divider", + "settings.bandwidth.slots.upload.global.label": "Upload Slots Global", + "settings.bandwidth.slots.upload.label": "Upload Slots Per Torrent", + "settings.bandwidth.transferrate.dropdown.preset.download.label": "Dropdown Presets: Download", + "settings.bandwidth.transferrate.dropdown.preset.upload.label": "Dropdown Presets: Upload", + "settings.bandwidth.transferrate.global.throttle.download": "Global Download Rate Throttle", + "settings.bandwidth.transferrate.global.throttle.upload": "Global Upload Rate Throttle", + "settings.bandwidth.transferrate.heading": "Transfer Rate Throttles", + "settings.connectivity.dht.label": "Enable DHT", + "settings.connectivity.dht.port.label": "DHT Port", + "settings.connectivity.dpd.heading": "Decentralized Peer Discovery", + "settings.connectivity.incoming.heading": "Incoming Connections", + "settings.connectivity.ip.hostname.label": "Reported IP/Hostname", + "settings.connectivity.max.http.connections": "Maximum HTTP Connections", + "settings.connectivity.peer.exchange.label": "Enable Peer Exchange", + "settings.connectivity.peers.desired.label": "Peers Desired", + "settings.connectivity.peers.heading": "Peers", + "settings.connectivity.peers.max.label": "Maximum Peers", + "settings.connectivity.peers.min.label": "Minimum Peers", + "settings.connectivity.peers.seeding.max.label": "Maximum Peers Seeding", + "settings.connectivity.peers.seeding.min.label": "Minimum Peers Seeding", + "settings.connectivity.port.open.label": "Open Port", + "settings.connectivity.port.randomize.label": "Randomize Port", + "settings.connectivity.port.range.label": "Port Range", + "settings.resources.disk.check.hash.label": "Verify Hash on Completion", + "settings.resources.disk.download.location.label": "Default Download Directory", + "settings.resources.disk.heading": "Disk", + "settings.resources.max.open.files": "Maximum Open Files", + "settings.resources.memory.heading": "Memory", + "settings.resources.memory.max.label": "Max Memory Usage", + "settings.tabs.bandwidth": "Bandwidth", + "settings.tabs.connectivity": "Connectivity", + "settings.tabs.heading": "Settings", + "settings.tabs.resources": "Resources", + "settings.tabs.authentication": "Authentication", + "settings.tabs.userinterface": "User Interface", + "settings.tabs.diskusage": "Disk Usage", + "settings.tabs.about": "About", + "settings.ui.locale": "Locale", + "settings.ui.language": "Language", + "settings.ui.torrent.list": "Torrent List Display", + "settings.ui.torrent.size": "Torrent Size", + "settings.ui.torrent.size.expanded": "Expanded View", + "settings.ui.torrent.size.condensed": "Condensed View", + "settings.ui.torrent.details.enabled": "Enabled", + "settings.ui.torrent.details.tags.placement": "In the expanded view, tags work best at the end of the list.", + "settings.ui.displayed.details": "Torrent Detail Columns", + "settings.diskusage.show": "Show", + "settings.diskusage.mount.points": "Disk Usage Mount Points", + "settings.about.flood": "About Flood", + "sidebar.button.feeds": "Feeds", + "sidebar.button.notifications": "Notifications", + "sidebar.button.settings": "Settings", + "sidebar.button.speedlimits": "Speed Limits", + "sidebar.button.log.out": "Log Out", + "sidebar.search.placeholder": "Search torrents", + "sidebar.transferdata.downloaded": "Downloaded", + "sidebar.transferdata.uploaded": "Uploaded", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", + "speed.unlimited": "Unlimited", + "unit.size.byte": "B", + "unit.size.kilobyte": "kB", + "unit.size.megabyte": "MB", + "unit.size.gigabyte": "GB", + "unit.size.terabyte": "TB", + "unit.speed": "{baseUnit}/s", + "unit.time.year": "yr", + "unit.time.week": "wk", + "unit.time.day": "d", + "unit.time.hour": "hr", + "unit.time.minute": "m", + "unit.time.second": "s", + "unit.time.infinity": "∞", + "torrents.add.button.add": "Add Torrent", + "torrents.add.destination.label": "Destination", + "torrents.add.destination.placeholder": "Destination", + "torrents.add.heading": "Add Torrents", + "torrents.add.start.label": "Start Torrent", + "torrents.add.tab.file.browse": "or click to browse", + "torrents.add.tab.file.drop": "Drop some files here,", + "torrents.add.tab.file.title": "By File", + "torrents.add.tab.url.input.placeholder": "Torrent URL or Magnet Link", + "torrents.add.tab.url.title": "By URL", + "torrents.add.torrents.label": "Torrents", + "torrents.add.tags": "Tags", + "torrents.destination.base_path": "Use as Base Path", + "torrents.details.actions.pause": "Pause", + "torrents.details.actions.start": "Start", + "torrents.details.actions.stop": "Stop", + "torrents.details.details": "Details", + "torrents.details.files": "Files", + "torrents.details.files.loading": "Loading file detail...", + "torrents.details.files.download.file": "{count, plural, =1 {Download File} other {Download Files}}", + "torrents.details.general.comment": "Comment", + "torrents.details.general.connected": "{connected} connected of {total}", + "torrents.details.general.date.added": "Added", + "torrents.details.general.date.created": "Creation Date", + "torrents.details.general.downloaded": "Downloaded", + "torrents.details.general.free.disk.space": "Free Disk Space", + "torrents.details.general.hash": "Hash", + "torrents.details.general.heading.general": "General", + "torrents.details.general.heading.torrent": "Torrent", + "torrents.details.general.heading.tracker": "Tracker", + "torrents.details.general.heading.transfer": "Transfer", + "torrents.details.general.location": "Location", + "torrents.details.general.none": "None", + "torrents.details.general.peers": "Peers", + "torrents.details.general.scheduler.ignored": "Ignored", + "torrents.details.general.scheduler.obeyed": "Obeyed", + "torrents.details.general.scheduler": "Scheduler", + "torrents.details.general.seeds": "Seeds", + "torrents.details.general.size": "Size", + "torrents.details.general.tags": "Tags", + "torrents.details.general.tracker.message": "Tracker Message", + "torrents.details.general.type.private": "Private", + "torrents.details.general.type.public": "Public", + "torrents.details.general.type": "Type", + "torrents.details.mediainfo": "Mediainfo", + "torrents.details.peers.no.data": "There is no peer data for this torrent.", + "torrents.details.peers": "Peers", + "torrents.details.selected.files": "{count, plural, =1 {{countElement} selected file} other {{countElement} selected files}}", + "torrents.details.selected.files.set.priority": "Set Priority", + "torrents.details.trackers.no.data": "There is no tracker data for this torrent.", + "torrents.details.trackers.type": "Type", + "torrents.details.trackers": "Trackers", + "torrents.list.clear.filters": "Clear Filters", + "torrents.list.context.check.hash": "Check Hash", + "torrents.list.context.details": "Torrent Details", + "torrents.list.context.move": "Set Torrent Location", + "torrents.list.context.pause": "Pause", + "torrents.list.context.download": "Download", + "torrents.list.context.priority": "Priority", + "torrents.list.context.remove": "Remove", + "torrents.list.context.set.tags": "Set Tags", + "torrents.list.context.start": "Start", + "torrents.list.context.stop": "Stop", + "torrents.list.no.torrents": "No torrents to display.", + "torrents.list.drop": "Drop files here to add them to rTorrent.", + "torrents.list.cannot.connect": "Cannot connect to rTorrent.", + "torrent.list.peers": "{connected} {of} {total}", + "torrent.list.peers.of": "of", + "torrents.move.button.set.location": "Set Location", + "torrents.move.button.state.setting": "Setting...", + "torrents.move.data.label": "Move data", + "torrents.move.check_hash.label": "Check hash", + "torrents.move.heading": "Set Torrent Location", + "torrents.properties.date.added": "Added", + "torrents.properties.base.path": "Base Path", + "torrents.properties.comment": "Comment", + "torrents.properties.creation.date": "Creation Date", + "torrents.properties.download.speed": "Download Speed", + "torrents.properties.download.total": "Downloaded", + "torrents.properties.eta": "ETA", + "torrents.properties.free.disk.space": "Free Disk Space", + "torrents.properties.hash": "Hash", + "torrents.properties.ignore.schedule": "Ignore Scheduler", + "torrents.properties.is.private": "Private", + "torrents.properties.name": "Name", + "torrents.properties.percentage": "Percent Complete", + "torrents.properties.ratio": "Ratio", + "torrents.properties.size": "File Size", + "torrents.properties.tags": "Tags", + "torrents.properties.tracker.message": "Tracker Message", + "torrents.properties.upload.speed": "Upload Speed", + "torrents.properties.upload.total": "Uploaded", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", + "torrents.remove.are.you.sure": "Are you sure you want to remove {count, plural, =1 {# torrent} other {# torrents}}?", + "torrents.remove.delete.data": "Delete data", + "torrents.remove.error.no.torrents.selected": "You haven't selected any torrents.", + "torrents.remove": "Remove Torrents", + "torrents.set.tags.button.set": "Set Tags", + "torrents.set.tags.heading": "Set Tags", + "torrents.set.tags.enter.tags": "Enter tags", + "torrents.sort.title": "Sort By", + "connection-interruption.heading": "Cannot connect to rTorrent", + "connection-interruption.verify-settings-prompt": "Let's verify your connection settings.", + "connection-interruption.verification-error": "Connection could not be verified.", + "connection-interruption.verification-success": "Connection successful", + "status.diskusage.title": "Disk Usage", + "locale.language.auto": "Automatic", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" +} diff --git a/client/src/javascript/i18n/translations/zh-Hans.json b/client/src/javascript/i18n/translations/zh-Hans.json index a5a5be4b4..a9cde25a2 100644 --- a/client/src/javascript/i18n/translations/zh-Hans.json +++ b/client/src/javascript/i18n/translations/zh-Hans.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "用户名不能为空", "auth.log.in": "登录", "auth.login": "登录", + "auth.login.intro": "Log in to your account.", "auth.password": "密码", "auth.user.accounts": "用户账号", "auth.username": "用户名", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "你必须指定下载位置。", "feeds.validation.must.specify.label": "你必须指定标签。", "feeds.validation.must.specify.valid.feed.url": "你必须指定有效的订阅源网址。", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "浏览订阅源", "filesystem.empty.directory": "空目录。", "filesystem.error.eacces": "Flood没有权限读取此目录。", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "搜索种子", "sidebar.transferdata.downloaded": "已下载", "sidebar.transferdata.uploaded": "已上传", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "无限制", "unit.size.byte": "B", "unit.size.kilobyte": "kB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "种子详情", "torrents.list.context.move": "设置种子位置", "torrents.list.context.pause": "暂停", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "优先级", "torrents.list.context.remove": "移除", "torrents.list.context.set.tags": "设置标签", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Tracker 信息", "torrents.properties.upload.speed": "上传速度", "torrents.properties.upload.total": "已上传", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "你确定你想要删除 # 个种子", "torrents.remove.delete.data": "删除数据", "torrents.remove.error.no.torrents.selected": "您没有选择任何种子。", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "无法建立连接。", "connection-interruption.verification-success": "连接成功!", "status.diskusage.title": "磁盘使用量", - "locale.language.auto": "自动" + "locale.language.auto": "自动", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } diff --git a/client/src/javascript/i18n/translations/zh-Hant.json b/client/src/javascript/i18n/translations/zh-Hant.json index 56573c576..a96594a11 100644 --- a/client/src/javascript/i18n/translations/zh-Hant.json +++ b/client/src/javascript/i18n/translations/zh-Hant.json @@ -21,6 +21,7 @@ "auth.error.username.empty": "使用者名稱不可以留空!", "auth.log.in": "登入", "auth.login": "登入", + "auth.login.intro": "Log in to your account.", "auth.password": "密碼", "auth.user.accounts": "使用者帳號", "auth.username": "使用者名稱", @@ -75,6 +76,7 @@ "feeds.validation.must.specify.destination": "您必須指定下載位置。", "feeds.validation.must.specify.label": "你必須指定標籤。", "feeds.validation.must.specify.valid.feed.url": "你必須指定一個有效的訊息來源網址。", + "feeds.validation.interval.not.positive": "The interval must be a positive integer.", "feeds.browse.feeds": "瀏覽訊息來源", "filesystem.empty.directory": "空白資料夾。", "filesystem.error.eacces": "Flood 沒有權限去讀取資料夾的內容。", @@ -173,6 +175,8 @@ "sidebar.search.placeholder": "搜尋種子", "sidebar.transferdata.downloaded": "已下載", "sidebar.transferdata.uploaded": "已上傳", + "sidebar.speedlimits.download": "DOWNLOAD", + "sidebar.speedlimits.upload": "UPLOAD", "speed.unlimited": "無限制", "unit.size.byte": "B", "unit.size.kilobyte": "KB", @@ -244,6 +248,7 @@ "torrents.list.context.details": "種子詳細資訊", "torrents.list.context.move": "設定種子位置", "torrents.list.context.pause": "暫停", + "torrents.list.context.download": "Download", "torrents.list.context.priority": "優先權", "torrents.list.context.remove": "移除", "torrents.list.context.set.tags": "設定標籤", @@ -278,6 +283,9 @@ "torrents.properties.tracker.message": "Tracker 訊息", "torrents.properties.upload.speed": "上傳速度", "torrents.properties.upload.total": "已上傳", + "torrents.properties.seeds": "Seeds", + "torrents.properties.peers": "Peers", + "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "你確定要移除這些種子嗎?", "torrents.remove.delete.data": "刪除已下載檔案", "torrents.remove.error.no.torrents.selected": "你沒有選擇任何種子。", @@ -291,5 +299,11 @@ "connection-interruption.verification-error": "無法建立連線。", "connection-interruption.verification-success": "連線成功", "status.diskusage.title": "磁碟空間使用量", - "locale.language.auto": "自動" + "locale.language.auto": "自動", + "window.title": "↓ {down} ↑ {up} - Flood", + "dependency.loading.notifications": "Notifications", + "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", + "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", + "dependency.loading.transfer.history": "Data Transfer History", + "dependency.loading.torrent.list": "Torrent List" } From ffbf8e2e174bdf8f14dfb0393f18ddac6db3a974 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 01:05:31 +0800 Subject: [PATCH 042/651] dependencies: bump react-dropzone to 11.0.2 (major) --- .../add-torrents-modal/AddTorrentsByFile.js | 31 ++++++----- .../components/torrent-list/TorrentList.js | 55 ++++++++++--------- package-lock.json | 38 ++++++------- package.json | 2 +- 4 files changed, 65 insertions(+), 61 deletions(-) diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js index 2f9a864b8..31dc22d01 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js @@ -52,21 +52,24 @@ class AddTorrentsByFile extends React.Component { {fileContent} - -
    -
    - + + {({getRootProps, getInputProps, isDragActive}) => ( +
    + +
    +
    + +
    + {' '} + + + + . +
    - {' '} - - - - . -
    + )} ); diff --git a/client/src/javascript/components/torrent-list/TorrentList.js b/client/src/javascript/components/torrent-list/TorrentList.js index 4b0a9fca6..fcd654fc2 100644 --- a/client/src/javascript/components/torrent-list/TorrentList.js +++ b/client/src/javascript/components/torrent-list/TorrentList.js @@ -490,36 +490,39 @@ class TorrentListContainer extends React.Component { return ( { this.listContainer = ref; - }} - onDrop={this.handleFileDrop} - disableClick - disablePreview> - { - this.horizontalScrollRef = ref; - }}> -
    - - {torrentListHeading} - {content} -
    -
    - -
    -
    -
    - + }}> + {({getRootProps, isDragActive}) => ( +
    evt.preventDefault()})} + className={`dropzone dropzone--with-overlay torrents ${isDragActive ? 'dropzone--is-dragging' : ''}`} + tabIndex="none"> + { + this.horizontalScrollRef = ref; + }}> +
    + + {torrentListHeading} + {content} +
    +
    + +
    +
    +
    + +
    + +
    -
    -
    + )} ); } diff --git a/package-lock.json b/package-lock.json index dbe1f8c1d..ab82d5d5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2743,19 +2743,9 @@ "dev": true }, "attr-accept": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz", - "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==", - "requires": { - "core-js": "^2.5.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - } - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.1.tgz", + "integrity": "sha512-GpefLMsbH5ojNgfTW+OBin2xKzuHfyeNA+qCktzZojBhbA/lPZdCFMWdwk5ajb989Ok7ZT+EADqvW3TAFNMjhA==" }, "autoprefixer": { "version": "9.8.6", @@ -7527,6 +7517,14 @@ } } }, + "file-selector": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.1.12.tgz", + "integrity": "sha512-Kx7RTzxyQipHuiqyZGf+Nz4vY9R1XGxuQl/hLoJwq+J4avk/9wxxgZyHKtbyIPJmbD4A66DWGYfyykWNpcYutQ==", + "requires": { + "tslib": "^1.9.0" + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -13373,12 +13371,13 @@ } }, "react-dropzone": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-4.3.0.tgz", - "integrity": "sha512-ULfrLaTSsd8BDa9KVAGCueuq1AN3L14dtMsGGqtP0UwYyjG4Vhf158f/ITSHuSPYkZXbvfcIiOlZsH+e3QWm+Q==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.2.tgz", + "integrity": "sha512-/Wde9Il1aJ1FtWllg3N2taIeJh4aftx6UGUG8R1TmLnZit2RnDcEjcKwEEbKwgLXTTh8QQpiZWQJq45jTy1jCA==", "requires": { - "attr-accept": "^1.1.3", - "prop-types": "^15.5.7" + "attr-accept": "^2.0.0", + "file-selector": "^0.1.12", + "prop-types": "^15.7.2" } }, "react-error-overlay": { @@ -16105,8 +16104,7 @@ "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tsutils": { "version": "3.17.1", diff --git a/package.json b/package.json index 51675d8cf..54a21b1d7 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "react-dnd": "^2.6.0", "react-dnd-html5-backend": "^2.6.0", "react-dom": "^16.13.1", - "react-dropzone": "^4.3.0", + "react-dropzone": "^11.0.2", "react-intl": "^5.4.7", "react-markdown": "^4.3.1", "react-measure": "^2.3.0", From a52b45c7bd18400c39c1cb34a7c5702b12708c08 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 13:09:24 +0800 Subject: [PATCH 043/651] strings: add missing diskusage strings --- client/src/javascript/i18n/strings.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/src/javascript/i18n/strings.json b/client/src/javascript/i18n/strings.json index 8a8b62212..6736af939 100644 --- a/client/src/javascript/i18n/strings.json +++ b/client/src/javascript/i18n/strings.json @@ -299,6 +299,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", From 78452981ec6452f66d7bac6ce34b6866c659efbd Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 14:33:53 +0800 Subject: [PATCH 044/651] dependencies: bump react-dnd to 11.1.3 (major) --- .../components/general/SortableList.js | 14 +++- package-lock.json | 83 ++++++++++--------- package.json | 4 +- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/client/src/javascript/components/general/SortableList.js b/client/src/javascript/components/general/SortableList.js index 36dd61589..832352a2d 100644 --- a/client/src/javascript/components/general/SortableList.js +++ b/client/src/javascript/components/general/SortableList.js @@ -1,7 +1,7 @@ import classnames from 'classnames'; -import {DragDropContext} from 'react-dnd'; +import {DndProvider} from 'react-dnd'; import {injectIntl} from 'react-intl'; -import HTML5Backend from 'react-dnd-html5-backend'; +import {HTML5Backend} from 'react-dnd-html5-backend'; import React from 'react'; import SortableListItemDragLayer from './SortableListItemDragLayer'; @@ -109,4 +109,12 @@ class SortableList extends React.Component { } } -export default DragDropContext(HTML5Backend)(injectIntl(SortableList)); +const DndSortableList = (props) => { + return ( + + + + ); +}; + +export default injectIntl(DndSortableList); diff --git a/package-lock.json b/package-lock.json index ab82d5d5e..1e72f7039 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1346,6 +1346,21 @@ "safe-buffer": "^5.1.2" } }, + "@react-dnd/asap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", + "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" + }, + "@react-dnd/invariant": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", + "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" + }, + "@react-dnd/shallowequal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", + "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -5868,20 +5883,14 @@ } } }, - "disposables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/disposables/-/disposables-1.0.2.tgz", - "integrity": "sha1-NsamdEdfVaLWkTVnpgFETkh7S24=" - }, "dnd-core": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-2.6.0.tgz", - "integrity": "sha1-ErrWbVh0LG5ffPKUP7aFlED4CcQ=", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-11.1.3.tgz", + "integrity": "sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==", "requires": { - "asap": "^2.0.6", - "invariant": "^2.0.0", - "lodash": "^4.2.0", - "redux": "^3.7.1" + "@react-dnd/asap": "^4.0.0", + "@react-dnd/invariant": "^2.0.0", + "redux": "^4.0.4" } }, "dns-equal": { @@ -8423,9 +8432,12 @@ } }, "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } }, "hosted-git-info": { "version": "2.7.1", @@ -10315,11 +10327,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, - "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" - }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -13339,24 +13346,22 @@ } }, "react-dnd": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.6.0.tgz", - "integrity": "sha1-f6JWds+CfViokSk+PBq1naACVFo=", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-11.1.3.tgz", + "integrity": "sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==", "requires": { - "disposables": "^1.0.1", - "dnd-core": "^2.6.0", - "hoist-non-react-statics": "^2.1.0", - "invariant": "^2.1.0", - "lodash": "^4.2.0", - "prop-types": "^15.5.10" + "@react-dnd/shallowequal": "^2.0.0", + "@types/hoist-non-react-statics": "^3.3.1", + "dnd-core": "^11.1.3", + "hoist-non-react-statics": "^3.3.0" } }, "react-dnd-html5-backend": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.6.0.tgz", - "integrity": "sha1-WQzRzKeEQbsnTt1XH+9MCxbdz44=", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz", + "integrity": "sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==", "requires": { - "lodash": "^4.2.0" + "dnd-core": "^11.1.3" } }, "react-dom": { @@ -13928,14 +13933,12 @@ } }, "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" } }, "regenerate": { diff --git a/package.json b/package.json index 54a21b1d7..32752c72b 100644 --- a/package.json +++ b/package.json @@ -75,8 +75,8 @@ "promise": "^8.1.0", "react": "^16.13.1", "react-custom-scrollbars": "^4.2.1", - "react-dnd": "^2.6.0", - "react-dnd-html5-backend": "^2.6.0", + "react-dnd": "^11.1.3", + "react-dnd-html5-backend": "^11.1.3", "react-dom": "^16.13.1", "react-dropzone": "^11.0.2", "react-intl": "^5.4.7", From 1f6197c80d62adc75b5ce696e32190114448ec74 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 15:57:06 +0800 Subject: [PATCH 045/651] dependencies: bump eslint and co. (major) --- client/.eslintrc.js | 10 +- .../javascript/components/auth/AuthForm.js | 9 +- .../general/ClientConnectionInterruption.js | 17 +- .../components/general/CustomScrollbars.js | 14 +- .../general/GlobalContextMenuMountPoint.js | 13 +- .../RtorrentConnectionTypeSelection.js | 13 +- .../src/javascript/components/general/Size.js | 10 +- .../general/form-elements/TextboxRepeater.js | 11 +- .../src/javascript/components/modals/Modal.js | 18 +- .../components/modals/ModalActions.js | 8 +- .../javascript/components/modals/ModalTabs.js | 8 +- .../add-torrents-modal/AddTorrentsByFile.js | 17 +- .../modals/feeds-modal/DownloadRulesTab.js | 20 +- .../components/modals/feeds-modal/FeedsTab.js | 43 +- .../modals/set-tags-modal/SetTagsModal.js | 11 +- .../modals/settings-modal/SettingsModal.js | 15 +- .../modals/settings-modal/SettingsTab.js | 5 +- .../torrent-details-modal/TorrentMediainfo.js | 13 +- .../components/sidebar/NotificationsButton.js | 11 +- .../components/sidebar/SearchTorrents.js | 13 +- .../components/sidebar/TransferData.js | 17 +- .../components/torrent-list/Torrent.js | 8 +- .../components/torrent-list/TorrentDetail.js | 10 +- .../components/torrent-list/TorrentList.js | 11 +- client/src/javascript/stores/AlertStore.js | 4 +- client/src/javascript/stores/SettingsStore.js | 4 +- package-lock.json | 1321 ++++++++--------- package.json | 23 +- server/services/notificationService.js | 10 +- server/services/taxonomyService.js | 6 +- 30 files changed, 844 insertions(+), 849 deletions(-) diff --git a/client/.eslintrc.js b/client/.eslintrc.js index 91f1aa3ef..9dff935ca 100644 --- a/client/.eslintrc.js +++ b/client/.eslintrc.js @@ -15,13 +15,13 @@ module.exports = { plugins: ['import'], rules: { '@typescript-eslint/no-var-requires': 0, - // This is enabled to allow BEM-style classnames to be referenced JS - // Remvoe when BEM-style classnames are converted to locally-scoped - // class names - '@typescript-eslint/camelcase': ['error', {allow: [/[^\s]__[^\s]{1,}$/]}], + '@typescript-eslint/camelcase': ['error'], camelcase: 0, + // TODO: Explict return type + '@typescript-eslint/explicit-function-return-type': 0, // TODO: Enable a11y features 'jsx-a11y/click-events-have-key-events': 0, + 'jsx-a11y/control-has-associated-label': 0, 'jsx-a11y/label-has-associated-control': 0, 'jsx-a11y/label-has-for': 0, 'jsx-a11y/mouse-events-have-key-events': 0, @@ -36,6 +36,7 @@ module.exports = { 'react/jsx-filename-extension': [1, {extensions: ['.js', '.tsx']}], 'react/jsx-one-expression-per-line': 0, 'react/jsx-wrap-multilines': 0, + 'react/jsx-props-no-spreading': 0, 'react/no-unescaped-entities': ['error', {forbid: ['>', '}']}], 'react/no-unused-prop-types': 0, 'react/prefer-stateless-function': 0, @@ -50,6 +51,7 @@ module.exports = { }, }, ], + 'react/static-property-placement': [1, 'static public field'], }, settings: { 'import/resolver': { diff --git a/client/src/javascript/components/auth/AuthForm.js b/client/src/javascript/components/auth/AuthForm.js index 3d14000e8..fe21076f0 100644 --- a/client/src/javascript/components/auth/AuthForm.js +++ b/client/src/javascript/components/auth/AuthForm.js @@ -10,9 +10,12 @@ import EventTypes from '../../constants/EventTypes'; import RtorrentConnectionTypeSelection from '../general/RtorrentConnectionTypeSelection'; class AuthForm extends React.Component { - state = { - isSubmitting: false, - }; + constructor(props) { + super(props); + this.state = { + isSubmitting: false, + }; + } getHeaderText() { if (this.props.mode === 'login') { diff --git a/client/src/javascript/components/general/ClientConnectionInterruption.js b/client/src/javascript/components/general/ClientConnectionInterruption.js index eedf9f337..c4a509cec 100644 --- a/client/src/javascript/components/general/ClientConnectionInterruption.js +++ b/client/src/javascript/components/general/ClientConnectionInterruption.js @@ -22,11 +22,14 @@ import FloodActions from '../../actions/FloodActions'; import RtorrentConnectionTypeSelection from './RtorrentConnectionTypeSelection'; class ClientConnectionInterruption extends React.Component { - state = { - hasTestedConnection: false, - isConnectionVerified: false, - isTestingConnection: false, - }; + constructor(props) { + super(props); + this.state = { + hasTestedConnection: false, + isConnectionVerified: false, + isTestingConnection: false, + }; + } handleFormChange = () => { if (this.state.hasTestedConnection) { @@ -42,7 +45,9 @@ class ClientConnectionInterruption extends React.Component { .then(() => { FloodActions.restartActivityStream(); }) - .catch(() => {}); + .catch(() => { + // do nothing. + }); }; handleTestButtonClick = () => { diff --git a/client/src/javascript/components/general/CustomScrollbars.js b/client/src/javascript/components/general/CustomScrollbars.js index 732d1aabd..532c04e07 100644 --- a/client/src/javascript/components/general/CustomScrollbars.js +++ b/client/src/javascript/components/general/CustomScrollbars.js @@ -7,6 +7,13 @@ const METHODS_TO_BIND = ['getHorizontalThumb', 'getVerticalThumb']; export default class CustomScrollbar extends React.Component { scrollbarRef = null; + static defaultProps = { + className: '', + inverted: false, + nativeScrollHandler: null, + scrollHandler: null, + }; + constructor() { super(); @@ -81,10 +88,3 @@ export default class CustomScrollbar extends React.Component { ); } } - -CustomScrollbar.defaultProps = { - className: '', - inverted: false, - nativeScrollHandler: null, - scrollHandler: null, -}; diff --git a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js index 90755b4be..1205acf88 100644 --- a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js +++ b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js @@ -19,11 +19,14 @@ class GlobalContextMenuMountPoint extends React.Component { width: 200, }; - state = { - clickPosition: {}, - isOpen: false, - items: [], - }; + constructor(props) { + super(props); + this.state = { + clickPosition: {}, + isOpen: false, + items: [], + }; + } componentDidMount() { UIStore.listen(EventTypes.UI_CONTEXT_MENU_CHANGE, this.handleContextMenuChange); diff --git a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js index 3c2dd26ba..3206510e1 100644 --- a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js +++ b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js @@ -9,12 +9,17 @@ class RtorrentConnectionTypeSelection extends Component { }; static defaultProps = { - onChange: () => {}, + onChange: () => { + // do nothing. + }, }; - state = { - connectionType: 'tcp', - }; + constructor(props) { + super(props); + this.state = { + connectionType: 'tcp', + }; + } handleTypeChange = (event) => { if (this.state.connectionType !== event.target.value) { diff --git a/client/src/javascript/components/general/Size.js b/client/src/javascript/components/general/Size.js index e0752c647..f6bf67387 100644 --- a/client/src/javascript/components/general/Size.js +++ b/client/src/javascript/components/general/Size.js @@ -4,6 +4,11 @@ import React from 'react'; import {compute, getTranslationString} from '../../util/size'; class Size extends React.Component { + static defaultProps = { + isSpeed: false, + precision: 2, + }; + renderNumber(computedNumber) { if (Number.isNaN(computedNumber.value)) { return '—'; @@ -38,9 +43,4 @@ class Size extends React.Component { } } -Size.defaultProps = { - isSpeed: false, - precision: 2, -}; - export default injectIntl(Size); diff --git a/client/src/javascript/components/general/form-elements/TextboxRepeater.js b/client/src/javascript/components/general/form-elements/TextboxRepeater.js index 2fa2f2a17..62d53bc5d 100644 --- a/client/src/javascript/components/general/form-elements/TextboxRepeater.js +++ b/client/src/javascript/components/general/form-elements/TextboxRepeater.js @@ -5,12 +5,15 @@ import AddMini from '../../icons/AddMini'; import RemoveMini from '../../icons/RemoveMini'; export default class TextboxRepeater extends React.PureComponent { - state = { - textboxes: this.props.defaultValues || [{id: 0, value: ''}], - }; - idCounter = 0; + constructor(props) { + super(props); + this.state = { + textboxes: this.props.defaultValues || [{id: 0, value: ''}], + }; + } + getID() { return ++this.idCounter; } diff --git a/client/src/javascript/components/modals/Modal.js b/client/src/javascript/components/modals/Modal.js index d4b1ac520..dbddbb273 100644 --- a/client/src/javascript/components/modals/Modal.js +++ b/client/src/javascript/components/modals/Modal.js @@ -7,6 +7,15 @@ import ModalTabs from './ModalTabs'; const METHODS_TO_BIND = ['handleTabChange']; export default class Modal extends React.Component { + static defaultProps = { + alignment: 'left', + className: null, + inverse: true, + size: 'medium', + orientation: 'horizontal', + tabsInBody: false, + }; + constructor() { super(); @@ -117,12 +126,3 @@ export default class Modal extends React.Component { ); } } - -Modal.defaultProps = { - alignment: 'left', - className: null, - inverse: true, - size: 'medium', - orientation: 'horizontal', - tabsInBody: false, -}; diff --git a/client/src/javascript/components/modals/ModalActions.js b/client/src/javascript/components/modals/ModalActions.js index a66e86aaf..306c2cdde 100644 --- a/client/src/javascript/components/modals/ModalActions.js +++ b/client/src/javascript/components/modals/ModalActions.js @@ -5,6 +5,10 @@ import React from 'react'; import UIActions from '../../actions/UIActions'; export default class ModalActions extends React.Component { + static defaultProps = { + alignment: 'left', + }; + getModalButtons(actions) { const buttons = actions.map((action, index) => { const classes = classnames('button', { @@ -53,7 +57,3 @@ export default class ModalActions extends React.Component { return
    {this.getModalButtons(this.props.actions)}
    ; } } - -ModalActions.defaultProps = { - alignment: 'left', -}; diff --git a/client/src/javascript/components/modals/ModalTabs.js b/client/src/javascript/components/modals/ModalTabs.js index e62264041..9435e56d7 100644 --- a/client/src/javascript/components/modals/ModalTabs.js +++ b/client/src/javascript/components/modals/ModalTabs.js @@ -2,6 +2,10 @@ import classnames from 'classnames'; import React from 'react'; export default class ModalTabs extends React.Component { + static defaultProps = { + tabs: [], + }; + handleTabClick(tab) { if (this.props.onTabChange) { this.props.onTabChange(tab); @@ -27,7 +31,3 @@ export default class ModalTabs extends React.Component { return
      {tabs}
    ; } } - -ModalTabs.defaultProps = { - tabs: [], -}; diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js index 31dc22d01..efe0a31da 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js @@ -12,15 +12,18 @@ import TorrentActions from '../../../actions/TorrentActions'; import TorrentDestination from '../../general/filesystem/TorrentDestination'; class AddTorrentsByFile extends React.Component { - state = { - errors: {}, - isAddingTorrents: false, - files: [], - tags: '', - }; - formRef = null; + constructor(props) { + super(props); + this.state = { + errors: {}, + isAddingTorrents: false, + files: [], + tags: '', + }; + } + getFileDropzone() { let fileContent = null; diff --git a/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js b/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js index ed24e8883..95726c9d7 100644 --- a/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js +++ b/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js @@ -66,12 +66,6 @@ const defaultRule = { }; class DownloadRulesTab extends React.Component { - state = { - errors: {}, - currentlyEditingRule: null, - doesPatternMatchTest: false, - }; - validatedFields = { destination: { isValid: validators.isNotEmpty, @@ -112,6 +106,15 @@ class DownloadRulesTab extends React.Component { } }, 150); + constructor(props) { + super(props); + this.state = { + errors: {}, + currentlyEditingRule: null, + doesPatternMatchTest: false, + }; + } + checkMatchingPattern(match, exclude, check) { let doesPatternMatchTest = false; @@ -128,10 +131,7 @@ class DownloadRulesTab extends React.Component { const formData = this.formRef.getFormData(); delete formData.check; - return Object.assign({}, formData, { - field: 'title', - tags: formData.tags.split(','), - }); + return {...formData, field: 'title', tags: formData.tags.split(',')}; } getAvailableFeedsOptions() { diff --git a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js index 564459e34..ceb62d083 100644 --- a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js +++ b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js @@ -86,26 +86,6 @@ class FeedsTab extends React.Component { }, }; - state = { - errors: {}, - intervalmultipliers: [ - { - displayName: this.props.intl.formatMessage(MESSAGES.min), - value: 1, - }, - { - displayName: this.props.intl.formatMessage(MESSAGES.hr), - value: 60, - }, - { - displayName: this.props.intl.formatMessage(MESSAGES.day), - value: 1440, - }, - ], - currentlyEditingFeed: null, - selectedFeed: null, - }; - checkFieldValidity = _.throttle((fieldName, fieldValue) => { const {errors} = this.state; @@ -115,6 +95,29 @@ class FeedsTab extends React.Component { } }, 150); + constructor(props) { + super(props); + this.state = { + errors: {}, + intervalmultipliers: [ + { + displayName: this.props.intl.formatMessage(MESSAGES.min), + value: 1, + }, + { + displayName: this.props.intl.formatMessage(MESSAGES.hr), + value: 60, + }, + { + displayName: this.props.intl.formatMessage(MESSAGES.day), + value: 1440, + }, + ], + currentlyEditingFeed: null, + selectedFeed: null, + }; + } + getAmendedFormData() { const formData = this.formRef.getFormData(); formData.interval = (formData.interval * formData.intervalMultiplier).toString(); diff --git a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js index 75e7ebdb3..71a96b9da 100644 --- a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js +++ b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js @@ -7,12 +7,15 @@ import TorrentActions from '../../../actions/TorrentActions'; import TorrentStore from '../../../stores/TorrentStore'; class SetTagsModal extends React.Component { - state = { - isSettingTags: false, - }; - formRef = null; + constructor(props) { + super(props); + this.state = { + isSettingTags: false, + }; + } + handleSetTagsClick = () => { const formData = this.formRef.getFormData(); const tags = formData.tags ? formData.tags.split(',') : []; diff --git a/client/src/javascript/components/modals/settings-modal/SettingsModal.js b/client/src/javascript/components/modals/settings-modal/SettingsModal.js index 12a2316fb..b05b4f34f 100644 --- a/client/src/javascript/components/modals/settings-modal/SettingsModal.js +++ b/client/src/javascript/components/modals/settings-modal/SettingsModal.js @@ -16,14 +16,17 @@ import DiskUsageTab from './DiskUsageTab'; import UserConfig from '../../../../../../config'; class SettingsModal extends React.Component { - state = { - isSavingSettings: false, - changedClientSettings: {}, - changedFloodSettings: {}, - }; - modalBodyRef = null; + constructor(props) { + super(props); + this.state = { + isSavingSettings: false, + changedClientSettings: {}, + changedFloodSettings: {}, + }; + } + getActions() { return [ { diff --git a/client/src/javascript/components/modals/settings-modal/SettingsTab.js b/client/src/javascript/components/modals/settings-modal/SettingsTab.js index b4727abad..8b8772e13 100644 --- a/client/src/javascript/components/modals/settings-modal/SettingsTab.js +++ b/client/src/javascript/components/modals/settings-modal/SettingsTab.js @@ -1,7 +1,10 @@ import React from 'react'; export default class SettingsTab extends React.Component { - state = {}; + constructor(props) { + super(props); + this.state = {}; + } getFieldValue(fieldName) { if (this.state[fieldName] == null) { diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js index 3f6dcaef3..657dd7b5a 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js @@ -33,11 +33,14 @@ class TorrentMediainfo extends React.Component { timeoutId = null; - state = { - copiedToClipboard: false, - isFetchingMediainfo: true, - fetchMediainfoError: null, - }; + constructor(props) { + super(props); + this.state = { + copiedToClipboard: false, + isFetchingMediainfo: true, + fetchMediainfoError: null, + }; + } componentDidMount() { FloodActions.fetchMediainfo({hash: this.props.hash}).then( diff --git a/client/src/javascript/components/sidebar/NotificationsButton.js b/client/src/javascript/components/sidebar/NotificationsButton.js index df8188980..7d54cc3eb 100644 --- a/client/src/javascript/components/sidebar/NotificationsButton.js +++ b/client/src/javascript/components/sidebar/NotificationsButton.js @@ -56,10 +56,13 @@ const NOTIFICATIONS_PER_PAGE = 10; class NotificationsButton extends React.Component { tooltipRef = null; - state = { - isLoading: false, - paginationStart: 0, - }; + constructor(props) { + super(props); + this.state = { + isLoading: false, + paginationStart: 0, + }; + } componentDidMount() { NotificationStore.listen(EventTypes.NOTIFICATIONS_COUNT_CHANGE, this.handleNotificationCountChange); diff --git a/client/src/javascript/components/sidebar/SearchTorrents.js b/client/src/javascript/components/sidebar/SearchTorrents.js index f602cfb16..0cd7d8450 100644 --- a/client/src/javascript/components/sidebar/SearchTorrents.js +++ b/client/src/javascript/components/sidebar/SearchTorrents.js @@ -10,10 +10,13 @@ import TorrentFilterStore from '../../stores/TorrentFilterStore'; import UIActions from '../../actions/UIActions'; class SearchBox extends React.Component { - state = { - inputFieldKey: 0, - isSearchActive: false, - }; + constructor(props) { + super(props); + this.state = { + inputFieldKey: 0, + isSearchActive: false, + }; + } componentDidMount() { TorrentFilterStore.listen(EventTypes.UI_TORRENTS_FILTER_CLEAR, this.resetSearch); @@ -47,7 +50,7 @@ class SearchBox extends React.Component { const {inputFieldKey, isSearchActive} = this.state; let clearSearchButton = null; const classes = classnames({ - sidebar__item: true, + sidebar__item: true, // eslint-disable-line search: true, 'is-in-use': isSearchActive, }); diff --git a/client/src/javascript/components/sidebar/TransferData.js b/client/src/javascript/components/sidebar/TransferData.js index 8aa47a255..b2d3f8457 100644 --- a/client/src/javascript/components/sidebar/TransferData.js +++ b/client/src/javascript/components/sidebar/TransferData.js @@ -8,11 +8,18 @@ import TransferRateDetails from './TransferRateDetails'; import TransferRateGraph from './TransferRateGraph'; class TransferData extends React.Component { - state = { - graphInspectorPoint: null, - sidebarWidth: 0, + static defaultProps = { + historyLength: 1, }; + constructor(props) { + super(props); + this.state = { + graphInspectorPoint: null, + sidebarWidth: 0, + }; + } + handleGraphHover = (graphInspectorPoint) => { this.setState({graphInspectorPoint}); }; @@ -80,10 +87,6 @@ class TransferData extends React.Component { } } -TransferData.defaultProps = { - historyLength: 1, -}; - const ConnectedTransferData = connectStores(TransferData, () => { return [ { diff --git a/client/src/javascript/components/torrent-list/Torrent.js b/client/src/javascript/components/torrent-list/Torrent.js index 5a9631a2a..cfc0bd206 100644 --- a/client/src/javascript/components/torrent-list/Torrent.js +++ b/client/src/javascript/components/torrent-list/Torrent.js @@ -66,6 +66,10 @@ const TORRENT_PRIMITIVES_TO_OBSERVE = ['bytesDone', 'downRate', 'peersTotal', 's const TORRENT_ARRAYS_TO_OBSERVE = ['status', 'tags']; class Torrent extends React.Component { + static defaultProps = { + isCondensed: false, + }; + constructor() { super(); @@ -257,8 +261,4 @@ class Torrent extends React.Component { } } -Torrent.defaultProps = { - isCondensed: false, -}; - export default Torrent; diff --git a/client/src/javascript/components/torrent-list/TorrentDetail.js b/client/src/javascript/components/torrent-list/TorrentDetail.js index f74f781aa..82d0243b0 100644 --- a/client/src/javascript/components/torrent-list/TorrentDetail.js +++ b/client/src/javascript/components/torrent-list/TorrentDetail.js @@ -103,6 +103,11 @@ const transformers = { }; class TorrentDetail extends React.PureComponent { + static defaultProps = { + preventTransform: false, + className: '', + }; + render() { const {className, preventTransform, secondaryValue, slug, width} = this.props; let {icon, value} = this.props; @@ -128,9 +133,4 @@ class TorrentDetail extends React.PureComponent { } } -TorrentDetail.defaultProps = { - preventTransform: false, - className: '', -}; - export default TorrentDetail; diff --git a/client/src/javascript/components/torrent-list/TorrentList.js b/client/src/javascript/components/torrent-list/TorrentList.js index fcd654fc2..4254a9202 100644 --- a/client/src/javascript/components/torrent-list/TorrentList.js +++ b/client/src/javascript/components/torrent-list/TorrentList.js @@ -32,10 +32,13 @@ class TorrentListContainer extends React.Component { lastScrollLeft = 0; - state = { - tableScrollLeft: 0, - torrentListViewportSize: null, - }; + constructor(props) { + super(props); + this.state = { + tableScrollLeft: 0, + torrentListViewportSize: null, + }; + } componentDidMount() { TorrentStore.listen(EventTypes.UI_TORRENT_SELECTION_CHANGE, this.handleTorrentSelectionChange); diff --git a/client/src/javascript/stores/AlertStore.js b/client/src/javascript/stores/AlertStore.js index 50d5d4175..f3278469d 100644 --- a/client/src/javascript/stores/AlertStore.js +++ b/client/src/javascript/stores/AlertStore.js @@ -85,6 +85,8 @@ class AlertStoreClass extends BaseStore { const AlertStore = new AlertStoreClass(); -AlertStore.dispatcherID = AppDispatcher.register(() => {}); +AlertStore.dispatcherID = AppDispatcher.register(() => { + // do nothing. +}); export default AlertStore; diff --git a/client/src/javascript/stores/SettingsStore.js b/client/src/javascript/stores/SettingsStore.js index be20f555f..4ddbac0d9 100644 --- a/client/src/javascript/stores/SettingsStore.js +++ b/client/src/javascript/stores/SettingsStore.js @@ -63,7 +63,7 @@ class SettingsStoreClass extends BaseStore { return this.clientSettings[property]; } - return Object.assign({}, this.clientSettings); + return {...this.clientSettings}; } getFloodSettings(property) { @@ -71,7 +71,7 @@ class SettingsStoreClass extends BaseStore { return this.floodSettings[property]; } - return Object.assign({}, this.floodSettings); + return {...this.floodSettings}; } handleClientSettingsFetchSuccess(settings) { diff --git a/package-lock.json b/package-lock.json index 1e72f7039..a62159a0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1621,55 +1621,86 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz", - "integrity": "sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", + "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "1.13.0", - "eslint-utils": "^1.3.1", + "@typescript-eslint/experimental-utils": "2.34.0", "functional-red-black-tree": "^1.0.1", - "regexpp": "^2.0.1", - "tsutils": "^3.7.0" + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", - "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "1.13.0", - "eslint-scope": "^4.0.0" + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } } }, "@typescript-eslint/parser": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz", - "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", + "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "1.13.0", - "@typescript-eslint/typescript-estree": "1.13.0", - "eslint-visitor-keys": "^1.0.0" + "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "@typescript-eslint/typescript-estree": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", - "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", "dev": true, "requires": { - "lodash.unescape": "4.0.1", - "semver": "5.5.0" + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" }, "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -1997,10 +2028,21 @@ "dev": true }, "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } }, "ansi-html": { "version": "0.0.7", @@ -2627,9 +2669,9 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -4089,12 +4131,12 @@ "dev": true }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-width": { @@ -4901,115 +4943,54 @@ "dev": true }, "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.1.tgz", + "integrity": "sha512-MoqmF1if7Z0pZIEXA4ZF9PgtCXxWbfzfJM+3p+OYfhcrwcqhaCRb74DSnfzRl7e024xEiCRn5hCvfUbTf2sgFA==", "requires": { - "camelcase": "^5.3.1", + "camelcase": "^6.0.0", "cssesc": "^3.0.0", "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", + "loader-utils": "^2.0.0", "normalize-path": "^3.0.0", "postcss": "^7.0.32", "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-local-by-default": "^3.0.3", "postcss-modules-scope": "^2.2.0", "postcss-modules-values": "^3.0.0", "postcss-value-parser": "^4.1.0", "schema-utils": "^2.7.0", - "semver": "^6.3.0" + "semver": "^7.3.2" }, "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==" }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" } } }, @@ -6314,53 +6295,54 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.11", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", + "optionator": "^0.8.3", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", "table": "^5.2.3", - "text-table": "^0.2.0" + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "chalk": { @@ -6385,15 +6367,14 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "doctrine": { @@ -6405,6 +6386,40 @@ "esutils": "^2.0.2" } }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -6420,75 +6435,221 @@ "minimist": "^1.2.5" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true } } }, "eslint-config-airbnb": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz", - "integrity": "sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^13.2.0", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" - } - }, - "eslint-config-airbnb-base": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", - "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz", + "integrity": "sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==", "dev": true, "requires": { - "confusing-browser-globals": "^1.0.5", + "eslint-config-airbnb-base": "^14.2.0", "object.assign": "^4.1.0", - "object.entries": "^1.1.0" - } - }, - "eslint-config-prettier": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz", - "integrity": "sha512-sZwhSTHVVz78+kYD3t5pCWSYEdVSBR0PXnwjDRsUs8ytIrK8PLXw+6FKp8r3Z7rx4ZszdetWlXYKOHoUrrwPlA==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } - }, - "eslint-config-react-app": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-4.0.1.tgz", - "integrity": "sha512-ZsaoXUIGsK8FCi/x4lT2bZR5mMkL/Kgj+Lnw690rbvvUr/uiwgFiD8FcfAhkCycm7Xte6O5lYz4EqMx2vX7jgw==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.7" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "object.entries": "^1.1.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { - "ms": "2.0.0" - } + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz", + "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.9", + "object.assign": "^4.1.0", + "object.entries": "^1.1.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + } + } + }, + "eslint-config-prettier": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "ms": { "version": "2.0.0", @@ -6558,26 +6719,120 @@ } }, "eslint-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", - "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", + "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", "dev": true, "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "loader-utils": "^2.0.0", + "object-hash": "^2.0.3", + "schema-utils": "^2.6.5" }, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { - "glob": "^7.1.3" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -6661,12 +6916,12 @@ } }, "eslint-plugin-flowtype": { - "version": "2.46.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.46.1.tgz", - "integrity": "sha512-GJzxW7QwiIiW0ZA/+nY+N5TuK3es4Uei0D4xuy14dLZBYEFhM6e7c0J1u4+/iwfPqFtkr5a0oSApnSKF4U6KHw==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", + "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", "dev": true, "requires": { - "lodash": "^4.15.0" + "lodash": "^4.17.15" } }, "eslint-plugin-import": { @@ -6856,9 +7111,9 @@ } }, "eslint-plugin-react": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.5.tgz", - "integrity": "sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz", + "integrity": "sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg==", "dev": true, "requires": { "array-includes": "^3.1.1", @@ -6926,9 +7181,9 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -6957,9 +7212,9 @@ } }, "eslint-plugin-react-hooks": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", - "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", + "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", "dev": true }, "eslint-scope": { @@ -6973,9 +7228,9 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -6995,20 +7250,20 @@ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" }, "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } @@ -7483,9 +7738,9 @@ "dev": true }, "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -9016,53 +9271,6 @@ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", "requires": { "postcss": "^7.0.14" - }, - "dependencies": { - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "ieee754": { @@ -9196,85 +9404,83 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } + "ansi-regex": "^5.0.0" } } } @@ -9343,9 +9549,9 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -10181,101 +10387,41 @@ "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "requires": { - "immediate": "~3.0.5" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -10397,12 +10543,6 @@ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", - "dev": true - }, "loglevel": { "version": "1.6.8", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", @@ -10720,9 +10860,9 @@ } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "mimic-response": { @@ -11041,9 +11181,9 @@ "dev": true }, "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "mv": { @@ -11695,9 +11835,9 @@ } }, "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", "dev": true }, "object-inspect": { @@ -11862,9 +12002,9 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -11990,12 +12130,12 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "open": { @@ -12525,53 +12665,6 @@ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", "requires": { "postcss": "^7.0.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "postcss-modules-local-by-default": { @@ -12583,58 +12676,6 @@ "postcss": "^7.0.32", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "postcss-modules-scope": { @@ -12644,53 +12685,6 @@ "requires": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "postcss-modules-values": { @@ -12700,53 +12694,6 @@ "requires": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" - }, - "dependencies": { - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "postcss-selector-parser": { @@ -14045,9 +13992,9 @@ } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "regexpu-core": { @@ -14291,12 +14238,12 @@ "integrity": "sha512-MTPto7t44AawqmSbEmvMKoSMWPnxjaTuHf94s7RjWxuSGFN0o8/b+6yOwkaC50+Vihjsu6ODUEQR397gTMn57w==" }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, @@ -15406,23 +15353,13 @@ "dev": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } } } }, @@ -16832,6 +16769,12 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 32752c72b..3e80b9852 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "clipboard": "^2.0.6", "compression": "^1.7.3", "cookie-parser": "^1.4.5", - "css-loader": "^3.2.0", + "css-loader": "^4.2.1", "d3": "^5.16.0", "debug": "^4.1.1", "deep-equal": "^2.0.3", @@ -103,21 +103,20 @@ "@types/classnames": "^2.2.10", "@types/react": "^16.9.46", "@types/react-router-dom": "^5.1.5", - "@typescript-eslint/eslint-plugin": "^1.13.0", - "@typescript-eslint/parser": "^1.13.0", - "acorn": "^7.4.0", + "@typescript-eslint/eslint-plugin": "^2.34.0", + "@typescript-eslint/parser": "^2.34.0", "copy-webpack-plugin": "^6.0.3", - "eslint": "^5.16.0", - "eslint-config-airbnb": "^17.1.1", - "eslint-config-prettier": "^4.3.0", - "eslint-config-react-app": "^4.0.1", + "eslint": "^6.8.0", + "eslint-config-airbnb": "^18.2.0", + "eslint-config-prettier": "^6.11.0", + "eslint-config-react-app": "^5.2.1", "eslint-import-resolver-webpack": "^0.12.2", - "eslint-loader": "^2.2.1", - "eslint-plugin-flowtype": "2.46.1", + "eslint-loader": "^4.0.2", + "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-import": "^2.22.0", "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.5", - "eslint-plugin-react-hooks": "^1.7.0", + "eslint-plugin-react": "^7.20.6", + "eslint-plugin-react-hooks": "^2.5.1", "glob": "^7.1.6", "jsdoc": "^3.6.5", "minami": "^1.2.3", diff --git a/server/services/notificationService.js b/server/services/notificationService.js index 82781e1ff..7c6ced0c8 100644 --- a/server/services/notificationService.js +++ b/server/services/notificationService.js @@ -13,7 +13,7 @@ class NotificationService extends BaseService { constructor(...serviceConfig) { super(...serviceConfig); - this.count = Object.assign({}, INITIAL_COUNT_VALUE); + this.count = {...INITIAL_COUNT_VALUE}; this.ready = false; this.db = this.loadDatabase(); @@ -25,8 +25,8 @@ class NotificationService extends BaseService { addNotification(notifications) { notifications = _.castArray(notifications); - this.count.total = this.count.total + notifications.length; - this.count.unread = this.count.unread + notifications.length; + this.count.total += notifications.length; + this.count.unread += notifications.length; const timestamp = Date.now(); const notificationsToInsert = notifications.map((notification) => ({ @@ -46,7 +46,7 @@ class NotificationService extends BaseService { return; } - this.count = Object.assign({}, INITIAL_COUNT_VALUE); + this.count = {...INITIAL_COUNT_VALUE}; callback(); }); @@ -57,7 +57,7 @@ class NotificationService extends BaseService { countNotifications() { this.db.find({}, (err, docs) => { if (err) { - this.count = Object.assign({}, INITIAL_COUNT_VALUE); + this.count = {...INITIAL_COUNT_VALUE}; } else { docs.forEach((notification) => { if (notification.read) { diff --git a/server/services/taxonomyService.js b/server/services/taxonomyService.js index 1f42deca3..9c917d8db 100644 --- a/server/services/taxonomyService.js +++ b/server/services/taxonomyService.js @@ -57,9 +57,9 @@ class TaxonomyService extends BaseService { } handleProcessTorrentListStart() { - this.lastStatusCounts = Object.assign({}, this.statusCounts); - this.lastTagCounts = Object.assign({}, this.tagCounts); - this.lastTrackerCounts = Object.assign({}, this.trackerCounts); + this.lastStatusCounts = {...this.statusCounts}; + this.lastTagCounts = {...this.tagCounts}; + this.lastTrackerCounts = {...this.trackerCounts}; torrentStatusMap.statusShorthand.forEach((statusShorthand) => { this.statusCounts[torrentStatusMap[statusShorthand]] = 0; From 050d86752e668e82464a884f2164f7ea038c1e30 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 16:02:47 +0800 Subject: [PATCH 046/651] dependencies: "npm update" (patch) --- package-lock.json | 84 +++++++++++++++++++++-------------------------- package.json | 4 +-- 2 files changed, 39 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index a62159a0f..87511e5c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1191,18 +1191,18 @@ } }, "@formatjs/intl-datetimeformat": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.3.1.tgz", - "integrity": "sha512-i1H3hflcILP40ETiaaWcmLOdkt/iDbfn/2Z8aCWss/IgP2b7r/mCXbgaRJh1dh6pCpmbLp5g4lpIrkvUKuhUtA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.4.0.tgz", + "integrity": "sha512-EDVt4q+qJZOJOyQPg1WHRHTVL4N/iiapLVGZLdEFEa8AFfjLvHt5DYx7jN8qz5ZqRZVP3AP6M4ObeTl54y3mPw==", "requires": { "@formatjs/intl-getcanonicallocales": "^1.3.1", "@formatjs/intl-utils": "^3.8.2" } }, "@formatjs/intl-displaynames": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-3.1.7.tgz", - "integrity": "sha512-a0aOuCa8HUEq/vnc3cT88Ocww9tC6KbXhgfk4OzB38acFBWi34lAHTEC34ZmkJg1ASdWkbXOi18WdXNzEZCXZg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-3.2.0.tgz", + "integrity": "sha512-2F3e/CflgvUZkOghf4z4aGr9hz683BAaz6vhP2Mvp1nJoIUvMovVgMQrnn4ChmyhGzfJB4vJCQKd/N/KCRWNRg==", "requires": { "@formatjs/intl-utils": "^3.8.2" } @@ -1216,25 +1216,25 @@ } }, "@formatjs/intl-listformat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-4.0.0.tgz", - "integrity": "sha512-ptWeK9LSuvWZswZP0NpGkchoBOSi+brrbGC2MxakitkXb6o1smDtnLnQP0Ai/yv0/xR1bV+D8n9o++ycUgXwaA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-4.1.0.tgz", + "integrity": "sha512-pzbYcf+7XrPakWcxFtr7CI3bRfIjdljO6RqyOyyZuoEl6ioDLlt9uP4Be29r/VOLmH4ZBRTQHHZrMXWnmWY/8Q==", "requires": { "@formatjs/intl-utils": "^3.8.2" } }, "@formatjs/intl-numberformat": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.3.3.tgz", - "integrity": "sha512-keU4arK7WoQMMfUuXzVP5nPzKFXrNpcNne/58OxxDxoJfqiv4vHiBjHHfPzy5xf+1rgnoplaV1mabNt1HTPtwA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.4.0.tgz", + "integrity": "sha512-gl8xUp745Hx8IgmofSi3AZJmbEBwxfNFgimeaIb2nlflVcIhtIo0RSyl93Es2V1+0R2Atg4gLC5vox3wGgz5/w==", "requires": { "@formatjs/intl-utils": "^3.8.2" } }, "@formatjs/intl-relativetimeformat": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.0.0.tgz", - "integrity": "sha512-QQpQezSY8Q5H/PZVvPAs8SFhoUVXM52le+UgKAYTyAkeC4lr+DkX4ZP7Msateu81K1jFB8jhxcSOUEzGie7g2w==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.1.0.tgz", + "integrity": "sha512-hU2+hEuC2bIPfmByxFPMZ9ZJUd3fYxfmAmmmbGt6ILes9ZLwWoTXFANEQ7YNwnOv1w/fAfhQsSqg6RgJSxtGYA==", "requires": { "@formatjs/intl-utils": "^3.8.2" } @@ -9566,20 +9566,20 @@ "dev": true }, "intl-messageformat": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.2.0.tgz", - "integrity": "sha512-mdASJPZpKfhbM//NLNIETArWgVL06j5M9ZdhgiKBO4XayS4GQHnXW+zVUE5iAwHcGZIKzvdWCj4D4kmNzUmEzA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.2.1.tgz", + "integrity": "sha512-MV7LJidaqpT+eKj0FTyeaF5lmLlL6U+SI+D+jW1WZC72kUrX8m3OAavSvaxW0w4FcAphNpwDu90ZrQF2Syqmng==", "requires": { "fast-memoize": "^2.5.2", - "intl-messageformat-parser": "^5.3.7" + "intl-messageformat-parser": "^5.3.8" } }, "intl-messageformat-parser": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.3.7.tgz", - "integrity": "sha512-83C+eODXu/zfR35bKjSz/HKEGkNSHbsF1WOuZDgFs/TudaEuVIZ8pstQYFyY0CIuCGXomcSevrFW1d4y7nW5xw==", + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.3.8.tgz", + "integrity": "sha512-BxZp3IDmhURMOOK3eXgX2mA6Q3ytcLh0gaS0JTTQp1rsv1sMs+vGtFZHrmGk2HX3D3cnGiXtPrvG7SaeiWtODg==", "requires": { - "@formatjs/intl-numberformat": "^5.3.3" + "@formatjs/intl-numberformat": "^5.4.0" } }, "invariant": { @@ -13323,9 +13323,9 @@ } }, "react-dropzone": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.2.tgz", - "integrity": "sha512-/Wde9Il1aJ1FtWllg3N2taIeJh4aftx6UGUG8R1TmLnZit2RnDcEjcKwEEbKwgLXTTh8QQpiZWQJq45jTy1jCA==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.3.tgz", + "integrity": "sha512-+MoMOoKZfkZ9i1+qEFl2ZU29AB/c9K2bFxyACqGynguJunmqO+k2PJ2AcuiH51xVNl9R7q/x5QdBaIWb6RtoSw==", "requires": { "attr-accept": "^2.0.0", "file-selector": "^0.1.12", @@ -13339,32 +13339,22 @@ "dev": true }, "react-intl": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.4.7.tgz", - "integrity": "sha512-oiR/w6KdVTFGa2LlycQYfumbbE0/YRymhmvj8diGYo3vvDjlZjjB1V/bzaGNWPhbNWwJXeMH+WHVylATHMCYbQ==", - "requires": { - "@formatjs/intl-datetimeformat": "^2.3.1", - "@formatjs/intl-displaynames": "^3.1.7", - "@formatjs/intl-listformat": "^4.0.0", - "@formatjs/intl-numberformat": "^5.3.3", - "@formatjs/intl-relativetimeformat": "^7.0.0", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.4.8.tgz", + "integrity": "sha512-UuTb0ztfQl0+Bs8CkDDOPPps35HNrWxrU8SvfzgmnVQotuRJAdsLS+4gWslDTiUrk6qSfla4R03BSvjivAmMFg==", + "requires": { + "@formatjs/intl-datetimeformat": "^2.4.0", + "@formatjs/intl-displaynames": "^3.2.0", + "@formatjs/intl-listformat": "^4.1.0", + "@formatjs/intl-numberformat": "^5.4.0", + "@formatjs/intl-relativetimeformat": "^7.1.0", "@formatjs/intl-utils": "^3.8.2", "@types/hoist-non-react-statics": "^3.3.1", "fast-memoize": "^2.5.2", "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "^9.2.0", - "intl-messageformat-parser": "^5.3.7", + "intl-messageformat": "^9.2.1", + "intl-messageformat-parser": "^5.3.8", "shallow-equal": "^1.2.1" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - } } }, "react-is": { diff --git a/package.json b/package.json index 3e80b9852..dd22ad822 100644 --- a/package.json +++ b/package.json @@ -78,8 +78,8 @@ "react-dnd": "^11.1.3", "react-dnd-html5-backend": "^11.1.3", "react-dom": "^16.13.1", - "react-dropzone": "^11.0.2", - "react-intl": "^5.4.7", + "react-dropzone": "^11.0.3", + "react-intl": "^5.4.8", "react-markdown": "^4.3.1", "react-measure": "^2.3.0", "react-router": "^5.2.0", From 6f42124d1f1c738a2f0d41ead43a02977f6bbcdc Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 16:14:15 +0800 Subject: [PATCH 047/651] SortableList: enable drag and drop for touch devices --- .../components/general/SortableList.js | 6 ++-- package-lock.json | 32 +++++++++++++++++++ package.json | 2 ++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/client/src/javascript/components/general/SortableList.js b/client/src/javascript/components/general/SortableList.js index 832352a2d..aea5ce45a 100644 --- a/client/src/javascript/components/general/SortableList.js +++ b/client/src/javascript/components/general/SortableList.js @@ -1,7 +1,7 @@ import classnames from 'classnames'; -import {DndProvider} from 'react-dnd'; +import {DndProvider} from 'react-dnd-multi-backend'; +import HTML5toTouch from 'react-dnd-multi-backend/dist/esm/HTML5toTouch'; import {injectIntl} from 'react-intl'; -import {HTML5Backend} from 'react-dnd-html5-backend'; import React from 'react'; import SortableListItemDragLayer from './SortableListItemDragLayer'; @@ -111,7 +111,7 @@ class SortableList extends React.Component { const DndSortableList = (props) => { return ( - + ); diff --git a/package-lock.json b/package-lock.json index 87511e5c1..34da0e265 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5874,6 +5874,11 @@ "redux": "^4.0.4" } }, + "dnd-multi-backend": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dnd-multi-backend/-/dnd-multi-backend-6.0.0.tgz", + "integrity": "sha512-qfUO4V0IACs24xfE9m9OUnwIzoL+SWzSiFbKVIHE0pFddJeZ93BZOdHS1XEYr8X3HNh+CfnfjezXgOMgjvh74g==" + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -13311,6 +13316,33 @@ "dnd-core": "^11.1.3" } }, + "react-dnd-multi-backend": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/react-dnd-multi-backend/-/react-dnd-multi-backend-6.0.2.tgz", + "integrity": "sha512-SwpqRv0HkJYu244FbHf9NbvGzGy14Ir9wIAhm909uvOVaHgsOq6I1THMSWSgpwUI31J3Bo5uS19tuvGpVPjzZw==", + "requires": { + "dnd-multi-backend": "^6.0.0", + "prop-types": "^15.7.2", + "react-dnd-preview": "^6.0.2" + } + }, + "react-dnd-preview": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/react-dnd-preview/-/react-dnd-preview-6.0.2.tgz", + "integrity": "sha512-F2+uK4Be+q+7mZfNh9kaZols7wp1hX6G7UBTVaTpDsBpMhjFvY7/v7odxYSerSFBShh23MJl33a4XOVRFj1zoQ==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "react-dnd-touch-backend": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/react-dnd-touch-backend/-/react-dnd-touch-backend-11.1.3.tgz", + "integrity": "sha512-8lz4fxfYwUuJ6Y2seQYwh8+OfwKcbBX0CIbz7AwXfBYz54Wg2nIDU6CP8Dyybt/Wyx4D3oXmTPEaOMB62uqJvQ==", + "requires": { + "@react-dnd/invariant": "^2.0.0", + "dnd-core": "^11.1.3" + } + }, "react-dom": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", diff --git a/package.json b/package.json index dd22ad822..7f0492918 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,9 @@ "react": "^16.13.1", "react-custom-scrollbars": "^4.2.1", "react-dnd": "^11.1.3", + "react-dnd-multi-backend": "^6.0.2", "react-dnd-html5-backend": "^11.1.3", + "react-dnd-touch-backend": "^11.1.3", "react-dom": "^16.13.1", "react-dropzone": "^11.0.3", "react-intl": "^5.4.8", From f4a5dab7f6435496effbb6be82a8680b3fbbc2d2 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 16:28:10 +0800 Subject: [PATCH 048/651] SortableList: remove drag layer Rearrangement of elements happens with mouse movement so there is already a good indicator about what element is being dragged. We don't need this drag layer. UX-wise we don't want to give users a false sense that elements can be dragged outside of the table. Plus, this fixes some other UX issues when element is dragged outside of bounds (thus might require scrolling) unintentionally and makes UX on touch devices the same as desktop devices. Some performance improvements are also observed. --- .../components/general/SortableList.js | 13 ----- .../general/SortableListItemDragLayer.js | 57 ------------------- 2 files changed, 70 deletions(-) delete mode 100644 client/src/javascript/components/general/SortableListItemDragLayer.js diff --git a/client/src/javascript/components/general/SortableList.js b/client/src/javascript/components/general/SortableList.js index aea5ce45a..395cac4bf 100644 --- a/client/src/javascript/components/general/SortableList.js +++ b/client/src/javascript/components/general/SortableList.js @@ -4,7 +4,6 @@ import HTML5toTouch from 'react-dnd-multi-backend/dist/esm/HTML5toTouch'; import {injectIntl} from 'react-intl'; import React from 'react'; -import SortableListItemDragLayer from './SortableListItemDragLayer'; import SortableListItem from './SortableListItem'; const methodsToBind = ['handleDrop', 'handleMove', 'handleMouseDown']; @@ -15,7 +14,6 @@ class SortableList extends React.Component { this.sortableListRef = null; this.state = { - listOffset: null, items: props.items, }; @@ -35,12 +33,6 @@ class SortableList extends React.Component { } handleMouseDown(event) { - if (this.sortableListRef != null) { - this.setState({ - listOffset: this.sortableListRef.getBoundingClientRect(), - }); - } - if (this.props.onMouseDown) { this.props.onMouseDown(event); } @@ -98,11 +90,6 @@ class SortableList extends React.Component { ref={(ref) => { this.sortableListRef = ref; }}> - {this.getItemList()}
); diff --git a/client/src/javascript/components/general/SortableListItemDragLayer.js b/client/src/javascript/components/general/SortableListItemDragLayer.js deleted file mode 100644 index 1ca868c0f..000000000 --- a/client/src/javascript/components/general/SortableListItemDragLayer.js +++ /dev/null @@ -1,57 +0,0 @@ -import {DragLayer} from 'react-dnd'; -import {injectIntl} from 'react-intl'; -import PropTypes from 'prop-types'; -import React, {Component} from 'react'; - -const layerStyles = { - position: 'absolute', - pointerEvents: 'none', - zIndex: 100, - left: 0, - top: 0, - width: '100%', - height: '100%', -}; - -class SortableListItemDragLayer extends Component { - static propTypes = { - clientOffset: PropTypes.object, - differenceFromInitialOffset: PropTypes.object, - isDragging: PropTypes.bool.isRequired, - item: PropTypes.object, - }; - - getItemStyles = () => { - const {clientOffset, differenceFromInitialOffset, listOffset} = this.props; - - if (!clientOffset || !listOffset) { - return {display: 'none'}; - } - - const {x} = differenceFromInitialOffset; - const y = clientOffset.y - listOffset.top - 15; - - return {transform: `translate(${x}px, ${y}px)`}; - }; - - render() { - const {item, isDragging} = this.props; - - if (!isDragging) { - return null; - } - - return ( -
-
{this.props.renderItem({...item, dragIndicator: true})}
-
- ); - } -} - -export default DragLayer((monitor) => ({ - clientOffset: monitor.getClientOffset(), - differenceFromInitialOffset: monitor.getDifferenceFromInitialOffset(), - isDragging: monitor.isDragging(), - item: monitor.getItem(), -}))(injectIntl(SortableListItemDragLayer)); From 47b2053ac3a6ce78ba57f9396b3487be69877b63 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 30 Sep 2019 21:18:07 +0200 Subject: [PATCH 049/651] rTorrentDeserializer: unescape XML special chars Bug: Flood-UI/flood#843, jesec/flood#13 Cherry-Pick: Flood-UI/flood#842 Signed-off-by: Jesse Chan --- server/util/rTorrentDeserializer.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/util/rTorrentDeserializer.js b/server/util/rTorrentDeserializer.js index a230207dc..db638f039 100644 --- a/server/util/rTorrentDeserializer.js +++ b/server/util/rTorrentDeserializer.js @@ -7,6 +7,14 @@ let dataIsVal; let endOfResponse; let rejectCallback; +const unescapeXMLString = (value) => + value + .replace(/&/g, '&') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/'/g, "'") + .replace(/"/g, '"'); + const openTag = (elementName) => { if (elementName === 'array' || elementName === 'struct') { stackMarks.push(dataStack.length); @@ -16,7 +24,7 @@ const openTag = (elementName) => { }; const onText = (value) => { - tmpData.push(value); + tmpData.push(unescapeXMLString(value)); }; const onError = (err) => { From 916f2e51e82217c81a14c0be60da8b9e618aaf74 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 21:07:14 +0800 Subject: [PATCH 050/651] removeTorrents: migrate from rimraf to rmdir(recursive) --- package-lock.json | 1 + package.json | 1 - server/services/clientGatewayService.js | 14 +++++++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 34da0e265..b0de19f1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14291,6 +14291,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "requires": { "glob": "^7.1.3" } diff --git a/package.json b/package.json index 7f0492918..a24bf82cf 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,6 @@ "react-router-dom": "^5.2.0", "react-transition-group": "^4.4.1", "ress": "^3.0.0", - "rimraf": "^3.0.2", "run-series": "^1.1.6", "sass-loader": "^9.0.3", "saxen": "^8.1.2", diff --git a/server/services/clientGatewayService.js b/server/services/clientGatewayService.js index 39dd02905..577015958 100644 --- a/server/services/clientGatewayService.js +++ b/server/services/clientGatewayService.js @@ -1,5 +1,5 @@ const path = require('path'); -const rimraf = require('rimraf'); +const fs = require('fs'); const BaseService = require('./BaseService'); const clientGatewayServiceEvents = require('../constants/clientGatewayServiceEvents'); @@ -102,11 +102,15 @@ class ClientGatewayService extends BaseService { }, []); filesToDelete.forEach((file) => { - rimraf(file, {disableGlob: true}, (error) => { - if (error) { - console.error(`Error deleting file: ${file}\n${error}`); + try { + if (fs.lstatSync(file).isDirectory()) { + fs.rmdirSync(file, {recursive: true}); + } else { + fs.unlinkSync(file); } - }); + } catch (error) { + console.error(`Error deleting file: ${file}\n${error}`); + } }); } From 24dff9a0579af0ee99840c004e51a40ee63c8e70 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 13 Aug 2020 21:26:10 +0800 Subject: [PATCH 051/651] client: import flood-ui-kit flood-ui-kit is highly tied to flood and no other project uses it for now. It doesn't worth the effort to maintain it in a separate package. This allows us to more easily tweak the UI and sync the changes. Repo: jfurrow/flood-ui-kit Revision: 42d472085d127e58602595921c6279106c41fc7d Signed-off-by: Jesse Chan --- .../javascript/components/auth/AuthForm.js | 2 +- .../general/ClientConnectionInterruption.js | 12 +- .../general/GlobalContextMenuMountPoint.js | 2 +- .../RtorrentConnectionTypeSelection.js | 2 +- .../general/filesystem/DirectoryFileList.js | 2 +- .../general/filesystem/DirectoryTreeNode.js | 2 +- .../general/filesystem/TorrentDestination.js | 2 +- .../general/form-elements/TextboxRepeater.js | 2 +- .../components/modals/ModalActions.js | 2 +- .../add-torrents-modal/AddTorrentsByFile.js | 2 +- .../add-torrents-modal/AddTorrentsByURL.js | 3 +- .../modals/feeds-modal/DownloadRulesTab.js | 8 +- .../components/modals/feeds-modal/FeedsTab.js | 8 +- .../move-torrents-modal/MoveTorrentsModal.js | 2 +- .../RemoveTorrentsModal.js | 2 +- .../modals/set-tags-modal/SetTagsModal.js | 2 +- .../modals/settings-modal/AuthTab.js | 2 +- .../modals/settings-modal/BandwidthTab.js | 2 +- .../modals/settings-modal/ConnectivityTab.js | 2 +- .../modals/settings-modal/DiskUsageTab.js | 2 +- .../modals/settings-modal/ResourcesTab.js | 2 +- .../components/modals/settings-modal/UITab.js | 2 +- .../torrent-details-modal/TorrentFiles.js | 2 +- .../torrent-details-modal/TorrentMediainfo.js | 2 +- .../components/torrent-list/TorrentList.js | 2 +- client/src/javascript/ui/components/Button.js | 111 +++++++ .../src/javascript/ui/components/Checkbox.js | 12 + .../src/javascript/ui/components/Container.js | 15 + .../javascript/ui/components/ContextMenu.js | 125 ++++++++ .../ui/components/ContextMenuItem.js | 19 ++ client/src/javascript/ui/components/FadeIn.js | 14 + client/src/javascript/ui/components/Form.js | 67 ++++ .../ui/components/FormElementAddon.js | 36 +++ .../src/javascript/ui/components/FormError.js | 21 ++ .../src/javascript/ui/components/FormGroup.js | 20 ++ .../src/javascript/ui/components/FormRow.js | 24 ++ .../javascript/ui/components/FormRowGroup.js | 9 + .../javascript/ui/components/FormRowItem.js | 40 +++ .../src/javascript/ui/components/Overlay.js | 30 ++ client/src/javascript/ui/components/Panel.js | 27 ++ .../javascript/ui/components/PanelContent.js | 24 ++ .../javascript/ui/components/PanelFooter.js | 18 ++ .../javascript/ui/components/PanelHeader.js | 24 ++ client/src/javascript/ui/components/Portal.js | 33 ++ client/src/javascript/ui/components/Radio.js | 18 ++ client/src/javascript/ui/components/Select.js | 249 +++++++++++++++ .../javascript/ui/components/SelectItem.js | 46 +++ .../src/javascript/ui/components/Textbox.js | 73 +++++ .../javascript/ui/components/ToggleInput.js | 138 +++++++++ .../ui/components/TransitionGroup.js | 31 ++ .../javascript/ui/components/util/forms.js | 57 ++++ .../ui/constants/transitionTimeouts.js | 11 + client/src/javascript/ui/icons/Checkmark.js | 21 ++ client/src/javascript/ui/icons/Chevron.js | 17 ++ client/src/javascript/ui/icons/Circle.js | 18 ++ client/src/javascript/ui/icons/LoadingRing.js | 35 +++ client/src/javascript/ui/icons/Search.js | 14 + client/src/javascript/ui/index.js | 49 +++ client/src/sass/style.scss | 2 +- client/src/sass/ui/components/button.scss | 286 ++++++++++++++++++ client/src/sass/ui/components/container.scss | 3 + .../src/sass/ui/components/context-menu.scss | 96 ++++++ .../src/sass/ui/components/element-addon.scss | 106 +++++++ client/src/sass/ui/components/error.scss | 17 ++ client/src/sass/ui/components/form.scss | 164 ++++++++++ client/src/sass/ui/components/icon.scss | 42 +++ client/src/sass/ui/components/input.scss | 239 +++++++++++++++ client/src/sass/ui/components/overlay.scss | 17 ++ client/src/sass/ui/components/panel.scss | 112 +++++++ client/src/sass/ui/components/portal.scss | 5 + client/src/sass/ui/components/section.scss | 16 + client/src/sass/ui/components/select.scss | 98 ++++++ client/src/sass/ui/config/border-radius.scss | 3 + client/src/sass/ui/config/colors.scss | 49 +++ client/src/sass/ui/config/font-size.scss | 9 + client/src/sass/ui/config/spacing.scss | 20 ++ client/src/sass/ui/config/speed.scss | 9 + client/src/sass/ui/config/variables.scss | 52 ++++ client/src/sass/ui/index.scss | 22 ++ client/src/sass/ui/util/box-shadows.scss | 27 ++ package-lock.json | 75 ----- package.json | 1 - 82 files changed, 2871 insertions(+), 118 deletions(-) create mode 100644 client/src/javascript/ui/components/Button.js create mode 100644 client/src/javascript/ui/components/Checkbox.js create mode 100644 client/src/javascript/ui/components/Container.js create mode 100644 client/src/javascript/ui/components/ContextMenu.js create mode 100644 client/src/javascript/ui/components/ContextMenuItem.js create mode 100644 client/src/javascript/ui/components/FadeIn.js create mode 100644 client/src/javascript/ui/components/Form.js create mode 100644 client/src/javascript/ui/components/FormElementAddon.js create mode 100644 client/src/javascript/ui/components/FormError.js create mode 100644 client/src/javascript/ui/components/FormGroup.js create mode 100644 client/src/javascript/ui/components/FormRow.js create mode 100644 client/src/javascript/ui/components/FormRowGroup.js create mode 100644 client/src/javascript/ui/components/FormRowItem.js create mode 100644 client/src/javascript/ui/components/Overlay.js create mode 100644 client/src/javascript/ui/components/Panel.js create mode 100644 client/src/javascript/ui/components/PanelContent.js create mode 100644 client/src/javascript/ui/components/PanelFooter.js create mode 100644 client/src/javascript/ui/components/PanelHeader.js create mode 100644 client/src/javascript/ui/components/Portal.js create mode 100644 client/src/javascript/ui/components/Radio.js create mode 100644 client/src/javascript/ui/components/Select.js create mode 100644 client/src/javascript/ui/components/SelectItem.js create mode 100644 client/src/javascript/ui/components/Textbox.js create mode 100644 client/src/javascript/ui/components/ToggleInput.js create mode 100644 client/src/javascript/ui/components/TransitionGroup.js create mode 100644 client/src/javascript/ui/components/util/forms.js create mode 100644 client/src/javascript/ui/constants/transitionTimeouts.js create mode 100644 client/src/javascript/ui/icons/Checkmark.js create mode 100644 client/src/javascript/ui/icons/Chevron.js create mode 100644 client/src/javascript/ui/icons/Circle.js create mode 100644 client/src/javascript/ui/icons/LoadingRing.js create mode 100644 client/src/javascript/ui/icons/Search.js create mode 100644 client/src/javascript/ui/index.js create mode 100644 client/src/sass/ui/components/button.scss create mode 100644 client/src/sass/ui/components/container.scss create mode 100644 client/src/sass/ui/components/context-menu.scss create mode 100644 client/src/sass/ui/components/element-addon.scss create mode 100644 client/src/sass/ui/components/error.scss create mode 100644 client/src/sass/ui/components/form.scss create mode 100644 client/src/sass/ui/components/icon.scss create mode 100644 client/src/sass/ui/components/input.scss create mode 100644 client/src/sass/ui/components/overlay.scss create mode 100644 client/src/sass/ui/components/panel.scss create mode 100644 client/src/sass/ui/components/portal.scss create mode 100644 client/src/sass/ui/components/section.scss create mode 100644 client/src/sass/ui/components/select.scss create mode 100644 client/src/sass/ui/config/border-radius.scss create mode 100644 client/src/sass/ui/config/colors.scss create mode 100644 client/src/sass/ui/config/font-size.scss create mode 100644 client/src/sass/ui/config/spacing.scss create mode 100644 client/src/sass/ui/config/speed.scss create mode 100644 client/src/sass/ui/config/variables.scss create mode 100644 client/src/sass/ui/index.scss create mode 100644 client/src/sass/ui/util/box-shadows.scss diff --git a/client/src/javascript/components/auth/AuthForm.js b/client/src/javascript/components/auth/AuthForm.js index fe21076f0..e93c3ab14 100644 --- a/client/src/javascript/components/auth/AuthForm.js +++ b/client/src/javascript/components/auth/AuthForm.js @@ -1,7 +1,7 @@ import {injectIntl} from 'react-intl'; import React from 'react'; -import {Button, Form, FormError, FormRow, Panel, PanelContent, PanelHeader, PanelFooter, Textbox} from 'flood-ui-kit'; +import {Button, Form, FormError, FormRow, Panel, PanelContent, PanelHeader, PanelFooter, Textbox} from '../../ui'; import AuthActions from '../../actions/AuthActions'; import AuthStore from '../../stores/AuthStore'; import connectStores from '../../util/connectStores'; diff --git a/client/src/javascript/components/general/ClientConnectionInterruption.js b/client/src/javascript/components/general/ClientConnectionInterruption.js index c4a509cec..217a9127d 100644 --- a/client/src/javascript/components/general/ClientConnectionInterruption.js +++ b/client/src/javascript/components/general/ClientConnectionInterruption.js @@ -1,17 +1,7 @@ -import { - Button, - Form, - FormError, - FormRow, - FormRowItem, - Panel, - PanelContent, - PanelHeader, - PanelFooter, -} from 'flood-ui-kit'; import {FormattedMessage} from 'react-intl'; import React from 'react'; +import {Button, Form, FormError, FormRow, FormRowItem, Panel, PanelContent, PanelHeader, PanelFooter} from '../../ui'; import AuthActions from '../../actions/AuthActions'; import AuthStore from '../../stores/AuthStore'; import Checkmark from '../icons/Checkmark'; diff --git a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js index 1205acf88..be80962f9 100644 --- a/client/src/javascript/components/general/GlobalContextMenuMountPoint.js +++ b/client/src/javascript/components/general/GlobalContextMenuMountPoint.js @@ -1,8 +1,8 @@ import classnames from 'classnames'; -import {ContextMenu} from 'flood-ui-kit'; import PropTypes from 'prop-types'; import React from 'react'; +import {ContextMenu} from '../../ui'; import EventTypes from '../../constants/EventTypes'; import UIActions from '../../actions/UIActions'; import UIStore from '../../stores/UIStore'; diff --git a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js index 3206510e1..c2723acc3 100644 --- a/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js +++ b/client/src/javascript/components/general/RtorrentConnectionTypeSelection.js @@ -1,7 +1,7 @@ -import {FormGroup, FormRow, Radio, Textbox} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import PropTypes from 'prop-types'; import React, {Component} from 'react'; +import {FormGroup, FormRow, Radio, Textbox} from '../../ui'; class RtorrentConnectionTypeSelection extends Component { static propTypes = { diff --git a/client/src/javascript/components/general/filesystem/DirectoryFileList.js b/client/src/javascript/components/general/filesystem/DirectoryFileList.js index ee0e006d7..1c46114cc 100644 --- a/client/src/javascript/components/general/filesystem/DirectoryFileList.js +++ b/client/src/javascript/components/general/filesystem/DirectoryFileList.js @@ -1,8 +1,8 @@ -import {Checkbox} from 'flood-ui-kit'; import classnames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; +import {Checkbox} from '../../../ui'; import File from '../../icons/File'; import PriorityMeter from './PriorityMeter'; import Size from '../Size'; diff --git a/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js b/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js index dcebe4723..a34ec4d9e 100644 --- a/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js +++ b/client/src/javascript/components/general/filesystem/DirectoryTreeNode.js @@ -1,8 +1,8 @@ -import {Checkbox} from 'flood-ui-kit'; import classnames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; +import {Checkbox} from '../../../ui'; import FolderClosedSolid from '../../icons/FolderClosedSolid'; import FolderOpenSolid from '../../icons/FolderOpenSolid'; // TODO: Fix this circular dependency diff --git a/client/src/javascript/components/general/filesystem/TorrentDestination.js b/client/src/javascript/components/general/filesystem/TorrentDestination.js index deaa57cdf..0784992fe 100644 --- a/client/src/javascript/components/general/filesystem/TorrentDestination.js +++ b/client/src/javascript/components/general/filesystem/TorrentDestination.js @@ -1,8 +1,8 @@ import _ from 'lodash'; -import {Checkbox, ContextMenu, FormElementAddon, FormRow, FormRowGroup, Portal, Textbox} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Checkbox, ContextMenu, FormElementAddon, FormRow, FormRowGroup, Portal, Textbox} from '../../../ui'; import EventTypes from '../../../constants/EventTypes'; import FilesystemBrowser from './FilesystemBrowser'; import Search from '../../icons/Search'; diff --git a/client/src/javascript/components/general/form-elements/TextboxRepeater.js b/client/src/javascript/components/general/form-elements/TextboxRepeater.js index 62d53bc5d..a5b28fe71 100644 --- a/client/src/javascript/components/general/form-elements/TextboxRepeater.js +++ b/client/src/javascript/components/general/form-elements/TextboxRepeater.js @@ -1,6 +1,6 @@ -import {FormElementAddon, FormRow, FormRowGroup, Textbox} from 'flood-ui-kit'; import React from 'react'; +import {FormElementAddon, FormRow, FormRowGroup, Textbox} from '../../../ui'; import AddMini from '../../icons/AddMini'; import RemoveMini from '../../icons/RemoveMini'; diff --git a/client/src/javascript/components/modals/ModalActions.js b/client/src/javascript/components/modals/ModalActions.js index 306c2cdde..26667b7ee 100644 --- a/client/src/javascript/components/modals/ModalActions.js +++ b/client/src/javascript/components/modals/ModalActions.js @@ -1,7 +1,7 @@ -import {Button, Checkbox} from 'flood-ui-kit'; import classnames from 'classnames'; import React from 'react'; +import {Button, Checkbox} from '../../ui'; import UIActions from '../../actions/UIActions'; export default class ModalActions extends React.Component { diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js index efe0a31da..8113f88a5 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByFile.js @@ -1,8 +1,8 @@ import {FormattedMessage, injectIntl} from 'react-intl'; -import {Form, FormRow, FormRowItem, Textbox} from 'flood-ui-kit'; import Dropzone from 'react-dropzone'; import React from 'react'; +import {Form, FormRow, FormRowItem, Textbox} from '../../../ui'; import AddTorrentsActions from './AddTorrentsActions'; import Close from '../../icons/Close'; import File from '../../icons/File'; diff --git a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js index 11f822188..de3ff76f2 100644 --- a/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js +++ b/client/src/javascript/components/modals/add-torrents-modal/AddTorrentsByURL.js @@ -1,7 +1,8 @@ -import {Form, FormRow, Textbox} from 'flood-ui-kit'; import {injectIntl} from 'react-intl'; import React from 'react'; +import {Form, FormRow, Textbox} from '../../../ui'; + import AddTorrentsActions from './AddTorrentsActions'; import SettingsStore from '../../../stores/SettingsStore'; diff --git a/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js b/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js index 95726c9d7..e8655600b 100644 --- a/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js +++ b/client/src/javascript/components/modals/feeds-modal/DownloadRulesTab.js @@ -1,4 +1,7 @@ import _ from 'lodash'; +import {defineMessages, FormattedMessage, injectIntl} from 'react-intl'; +import React from 'react'; + import { Button, Checkbox, @@ -11,10 +14,7 @@ import { Select, SelectItem, Textbox, -} from 'flood-ui-kit'; -import {defineMessages, FormattedMessage, injectIntl} from 'react-intl'; -import React from 'react'; - +} from '../../../ui'; import connectStores from '../../../util/connectStores'; import Edit from '../../icons/Edit'; import Checkmark from '../../icons/Checkmark'; diff --git a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js index ceb62d083..b306bf4f0 100644 --- a/client/src/javascript/components/modals/feeds-modal/FeedsTab.js +++ b/client/src/javascript/components/modals/feeds-modal/FeedsTab.js @@ -1,5 +1,8 @@ import _ from 'lodash'; import {defineMessages, FormattedMessage, injectIntl} from 'react-intl'; +import formatUtil from '@shared/util/formatUtil'; +import React from 'react'; + import { Button, Checkbox, @@ -11,10 +14,7 @@ import { Select, SelectItem, Textbox, -} from 'flood-ui-kit'; -import formatUtil from '@shared/util/formatUtil'; -import React from 'react'; - +} from '../../../ui'; import Edit from '../../icons/Edit'; import Close from '../../icons/Close'; import EventTypes from '../../../constants/EventTypes'; diff --git a/client/src/javascript/components/modals/move-torrents-modal/MoveTorrentsModal.js b/client/src/javascript/components/modals/move-torrents-modal/MoveTorrentsModal.js index 0a85125cf..32a5623ba 100644 --- a/client/src/javascript/components/modals/move-torrents-modal/MoveTorrentsModal.js +++ b/client/src/javascript/components/modals/move-torrents-modal/MoveTorrentsModal.js @@ -1,7 +1,7 @@ -import {Form} from 'flood-ui-kit'; import {injectIntl} from 'react-intl'; import React from 'react'; +import {Form} from '../../../ui'; import Modal from '../Modal'; import ModalActions from '../ModalActions'; import TorrentActions from '../../../actions/TorrentActions'; diff --git a/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js b/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js index 8ccb2efff..6147dd7ea 100644 --- a/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js +++ b/client/src/javascript/components/modals/remove-torrents-modal/RemoveTorrentsModal.js @@ -1,7 +1,7 @@ -import {Checkbox, Form, FormRow} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Checkbox, Form, FormRow} from '../../../ui'; import Modal from '../Modal'; import SettingsStore from '../../../stores/SettingsStore'; import TorrentActions from '../../../actions/TorrentActions'; diff --git a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js index 71a96b9da..2ab08f586 100644 --- a/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js +++ b/client/src/javascript/components/modals/set-tags-modal/SetTagsModal.js @@ -1,7 +1,7 @@ -import {Form, FormRow, Textbox} from 'flood-ui-kit'; import {injectIntl} from 'react-intl'; import React from 'react'; +import {Form, FormRow, Textbox} from '../../../ui'; import Modal from '../Modal'; import TorrentActions from '../../../actions/TorrentActions'; import TorrentStore from '../../../stores/TorrentStore'; diff --git a/client/src/javascript/components/modals/settings-modal/AuthTab.js b/client/src/javascript/components/modals/settings-modal/AuthTab.js index d29576a8d..f8d62deb3 100644 --- a/client/src/javascript/components/modals/settings-modal/AuthTab.js +++ b/client/src/javascript/components/modals/settings-modal/AuthTab.js @@ -1,9 +1,9 @@ -import {Button, Checkbox, Form, FormError, FormRowItem, FormRow, LoadingRing, Textbox} from 'flood-ui-kit'; import classnames from 'classnames'; import {CSSTransition, TransitionGroup} from 'react-transition-group'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Button, Checkbox, Form, FormError, FormRowItem, FormRow, LoadingRing, Textbox} from '../../../ui'; import AuthActions from '../../../actions/AuthActions'; import AuthStore from '../../../stores/AuthStore'; import Close from '../../icons/Close'; diff --git a/client/src/javascript/components/modals/settings-modal/BandwidthTab.js b/client/src/javascript/components/modals/settings-modal/BandwidthTab.js index 85e221c0b..e465e0e7d 100644 --- a/client/src/javascript/components/modals/settings-modal/BandwidthTab.js +++ b/client/src/javascript/components/modals/settings-modal/BandwidthTab.js @@ -1,7 +1,7 @@ -import {Form, FormRow, Textbox} from 'flood-ui-kit'; import {FormattedMessage} from 'react-intl'; import React from 'react'; +import {Form, FormRow, Textbox} from '../../../ui'; import ModalFormSectionHeader from '../ModalFormSectionHeader'; import SettingsTab from './SettingsTab'; diff --git a/client/src/javascript/components/modals/settings-modal/ConnectivityTab.js b/client/src/javascript/components/modals/settings-modal/ConnectivityTab.js index 102626a99..97a256290 100644 --- a/client/src/javascript/components/modals/settings-modal/ConnectivityTab.js +++ b/client/src/javascript/components/modals/settings-modal/ConnectivityTab.js @@ -1,7 +1,7 @@ -import {Checkbox, Form, FormRow, Textbox} from 'flood-ui-kit'; import {FormattedMessage} from 'react-intl'; import React from 'react'; +import {Checkbox, Form, FormRow, Textbox} from '../../../ui'; import ModalFormSectionHeader from '../ModalFormSectionHeader'; import SettingsTab from './SettingsTab'; diff --git a/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js b/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js index 178acb392..785c229a2 100644 --- a/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js +++ b/client/src/javascript/components/modals/settings-modal/DiskUsageTab.js @@ -1,7 +1,7 @@ -import {Checkbox, Form, FormRow} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Checkbox, Form, FormRow} from '../../../ui'; import ModalFormSectionHeader from '../ModalFormSectionHeader'; import SettingsStore from '../../../stores/SettingsStore'; import SettingsTab from './SettingsTab'; diff --git a/client/src/javascript/components/modals/settings-modal/ResourcesTab.js b/client/src/javascript/components/modals/settings-modal/ResourcesTab.js index a31e02666..3dcf53714 100644 --- a/client/src/javascript/components/modals/settings-modal/ResourcesTab.js +++ b/client/src/javascript/components/modals/settings-modal/ResourcesTab.js @@ -1,7 +1,7 @@ -import {Checkbox, Form, FormRow, Textbox} from 'flood-ui-kit'; import {FormattedMessage} from 'react-intl'; import React from 'react'; +import {Checkbox, Form, FormRow, Textbox} from '../../../ui'; import ModalFormSectionHeader from '../ModalFormSectionHeader'; import SettingsTab from './SettingsTab'; diff --git a/client/src/javascript/components/modals/settings-modal/UITab.js b/client/src/javascript/components/modals/settings-modal/UITab.js index ea3b1a20e..016fa68fe 100644 --- a/client/src/javascript/components/modals/settings-modal/UITab.js +++ b/client/src/javascript/components/modals/settings-modal/UITab.js @@ -1,7 +1,7 @@ -import {Checkbox, Form, FormRow, Select, SelectItem, Radio} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Checkbox, Form, FormRow, Select, SelectItem, Radio} from '../../../ui'; import ErrorIcon from '../../icons/ErrorIcon'; import Languages from '../../../constants/Languages'; import ModalFormSectionHeader from '../ModalFormSectionHeader'; diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js index 51435cf05..e92ab24e8 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentFiles.js @@ -1,9 +1,9 @@ import _ from 'lodash'; -import {Button, Checkbox, Form, FormRow, FormRowItem, Select, SelectItem} from 'flood-ui-kit'; import classnames from 'classnames'; import {FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Button, Checkbox, Form, FormRow, FormRowItem, Select, SelectItem} from '../../../ui'; import ConfigStore from '../../../stores/ConfigStore'; import Disk from '../../icons/Disk'; import DirectoryTree from '../../general/filesystem/DirectoryTree'; diff --git a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js index 657dd7b5a..d23ee43e7 100644 --- a/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js +++ b/client/src/javascript/components/modals/torrent-details-modal/TorrentMediainfo.js @@ -1,8 +1,8 @@ -import {Button} from 'flood-ui-kit'; import Clipboard from 'clipboard'; import {defineMessages, FormattedMessage, injectIntl} from 'react-intl'; import React from 'react'; +import {Button} from '../../../ui'; import ClipboardIcon from '../../icons/ClipboardIcon'; import connectStores from '../../../util/connectStores'; import EventTypes from '../../../constants/EventTypes'; diff --git a/client/src/javascript/components/torrent-list/TorrentList.js b/client/src/javascript/components/torrent-list/TorrentList.js index 4254a9202..1e31243fc 100644 --- a/client/src/javascript/components/torrent-list/TorrentList.js +++ b/client/src/javascript/components/torrent-list/TorrentList.js @@ -1,9 +1,9 @@ -import {Button} from 'flood-ui-kit'; import {FormattedMessage, injectIntl} from 'react-intl'; import _ from 'lodash'; import Dropzone from 'react-dropzone'; import React from 'react'; +import {Button} from '../../ui'; import ClientStatusStore from '../../stores/ClientStatusStore'; import ConfigStore from '../../stores/ConfigStore'; import connectStores from '../../util/connectStores'; diff --git a/client/src/javascript/ui/components/Button.js b/client/src/javascript/ui/components/Button.js new file mode 100644 index 000000000..5bdaa3314 --- /dev/null +++ b/client/src/javascript/ui/components/Button.js @@ -0,0 +1,111 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import FadeIn from './FadeIn'; +import FormElementAddon from './FormElementAddon'; +import FormRowItem from './FormRowItem'; +import LoadingRing from '../icons/LoadingRing'; + +export default class Button extends Component { + static propTypes = { + addonPlacement: PropTypes.oneOf(['before', 'after']), + grow: PropTypes.bool, + priority: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'quaternary']), + shrink: PropTypes.bool, + type: PropTypes.oneOf(['submit', 'reset', 'button']), + }; + + static defaultProps = { + additionalClassNames: '', + disabled: false, + grow: false, + labelOffset: false, + priority: 'primary', + shrink: false, + type: 'button', + wrap: true, + wrapper: FormRowItem, + wrapperProps: {width: 'auto'}, + }; + + doesButtonContainIcon() { + return React.Children.toArray(this.props.children).some((child) => child.type === FormElementAddon); + } + + getButtonContent() { + const buttonContent = React.Children.toArray(this.props.children).reduce( + (accumulator, child) => { + if (child.type === FormElementAddon) { + accumulator.addonNodes.push( + React.cloneElement(child, { + addonPlacement: this.props.addonPlacement, + key: child.props.className, + }), + ); + } else { + accumulator.childNodes.push(child); + } + + return accumulator; + }, + { + addonNodes: [], + childNodes: [], + }, + ); + + return { + childNode: ( +
+ {buttonContent.childNodes} +
+ ), + addonNodes: buttonContent.addonNodes, + }; + } + + render() { + const classes = classnames('button form__element', this.props.additionalClassNames, { + 'form__element--label-offset': this.props.labelOffset, + 'form__element--has-addon': this.props.addonPlacement, + [`form__element--has-addon--placed-${this.props.addonPlacement}`]: this.props.addonPlacement, + [`button--${this.props.priority}`]: this.props.priority, + 'button--is-loading': this.props.isLoading, + 'button--is-disabled': this.props.disabled, + }); + const {addonNodes, childNode} = this.getButtonContent(); + + const content = ( +
+ + {addonNodes} +
+ ); + + if (this.props.wrap) { + return ( + + {content} + + ); + } + + return content; + } +} diff --git a/client/src/javascript/ui/components/Checkbox.js b/client/src/javascript/ui/components/Checkbox.js new file mode 100644 index 000000000..ef849bad4 --- /dev/null +++ b/client/src/javascript/ui/components/Checkbox.js @@ -0,0 +1,12 @@ +import React, {Component} from 'react'; + +import Checkmark from '../icons/Checkmark'; +import ToggleInput from './ToggleInput'; + +class Checkbox extends Component { + render() { + return } />; + } +} + +export default Checkbox; diff --git a/client/src/javascript/ui/components/Container.js b/client/src/javascript/ui/components/Container.js new file mode 100644 index 000000000..4f481064b --- /dev/null +++ b/client/src/javascript/ui/components/Container.js @@ -0,0 +1,15 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +export default class Container extends PureComponent { + static propTypes = { + children: PropTypes.node, + }; + + render() { + const classes = classnames('container'); + + return
{this.props.children}
; + } +} diff --git a/client/src/javascript/ui/components/ContextMenu.js b/client/src/javascript/ui/components/ContextMenu.js new file mode 100644 index 000000000..d7b6a3029 --- /dev/null +++ b/client/src/javascript/ui/components/ContextMenu.js @@ -0,0 +1,125 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; + +import Overlay from './Overlay'; +import TransitionGroup from './TransitionGroup'; + +const minPreferableBottomSpace = 150; +const minPreferableHorizontalSpace = 200; + +export default class ContextMenu extends React.PureComponent { + static propTypes = { + children: PropTypes.node, + in: PropTypes.bool, + matchTriggerWidth: PropTypes.bool, + menuAlign: PropTypes.oneOf(['left', 'right']), + overlayProps: PropTypes.object, + padding: PropTypes.bool, + scrolling: PropTypes.bool, + triggerCoordinates: PropTypes.shape({ + x: PropTypes.number, + y: PropTypes.number, + }), + }; + + static defaultProps = { + matchTriggerWidth: true, + menuAlign: 'left', + overlayProps: {}, + padding: true, + scrolling: true, + }; + + handleOverlayClick = () => { + if (this.props.onOverlayClick) { + this.props.onOverlayClick(); + } + }; + + render() { + const dropdownStyle = {}; + let shouldRenderAbove = false; + + if (this.props.triggerRef) { + const buttonBoundingRect = this.props.triggerRef.getBoundingClientRect(); + const windowHeight = global.innerHeight; + const spaceAbove = buttonBoundingRect.top; + const spaceBelow = windowHeight - buttonBoundingRect.bottom; + + shouldRenderAbove = spaceBelow < minPreferableBottomSpace && spaceAbove > spaceBelow; + + if (shouldRenderAbove) { + dropdownStyle.top = 'auto'; + dropdownStyle.bottom = spaceBelow + buttonBoundingRect.height + 5; + dropdownStyle.maxHeight = buttonBoundingRect.top - 10; + } else { + dropdownStyle.top = buttonBoundingRect.bottom + 5; + dropdownStyle.maxHeight = spaceBelow - 10; + } + + if (this.props.matchTriggerWidth) { + dropdownStyle.width = buttonBoundingRect.width; + dropdownStyle.left = buttonBoundingRect.left; + dropdownStyle.right = global.innerWidth - buttonBoundingRect.left - buttonBoundingRect.width; + } else if (this.props.menuAlign === 'right') { + dropdownStyle.right = global.innerWidth - buttonBoundingRect.left - buttonBoundingRect.width; + } else { + dropdownStyle.left = buttonBoundingRect.left; + } + + this.dropdownStyle = dropdownStyle; + } else if (this.props.triggerCoordinates) { + const windowHeight = global.innerHeight; + const windowWidth = global.innerWidth; + const spaceAbove = this.props.triggerCoordinates.y; + const spaceBelow = windowHeight - spaceAbove; + + shouldRenderAbove = spaceBelow < minPreferableBottomSpace && spaceAbove > spaceBelow; + + if (shouldRenderAbove) { + dropdownStyle.top = 'auto'; + dropdownStyle.bottom = spaceBelow; + dropdownStyle.maxHeight = spaceAbove - 10; + } else { + dropdownStyle.top = spaceAbove; + dropdownStyle.maxHeight = spaceBelow - 10; + } + + if ( + this.props.menuAlign === 'right' || + windowWidth - this.props.triggerCoordinates.x < minPreferableHorizontalSpace + ) { + dropdownStyle.right = windowWidth - this.props.triggerCoordinates.x; + } else { + dropdownStyle.left = this.props.triggerCoordinates.x; + } + + this.dropdownStyle = dropdownStyle; + } + + const classes = classnames('context-menu__items', { + 'context-menu__items--is-up': shouldRenderAbove, + 'context-menu__items--is-down': !shouldRenderAbove, + 'context-menu__items--match-trigger-width': this.props.matchTriggerWidth, + 'context-menu__items--no-padding': !this.props.padding, + 'context-menu__items--no-scrolling': !this.props.scrolling, + }); + + return ( + +
+ +
+ {this.props.children} +
+
+
+ ); + } +} diff --git a/client/src/javascript/ui/components/ContextMenuItem.js b/client/src/javascript/ui/components/ContextMenuItem.js new file mode 100644 index 000000000..d52197d28 --- /dev/null +++ b/client/src/javascript/ui/components/ContextMenuItem.js @@ -0,0 +1,19 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +export default class ContextMenuItem extends PureComponent { + static propTypes = { + onClick: PropTypes.func, + }; + + render() { + const classes = classnames('context-menu__item', this.props.className); + + return ( +
+ {this.props.children} +
+ ); + } +} diff --git a/client/src/javascript/ui/components/FadeIn.js b/client/src/javascript/ui/components/FadeIn.js new file mode 100644 index 000000000..314d2ec4b --- /dev/null +++ b/client/src/javascript/ui/components/FadeIn.js @@ -0,0 +1,14 @@ +import CSSTransition from 'react-transition-group/CSSTransition'; +import React from 'react'; + +class FadeIn extends React.PureComponent { + render() { + return ( + + {this.props.children} + + ); + } +} + +export default FadeIn; diff --git a/client/src/javascript/ui/components/Form.js b/client/src/javascript/ui/components/Form.js new file mode 100644 index 000000000..c3266b9eb --- /dev/null +++ b/client/src/javascript/ui/components/Form.js @@ -0,0 +1,67 @@ +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import {getDataFromForm, resetFormData} from './util/forms'; + +class Form extends Component { + formRef = null; + + static propTypes = { + appendErrors: PropTypes.bool, + children: PropTypes.node, + onChange: PropTypes.func, + onSubmit: PropTypes.func, + prependErrors: PropTypes.bool, + }; + + componentDidMount() { + this.formRef.addEventListener('flood-form-change', this.handleFormChange); + } + + componentWillUnmount() { + this.formRef.removeEventListener('flood-form-change', this.handleFormChange); + } + + getFormData = () => { + return getDataFromForm(this.formRef); + }; + + resetForm = () => { + resetFormData(this.formRef); + }; + + handleFormChange = (event) => { + if (this.props.onChange) { + const formData = getDataFromForm(this.formRef); + this.props.onChange({event, formData}); + } + }; + + handleFormSubmit = (event) => { + event.preventDefault(); + + if (this.props.onSubmit) { + const formData = getDataFromForm(event.target); + this.props.onSubmit({event, formData}); + } + }; + + setFormRef = (ref) => { + this.formRef = ref; + }; + + render() { + return ( + + {this.props.children} + + ); + } +} + +export default Form; diff --git a/client/src/javascript/ui/components/FormElementAddon.js b/client/src/javascript/ui/components/FormElementAddon.js new file mode 100644 index 000000000..a599d31c8 --- /dev/null +++ b/client/src/javascript/ui/components/FormElementAddon.js @@ -0,0 +1,36 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +export default class FormElementAddon extends Component { + static propTypes = { + addonPlacement: PropTypes.oneOf(['before', 'after']), + onClick: PropTypes.func, + type: PropTypes.oneOf(['icon']), + isInteractive: PropTypes.bool, + }; + + static defaultProps = { + type: 'icon', + isInteractive: false, + }; + + render() { + const classes = classnames( + 'form__element__addon', + { + [`form__element__addon--placed-${this.props.addonPlacement}`]: this.props.addonPlacement, + [`form__element__addon--index-${this.props.addonIndex}`]: this.props.addonIndex, + 'form__element__addon--is-interactive': this.props.isInteractive || this.props.onClick, + 'form__element__addon--is-icon': this.props.type === 'icon', + }, + this.props.className, + ); + + return ( +
+ {this.props.children} +
+ ); + } +} diff --git a/client/src/javascript/ui/components/FormError.js b/client/src/javascript/ui/components/FormError.js new file mode 100644 index 000000000..706927254 --- /dev/null +++ b/client/src/javascript/ui/components/FormError.js @@ -0,0 +1,21 @@ +import classnames from 'classnames'; +import React, {PureComponent} from 'react'; + +import FormRowItem from './FormRowItem'; + +class FormError extends PureComponent { + render() { + // Maybe add some classes later. + const classes = classnames('form__element error', { + 'error--is-loading': this.props.isLoading, + }); + + return ( + + {this.props.children} + + ); + } +} + +export default FormError; diff --git a/client/src/javascript/ui/components/FormGroup.js b/client/src/javascript/ui/components/FormGroup.js new file mode 100644 index 000000000..94cabc6fe --- /dev/null +++ b/client/src/javascript/ui/components/FormGroup.js @@ -0,0 +1,20 @@ +import React, {Component} from 'react'; + +import FormRowItem from './FormRowItem'; + +export default class FormRowItemGroup extends Component { + getLabel() { + if (this.props.label) { + return ; + } + } + + render() { + return ( + + {this.getLabel()} + {this.props.children} + + ); + } +} diff --git a/client/src/javascript/ui/components/FormRow.js b/client/src/javascript/ui/components/FormRow.js new file mode 100644 index 000000000..91ccd58c1 --- /dev/null +++ b/client/src/javascript/ui/components/FormRow.js @@ -0,0 +1,24 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +class FormRow extends Component { + static propTypes = { + align: PropTypes.oneOf(['start', 'center', 'end']), + justify: PropTypes.oneOf(['start', 'center', 'end']), + children: PropTypes.node, + wrap: PropTypes.bool, + }; + + render() { + const classes = classnames('form__row', { + 'form__row--wrap': this.props.wrap, + [`form__row--justify--${this.props.justify}`]: this.props.justify, + [`form__row--align--${this.props.align}`]: this.props.align, + }); + + return
{this.props.children}
; + } +} + +export default FormRow; diff --git a/client/src/javascript/ui/components/FormRowGroup.js b/client/src/javascript/ui/components/FormRowGroup.js new file mode 100644 index 000000000..d813d34e5 --- /dev/null +++ b/client/src/javascript/ui/components/FormRowGroup.js @@ -0,0 +1,9 @@ +import React, {PureComponent} from 'react'; + +class FormRowGroup extends PureComponent { + render() { + return
{this.props.children}
; + } +} + +export default FormRowGroup; diff --git a/client/src/javascript/ui/components/FormRowItem.js b/client/src/javascript/ui/components/FormRowItem.js new file mode 100644 index 000000000..9d27b1883 --- /dev/null +++ b/client/src/javascript/ui/components/FormRowItem.js @@ -0,0 +1,40 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +class FormRowItem extends Component { + static propTypes = { + grow: PropTypes.bool, + shrink: PropTypes.bool, + type: PropTypes.string, + width: PropTypes.oneOf([ + 'auto', + 'one-eighth', + 'one-quarter', + 'three-eighths', + 'one-half', + 'five-eighths', + 'three-quarters', + 'seven-eighths', + ]), + }; + + static defaultProps = { + grow: true, + shrink: true, + width: 'auto', + }; + + render() { + const classes = classnames('form__row__item', this.props.className, { + [`form__row__item--${this.props.width}`]: this.props.width, + 'form__row__item--grow': this.props.grow, + 'form__row__item--shrink': this.props.shrink, + 'form__row__item--error': this.props.type === 'error', + }); + + return
{this.props.children}
; + } +} + +export default FormRowItem; diff --git a/client/src/javascript/ui/components/Overlay.js b/client/src/javascript/ui/components/Overlay.js new file mode 100644 index 000000000..603a27135 --- /dev/null +++ b/client/src/javascript/ui/components/Overlay.js @@ -0,0 +1,30 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +class Overlay extends Component { + static propTypes = { + onClick: PropTypes.func, + isInteractive: PropTypes.bool, + isTransparent: PropTypes.bool, + }; + + static defaultProps = { + isInteractive: true, + }; + + render() { + const classes = classnames('overlay', this.props.additionalClassNames, { + 'overlay--no-interaction': !this.props.isInteractive, + 'overlay--transparent': this.props.isTransparent, + }); + + return ( +
+ {this.props.children} +
+ ); + } +} + +export default Overlay; diff --git a/client/src/javascript/ui/components/Panel.js b/client/src/javascript/ui/components/Panel.js new file mode 100644 index 000000000..9dcf23172 --- /dev/null +++ b/client/src/javascript/ui/components/Panel.js @@ -0,0 +1,27 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +class Panel extends PureComponent { + static propTypes = { + children: PropTypes.node, + theme: PropTypes.oneOf(['light', 'dark']), + spacing: PropTypes.oneOf(['small', 'medium', 'large']), + transparent: PropTypes.bool, + }; + + static defaultProps = { + spacing: 'medium', + theme: 'light', + }; + + render() { + const classes = classnames(`panel panel--${this.props.theme}`, `panel--${this.props.spacing}`, { + 'panel--transparent': this.props.transparent, + }); + + return
{this.props.children}
; + } +} + +export default Panel; diff --git a/client/src/javascript/ui/components/PanelContent.js b/client/src/javascript/ui/components/PanelContent.js new file mode 100644 index 000000000..1ceb24ad1 --- /dev/null +++ b/client/src/javascript/ui/components/PanelContent.js @@ -0,0 +1,24 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +export default class PanelContent extends PureComponent { + static propTypes = { + children: PropTypes.node, + hasBorder: PropTypes.bool, + borderPosition: PropTypes.string, + }; + + static defaultProps = { + hasBorder: false, + borderPosition: 'top', + }; + + render() { + const classes = classnames(`panel__content`, { + [`panel__content--has-border--${this.props.borderPosition}`]: this.props.hasBorder, + }); + + return
{this.props.children}
; + } +} diff --git a/client/src/javascript/ui/components/PanelFooter.js b/client/src/javascript/ui/components/PanelFooter.js new file mode 100644 index 000000000..cce49f51a --- /dev/null +++ b/client/src/javascript/ui/components/PanelFooter.js @@ -0,0 +1,18 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +export default class PanelFooter extends PureComponent { + static propTypes = { + children: PropTypes.node, + hasBorder: PropTypes.bool, + }; + + render() { + const classes = classnames('panel__footer', { + 'panel__footer--has-border': this.props.hasBorder, + }); + + return
{this.props.children}
; + } +} diff --git a/client/src/javascript/ui/components/PanelHeader.js b/client/src/javascript/ui/components/PanelHeader.js new file mode 100644 index 000000000..66efa2016 --- /dev/null +++ b/client/src/javascript/ui/components/PanelHeader.js @@ -0,0 +1,24 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {PureComponent} from 'react'; + +export default class PanelHeader extends PureComponent { + static propTypes = { + children: PropTypes.node, + hasBorder: PropTypes.bool, + level: PropTypes.oneOf([1, 2, 3, 4, 5, 6]), + }; + + static defaultProps = { + hasBorder: false, + level: 1, + }; + + render() { + const classes = classnames(`panel__header panel__header--level-${this.props.level}`, { + 'panel__header--has-border': this.props.hasBorder, + }); + + return
{this.props.children}
; + } +} diff --git a/client/src/javascript/ui/components/Portal.js b/client/src/javascript/ui/components/Portal.js new file mode 100644 index 000000000..b5baa99bd --- /dev/null +++ b/client/src/javascript/ui/components/Portal.js @@ -0,0 +1,33 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import ReactDOM from 'react-dom'; + +class Portal extends React.Component { + mountPoint = null; + + static propTypes = { + children: PropTypes.node, + }; + + static defaultProps = { + children:
, + }; + + componentDidMount() { + this.mountPoint = global.document.createElement('div'); + this.mountPoint.classList.add('portal'); + global.document.body.appendChild(this.mountPoint); + } + + componentWillUnmount() { + ReactDOM.unmountComponentAtNode(this.mountPoint); + global.document.body.removeChild(this.mountPoint); + } + + render() { + if (this.mountPoint == null) return null; + return ReactDOM.createPortal(this.props.children, this.mountPoint); + } +} + +export default Portal; diff --git a/client/src/javascript/ui/components/Radio.js b/client/src/javascript/ui/components/Radio.js new file mode 100644 index 000000000..9e30d30f9 --- /dev/null +++ b/client/src/javascript/ui/components/Radio.js @@ -0,0 +1,18 @@ +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import Circle from '../icons/Circle'; +import ToggleInput from './ToggleInput'; + +class Radio extends Component { + static propTypes = { + groupID: PropTypes.string.isRequired, + id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, + }; + + render() { + return } id={this.props.groupID} type="radio" value={this.props.id} />; + } +} + +export default Radio; diff --git a/client/src/javascript/ui/components/Select.js b/client/src/javascript/ui/components/Select.js new file mode 100644 index 000000000..b9424e79f --- /dev/null +++ b/client/src/javascript/ui/components/Select.js @@ -0,0 +1,249 @@ +import _ from 'lodash'; +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import Button from './Button'; +import ContextMenu from './ContextMenu'; +import {dispatchChangeEvent} from './util/forms'; +import FormElementAddon from './FormElementAddon'; +import Chevron from '../icons/Chevron'; +import FormRowItem from './FormRowItem'; +import Portal from './Portal'; + +export default class Select extends Component { + menuRef = null; + + inputRef = null; + + triggerRef = null; + + static propTypes = { + defaultID: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + value: PropTypes.string, + children: PropTypes.node, + id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired, + onClose: PropTypes.func, + onOpen: PropTypes.func, + onSelect: PropTypes.func, + }; + + static defaultProps = { + defaultID: '', + persistentPlaceholder: false, + priority: 'quaternary', + }; + + constructor(props) { + super(props); + + this.state = { + isOpen: false, + selectedID: this.getInitialSelectedID(props), + }; + } + + componentDidUpdate(_prevProps, prevState) { + if (!prevState.isOpen && this.state.isOpen) { + // TODO: Set focus on the dropdown menu. + } else if (prevState.isOpen && !this.state.isOpen) { + // this.triggerRef.focus(); + } + + if (this.state.isOpen && !prevState.isOpen) { + global.addEventListener('keydown', this.handleKeyDown); + global.addEventListener('scroll', this.handleWindowScroll, { + capture: true, + }); + + if (this.props.onOpen) { + this.props.onOpen(); + } + } else if (!this.state.isOpen && prevState.isOpen) { + global.addEventListener('keydown', this.handleKeyDown); + global.removeEventListener('scroll', this.handleWindowScroll, { + capture: true, + }); + + if (this.props.onClose) { + this.props.onClose(); + } + } + } + + getInitialSelectedID(props) { + return props.defaultID || props.children.find((child) => child.id != null) || ''; + } + + getItemList(children) { + return children.reduce((accumulator, child) => { + if (child.props.placeholder) { + return accumulator; + } + + accumulator.push( + React.cloneElement(child, { + onClick: this.handleItemClick, + isSelected: child.props.id === this.state.selectedID, + }), + ); + + return accumulator; + }, []); + } + + getLabel() { + if (this.props.label) { + return ( + + ); + } + } + + getSelectedItem(children) { + const selectedItem = children.find((child, index) => { + return ( + (this.props.persistentPlaceholder && child.props.placeholder) || + (!this.state.selectedID && index === 0) || + child.props.id === this.state.selectedID + ); + }); + + if (selectedItem) { + return React.cloneElement(selectedItem, {isTrigger: true}); + } + } + + getTrigger(selectItems) { + const selectedItem = this.getSelectedItem(selectItems); + + if (this.props.triggerComponent) { + return ( + + {selectedItem} + + ); + } + + return ( + + ); + } + + handleTriggerClick = () => { + if (!this.props.disabled) { + this.toggleOpenState(); + } + }; + + handleItemClick = (id) => { + this.setState({isOpen: false, selectedID: id}, () => { + if (this.props.onSelect) { + this.props.onSelect(id); + } + + if (this.inputRef) { + dispatchChangeEvent(this.inputRef); + } + }); + }; + + handleKeyDown = (event) => { + if (event.key === 'Escape') { + event.preventDefault(); + + this.setState({isOpen: false}); + } + }; + + handleOverlayClick = () => { + this.toggleOpenState(); + }; + + handleWindowScroll = (event) => { + if (this.menuRef && !this.menuRef.contains(event.target)) { + if (this.state.isOpen) { + this.setState({isOpen: false}); + } + } + }; + + setInputRef = (ref) => { + this.inputRef = ref; + }; + + setMenuRef = (ref) => { + this.menuRef = ref; + }; + + setTriggerRef = (ref) => { + if (this.state.triggerRef !== ref) { + this.setState({triggerRef: ref}); + } + }; + + toggleOpenState = () => { + const wasOpen = this.state.isOpen; + this.setState({ + isOpen: !wasOpen, + }); + }; + + render() { + const selectItems = React.Children.toArray(this.props.children); + const classes = classnames('select form__element', this.props.additionalClassNames, { + 'form__element--disabled': this.props.disabled, + 'form__element--label-offset': this.props.labelOffset, + 'select--is-open': this.state.isOpen, + }); + + return ( + + {this.getLabel()} +
+ + {this.getTrigger(selectItems)} + + + {this.getItemList(selectItems)} + + +
+
+ ); + } +} diff --git a/client/src/javascript/ui/components/SelectItem.js b/client/src/javascript/ui/components/SelectItem.js new file mode 100644 index 000000000..b5bf44037 --- /dev/null +++ b/client/src/javascript/ui/components/SelectItem.js @@ -0,0 +1,46 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import Checkmark from '../icons/Checkmark'; +import ContextMenuItem from './ContextMenuItem'; + +export default class SelectItem extends Component { + static propTypes = { + isSelected: PropTypes.bool, + isTrigger: PropTypes.bool, + children: PropTypes.node, + }; + + static defaultProps = { + isTrigger: false, + }; + + handleClick = () => { + if (!this.props.onClick) { + return; + } + + this.props.onClick(this.props.id); + }; + + render() { + let icon = null; + + if (!this.props.isTrigger && this.props.isSelected) { + icon = ; + } + + const classes = classnames({ + 'select__item context-menu__item': !this.props.isTrigger, + 'select__item--is-selected': this.props.isSelected, + }); + + return ( + + {icon} + {this.props.children} + + ); + } +} diff --git a/client/src/javascript/ui/components/Textbox.js b/client/src/javascript/ui/components/Textbox.js new file mode 100644 index 000000000..27385d89b --- /dev/null +++ b/client/src/javascript/ui/components/Textbox.js @@ -0,0 +1,73 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import FormElementAddon from './FormElementAddon'; +import FormRowItem from './FormRowItem'; + +export default class Textbox extends Component { + static propTypes = { + defaultValue: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]), + addonPlacement: PropTypes.oneOf(['before', 'after']), + id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired, + setRef: PropTypes.func, + type: PropTypes.oneOf(['password', 'text']), + }; + + static defaultProps = { + type: 'text', + }; + + getLabel() { + if (this.props.label) { + return ( + + ); + } + } + + render() { + let addonCount = 0; + const children = React.Children.map(this.props.children, (child) => { + if (child && child.type === FormElementAddon) { + addonCount++; + return React.cloneElement(child, { + addonIndex: addonCount, + addonPlacement: this.props.addonPlacement, + }); + } + + return child; + }); + + const inputClasses = classnames('input input--text form__element', { + [`form__element--has-addon--placed-${this.props.addonPlacement}`]: + this.props.addonPlacement && this.props.children, + [`form__element--has-addon--count-${addonCount}`]: addonCount > 0, + 'form__element--label-offset': this.props.labelOffset, + }); + const wrapperClasses = classnames('form__element__wrapper', this.props.wrapperClassName); + + return ( + + {this.getLabel()} +
+ + {children} +
+
+ ); + } +} diff --git a/client/src/javascript/ui/components/ToggleInput.js b/client/src/javascript/ui/components/ToggleInput.js new file mode 100644 index 000000000..5a5f1cb67 --- /dev/null +++ b/client/src/javascript/ui/components/ToggleInput.js @@ -0,0 +1,138 @@ +import classnames from 'classnames'; +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; + +import {dispatchChangeEvent} from './util/forms'; +import FormRowItem from './FormRowItem'; + +class ToggleInput extends Component { + inputRef = null; + + static propTypes = { + checked: PropTypes.bool, + children: PropTypes.node, + grow: PropTypes.bool, + id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + shrink: PropTypes.bool, + type: PropTypes.oneOf(['checkbox', 'radio']), + // Is the element controlled or not. + useProps: PropTypes.bool, + }; + + static defaultProps = { + onChange: () => { + // do nothing. + }, + grow: false, + shrink: false, + }; + + constructor(props) { + super(props); + + this.initialValue = props.checked; + this.state = { + isActive: false, + }; + } + + getCheckedProp() { + // When element is controlled, we provide the checked prop. + if (this.props.useProps) { + return this.props.checked != null && this.props.checked; + } + } + + getDefaultCheckedProp() { + // When element is uncontrolled, we provide the defaultChecked prop. + if (!this.props.useProps) { + return this.props.checked; + } + } + + getValueProp() { + if (this.props.type === 'radio') { + return this.props.value; + } + } + + handleInputChange = (event) => event.stopPropagation(); + + handleKeyDown = (event) => { + if (event.key === ' ' || event.key === 'Enter') { + event.preventDefault(); + const wasActive = this.state.isActive; + if (!wasActive) { + this.setState({isActive: !wasActive}); + } + } + }; + + handleKeyUp = (event) => { + if (event.key === ' ' || event.key === 'Enter') { + this.inputRef.checked = !this.inputRef.checked; + // We're faking the event's target to make it easier to handle this keyboard event. + this.triggerChangeEvent({event, target: this.inputRef}); + } + + if (this.state.isActive) { + this.setState({isActive: false}); + } + }; + + handleLabelBlur = () => { + if (this.state.isActive) { + this.setState({isActive: false}); + } + + global.removeEventListener('keydown', this.handleKeyDown); + global.removeEventListener('keyup', this.handleKeyUp); + }; + + handleLabelFocus = () => { + global.addEventListener('keydown', this.handleKeyDown); + global.addEventListener('keyup', this.handleKeyUp); + }; + + setInputRef = (ref) => { + this.inputRef = ref; + }; + + triggerChangeEvent = (event) => { + dispatchChangeEvent(this.inputRef); + this.props.onChange(event); + }; + + render() { + const classes = classnames('form__element toggle-input', this.props.type, { + 'toggle-input--is-active': this.state.isActive, + 'form__element--match-textbox-height': this.props.matchTextboxHeight, + 'form__element--label-offset': this.props.labelOffset, + }); + + return ( + + + + ); + } +} + +export default ToggleInput; diff --git a/client/src/javascript/ui/components/TransitionGroup.js b/client/src/javascript/ui/components/TransitionGroup.js new file mode 100644 index 000000000..4f899ab87 --- /dev/null +++ b/client/src/javascript/ui/components/TransitionGroup.js @@ -0,0 +1,31 @@ +import _ from 'lodash'; +import CSSTransition from 'react-transition-group/CSSTransition'; +import React, {Component} from 'react'; + +import transitionTimeouts from '../constants/transitionTimeouts'; + +class TransitionGroup extends Component { + static defaultProps = { + mountOnEnter: true, + unmountOnExit: true, + timeout: transitionTimeouts.xFast, + }; + + render() { + return ( + + ); + } +} + +export default TransitionGroup; diff --git a/client/src/javascript/ui/components/util/forms.js b/client/src/javascript/ui/components/util/forms.js new file mode 100644 index 000000000..d4554e835 --- /dev/null +++ b/client/src/javascript/ui/components/util/forms.js @@ -0,0 +1,57 @@ +export const dispatchEvent = (eventID, element, options = {bubbles: true, cancelable: true}) => { + let event; + + if (typeof Event === 'function') { + event = new Event(eventID, options); + } else { + event = document.createEvent('Event'); + event.initEvent(eventID, options.bubbles, options.cancelable); + } + + element.dispatchEvent(event); +}; + +export const dispatchChangeEvent = (element) => { + dispatchEvent('flood-form-change', element); +}; + +export const getDataFromForm = (form) => { + return Array.from(form.elements).reduce((formData, element) => { + const {name, type, value} = element; + + if (!name || type === 'button' || type === 'submit' || type === 'reset') { + return formData; + } + + if (type === 'checkbox') { + formData[name] = element.checked; + } else if (type !== 'radio') { + formData[name] = value; + } else if (type === 'radio' && !element.checked && formData[name] === undefined) { + formData[name] = null; + } else if (type === 'radio' && element.checked) { + formData[name] = value; + } + + return formData; + }, {}); +}; + +export const resetFormData = (form) => { + return Array.from(form.elements).forEach((element) => { + // getAttribute is supposedly faster than using the dataset API. + const defaultValue = element.getAttribute('data-initial-value'); + + if (element.type === 'checkbox' || element.type === 'radio') { + if (defaultValue === 'true') { + element.checked = true; + } else { + element.checked = false; + } + } else if (defaultValue !== null) { + element.value = defaultValue; + } else { + element.value = ''; + } + }); +}; diff --git a/client/src/javascript/ui/constants/transitionTimeouts.js b/client/src/javascript/ui/constants/transitionTimeouts.js new file mode 100644 index 000000000..e5f6e7a64 --- /dev/null +++ b/client/src/javascript/ui/constants/transitionTimeouts.js @@ -0,0 +1,11 @@ +// Transition timeout parity with Sass variables. + +export default { + xxSlow: (7 / 8) * 1000, + xSlow: (3 / 4) * 1000, + slow: (5 / 8) * 1000, + medium: (1 / 2) * 1000, + fast: (3 / 8) * 1000, + xFast: (1 / 4) * 1000, + xxFast: (1 / 8) * 1000, +}; diff --git a/client/src/javascript/ui/icons/Checkmark.js b/client/src/javascript/ui/icons/Checkmark.js new file mode 100644 index 000000000..21c785f85 --- /dev/null +++ b/client/src/javascript/ui/icons/Checkmark.js @@ -0,0 +1,21 @@ +import React, {Component} from 'react'; + +class Checkmark extends Component { + render() { + return ( + + + + ); + } +} + +export default Checkmark; diff --git a/client/src/javascript/ui/icons/Chevron.js b/client/src/javascript/ui/icons/Chevron.js new file mode 100644 index 000000000..1f78af007 --- /dev/null +++ b/client/src/javascript/ui/icons/Chevron.js @@ -0,0 +1,17 @@ +import React, {Component} from 'react'; + +class Chevron extends Component { + render() { + return ( + + + + ); + } +} + +export default Chevron; diff --git a/client/src/javascript/ui/icons/Circle.js b/client/src/javascript/ui/icons/Circle.js new file mode 100644 index 000000000..1a02173e4 --- /dev/null +++ b/client/src/javascript/ui/icons/Circle.js @@ -0,0 +1,18 @@ +import React, {Component} from 'react'; + +class Checkmark extends Component { + render() { + return ( + + + + ); + } +} + +export default Checkmark; diff --git a/client/src/javascript/ui/icons/LoadingRing.js b/client/src/javascript/ui/icons/LoadingRing.js new file mode 100644 index 000000000..0db29bd3e --- /dev/null +++ b/client/src/javascript/ui/icons/LoadingRing.js @@ -0,0 +1,35 @@ +import classnames from 'classnames'; +import React, {Component} from 'react'; + +class LoadingRing extends Component { + static defaultProps = { + size: 'small', + }; + + render() { + const classes = classnames('icon icon--loading icon--loading--ring', { + 'icon--small': this.props.size === 'small', + }); + + return ( +
+
+ + + + + +
+
+ + + + + +
+
+ ); + } +} + +export default LoadingRing; diff --git a/client/src/javascript/ui/icons/Search.js b/client/src/javascript/ui/icons/Search.js new file mode 100644 index 000000000..cd8fa5936 --- /dev/null +++ b/client/src/javascript/ui/icons/Search.js @@ -0,0 +1,14 @@ +import React, {Component} from 'react'; + +export default class Search extends Component { + render() { + return ( + + + + + + + ); + } +} diff --git a/client/src/javascript/ui/index.js b/client/src/javascript/ui/index.js new file mode 100644 index 000000000..66bc30dac --- /dev/null +++ b/client/src/javascript/ui/index.js @@ -0,0 +1,49 @@ +import Button from './components/Button'; +import Checkbox from './components/Checkbox'; +import Container from './components/Container'; +import ContextMenu from './components/ContextMenu'; +import Form from './components/Form'; +import FormElementAddon from './components/FormElementAddon'; +import FormError from './components/FormError'; +import FormGroup from './components/FormGroup'; +import FormRow from './components/FormRow'; +import FormRowGroup from './components/FormRowGroup'; +import FormRowItem from './components/FormRowItem'; +import LoadingRing from './icons/LoadingRing'; +import Overlay from './components/Overlay'; +import Panel from './components/Panel'; +import PanelContent from './components/PanelContent'; +import PanelFooter from './components/PanelFooter'; +import PanelHeader from './components/PanelHeader'; +import Portal from './components/Portal'; +import Radio from './components/Radio'; +import Select from './components/Select'; +import SelectItem from './components/SelectItem'; +import Textbox from './components/Textbox'; +import ToggleInput from './components/ToggleInput'; +import TransitionGroup from './components/TransitionGroup'; + +export {Button}; +export {Checkbox}; +export {Container}; +export {ContextMenu}; +export {Form}; +export {FormElementAddon}; +export {FormError}; +export {FormGroup}; +export {FormRow}; +export {FormRowGroup}; +export {FormRowItem}; +export {LoadingRing}; +export {Overlay}; +export {Panel}; +export {PanelContent}; +export {PanelFooter}; +export {PanelHeader}; +export {Portal}; +export {Radio}; +export {Select}; +export {SelectItem}; +export {Textbox}; +export {ToggleInput}; +export {TransitionGroup}; diff --git a/client/src/sass/style.scss b/client/src/sass/style.scss index b37016703..6fc3b82a6 100644 --- a/client/src/sass/style.scss +++ b/client/src/sass/style.scss @@ -1,5 +1,5 @@ @import "~ress"; -@import "~flood-ui-kit/dist/index"; +@import "ui/index"; @import "tools/variables"; @import "tools/reset"; diff --git a/client/src/sass/ui/components/button.scss b/client/src/sass/ui/components/button.scss new file mode 100644 index 000000000..a6630919c --- /dev/null +++ b/client/src/sass/ui/components/button.scss @@ -0,0 +1,286 @@ +@function button--text-shadow($color) { + @return 0 1px 0 darken($color, 5%), + 0 1px 2px rgba(darken($color, 10%), 0.8); +} + +@function button--svg-shadow($color) { + @return drop-shadow(0 1px 0 darken($color, 5%)) + drop-shadow(0 1px 2px rgba(darken($color, 10%), 0.8)); +} + +.button { + border: $form--element--border-width solid currentColor; + cursor: pointer; + color: $white; + font-weight: 500; + line-height: 1.5; + position: relative; + user-select: none; + + &:active { + color: rgba($white, 0.8); + } + + &--primary { + background: $blue; + border-color: $blue--hard; + box-shadow: form--element--box-shadow($blue); + text-shadow: button--text-shadow($blue--hard); + + &:hover { + background: $blue--light; + } + + &:active, + &:focus { + box-shadow: form--element--box-shadow--active($blue--hard); + } + + &:active { + background: $blue--hard; + border-color: darken($blue--hard, 5%); + box-shadow: form--element--box-shadow--active($blue--hard); + } + + .inverse & { + border-color: $blue; + + &:focus, + &:hover { + background: $blue--light; + border-color: $blue--light; + } + + &:active, + &:focus { + box-shadow: form--element--inverse--box-shadow--active($blue--light); + } + + &:active { + background: $blue; + border-color: $blue; + } + } + + svg { + filter: button--svg-shadow($blue--hard); + } + } + + &--secondary { + background: $green; + border-color: $green--hard; + box-shadow: form--element--box-shadow($green); + text-shadow: button--text-shadow($green--hard); + + &:hover { + background: $green--light; + } + + &:active, + &:focus { + box-shadow: form--element--box-shadow--active($green); + } + + &:active { + background: $green--hard; + border-color: darken($green--hard, 5%); + } + + .inverse & { + border-color: $green; + + &:focus, + &:hover { + background: $green--light; + border-color: $green--light; + } + + &:active, + &:focus { + box-shadow: form--element--inverse--box-shadow--active($green--light); + } + + &:active { + background: $green; + border-color: $green; + } + } + + svg { + filter: button--svg-shadow($green--hard); + } + } + + &--tertiary { + background: $grey; + border-color: $grey--harder; + box-shadow: form--element--box-shadow($grey); + text-shadow: button--text-shadow($grey--hard); + + &:hover { + background: $grey--light; + } + + &:active, + &:focus { + box-shadow: form--element--box-shadow--active($grey); + } + + &:active { + background: $grey--hard; + border-color: darken($grey--hard, 5%); + } + + .inverse & { + border-color: $grey; + + &:focus, + &:hover { + background: $grey--light; + border-color: $grey--light; + } + + &:active, + &:focus { + box-shadow: form--element--inverse--box-shadow--active($grey--light); + } + + &:active { + background: $grey; + border-color: $grey; + } + } + + svg { + filter: button--svg-shadow($grey--hard); + } + } + + &--quaternary { + background: $white; + border-color: $grey--lighter; + box-shadow: form--element--box-shadow($grey--lighter); + color: $grey; + + &:hover { + border-color: $medium-grey; + color: $grey--hard; + } + + &:active, + &:focus { + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + color: desaturate($blue--darker, 25%); + } + + &:active { + background-color: $blue--soft; + } + + .inverse & { + background: $input--inverse--background; + border-color: $input--inverse--border; + box-shadow: $form--element--inverse--box-shadow; + color: $input--inverse--foreground; + + &:focus, + &:hover { + border-color: $input--inverse--border--hover; + color: $input--inverse--foreground--hover; + } + + &:active, + &:focus { + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + color: $input--inverse--foreground--active; + } + + &:active { + background-color: rgba($blue--soft, 0.15); + } + } + + svg { + filter: button--svg-shadow($grey--lighter); + } + } + + // TODO: Investiate this darker border. + // &--primary, + // &--secondary, + // &--tertiary { + + // .inverse & { + // // border: 1px solid transparent; + // // box-shadow: + // // 0 0 0 1px rgba($input--inverse--border, 0.5), + // // 0 0 0 2px rgba($input--inverse--border, 0.2); + + // &:active, + // &:focus { + // box-shadow: + // 0 0 0 1px rgba($input--inverse--border, 0.2), + // 0 0 0 2px rgba($input--inverse--border, 0.7); + // } + // } + // } + + &--is-disabled { + box-shadow: form--element--box-shadow($blue); + color: $grey--light; + text-shadow: none; + + &, + &:hover, + &:focus, + &:active { + background: $light-grey; + border-color: $light-grey--hard; + box-shadow: none; + cursor: not-allowed; + } + } + + &__content { + align-items: center; + display: flex; + opacity: 1; + overflow: hidden; + text-overflow: ellipsis; + transition: opacity $speed--x-fast; + white-space: nowrap; + } + + .icon { + fill: currentColor; + + &--loading { + left: 50%; + opacity: 0; + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + transition: opacity $speed--fast; + } + } + + &--is-loading { + + .button { + + &__content { + opacity: 0; + } + } + + .icon { + + &--loading { + opacity: 1; + } + } + } +} diff --git a/client/src/sass/ui/components/container.scss b/client/src/sass/ui/components/container.scss new file mode 100644 index 000000000..c17fd66fe --- /dev/null +++ b/client/src/sass/ui/components/container.scss @@ -0,0 +1,3 @@ +.container { + max-width: 900px; +} diff --git a/client/src/sass/ui/components/context-menu.scss b/client/src/sass/ui/components/context-menu.scss new file mode 100644 index 000000000..bed4d9001 --- /dev/null +++ b/client/src/sass/ui/components/context-menu.scss @@ -0,0 +1,96 @@ +.context-menu { + font-size: $font-size--small; + height: 100vh; + left: 0; + width: 100vw; + position: absolute; + top: 0; + + &--enter { + + .context-menu { + + &__items { + opacity: 0; + transform: translateY(2rem * -1); + + &--is-up { + transform: translateY(2rem); + } + } + } + + &--active { + + .context-menu { + + &__items { + opacity: 1; + transform: translateY(0); + } + } + } + } + + &--exit { + + .context-menu { + + &__items { + opacity: 1; + transform: translateY(0); + } + } + + &--active { + + .context-menu { + + &__items { + opacity: 0; + transform: translateY(20px * -1); + + &--is-up { + transform: translateY(20px); + } + } + } + } + } + + &__items { + background: $white; + border-radius: $form--element--border-radius; + box-shadow: + form--element--box-shadow($darkest-grey, 0.05, 0.1), + 0 0 0 1px rgba($darkest-grey, 0.1); + max-width: 200px; + overflow-x: hidden; + overflow-y: auto; + position: fixed; + transform-origin: 50% -5px; + transition: opacity $speed--xx-fast, transform $speed--xx-fast; + z-index: 101; + + &, + &__padding-surrogate { + padding: $spacing--small 0; + } + + &--is-up { + transform-origin: 50% calc(100% + 5px); + } + + &--match-trigger-width { + max-width: none; + } + + &--no-padding { + padding: 0; + } + + &--no-scrolling { + overflow: hidden; + } + } +} diff --git a/client/src/sass/ui/components/element-addon.scss b/client/src/sass/ui/components/element-addon.scss new file mode 100644 index 000000000..490e9b2c9 --- /dev/null +++ b/client/src/sass/ui/components/element-addon.scss @@ -0,0 +1,106 @@ +.form { + + &__element { + + &--has-addon { + + &--placed-before { + padding-left: $button--has-addon--padding--left; + + &.form__element--has-addon--count-2 { + padding-left: $button--has-two-addons--padding--left; + } + } + + &--placed-after { + padding-right: $button--has-addon--padding--right; + + &.form__element--has-addon--count-2 { + padding-right: $button--has-two-addons--padding--right; + } + } + } + + &__addon { + border-width: 0; + border-style: solid; + border-color: $grey--soft; + bottom: 0; + pointer-events: none; + position: absolute; + transition: all $speed--x-fast; + top: 0; + + .inverse & { + border-color: $darkest-grey--darker; + } + + .form__element:focus ~ &, + .form__element:active ~ & { + border-color: rgba($blue, 0.15); + transition: all $speed--xx-fast; + + .icon { + fill: $blue; + transition: all $speed--xx-fast; + + &--stroke { + fill: none; + stroke: $blue; + } + } + } + + .icon { + @extend .icon--small; + fill: $grey; + position: absolute; + left: 50%; + top: 50%; + transform-origin: 50% 50%; + transform: translate(-50%, -50%); + transition: all $speed--x-fast; + + &--stroke { + fill: none; + stroke: $grey; + } + } + + &--placed-before { + border-right-width: 1px; + left: 0; + + &.form__element__addon--index-2 { + left: $button--addon--width; + } + } + + &--placed-after { + border-left-width: 1px; + right: 0; + + &.form__element__addon--index-2 { + right: $button--addon--width; + } + } + + &--is-icon { + width: $button--addon--width; + } + + &--is-interactive { + cursor: pointer; + pointer-events: auto; + + &:hover { + + .icon { + fill: $blue; + transition: all $speed--xx-fast; + } + } + } + } + } +} diff --git a/client/src/sass/ui/components/error.scss b/client/src/sass/ui/components/error.scss new file mode 100644 index 000000000..d8e890fae --- /dev/null +++ b/client/src/sass/ui/components/error.scss @@ -0,0 +1,17 @@ +.error { + background: $red; + border-radius: $border-radius--small; + color: #fff; + padding: $form--element--padding--x * 2/3 $form--element--padding--x; + transition: opacity $speed--x-fast; + + &--is-loading { + opacity: 0.25; + } + + .inverse & { + color: #fff; + border: none; + background: $red; + } +} diff --git a/client/src/sass/ui/components/form.scss b/client/src/sass/ui/components/form.scss new file mode 100644 index 000000000..7d1715ff9 --- /dev/null +++ b/client/src/sass/ui/components/form.scss @@ -0,0 +1,164 @@ +.input, +.button { + appearance: none; + border-radius: $form--element--border-radius; + font-size: $font-size--small; + height: $form--element--height; + outline: none; + padding: $form--element--padding--y $form--element--padding--x; + transition: all $speed--x-fast; + + &:focus, + &:active { + transition: all $speed--xx-fast; + } +} + +.form { + + &__row { + display: flex; + margin-bottom: $form__row--margin--vertical; + width: 100%; + + &:last-child, + &--no-margin { + margin-bottom: 0; + } + + &--group { + flex-direction: column; + } + + &--align { + + &--start { + align-items: flex-start; + } + + &--center { + align-items: center; + } + + &--end { + align-items: flex-end; + } + } + + &--justify { + + &--start { + justify-content: flex-start; + } + + &--center { + justify-content: center; + } + + &--end { + justify-content: flex-end; + } + } + + &__item { + flex: 0 0 auto; + margin: 0 $spacing--x-small; + min-width: 1px; + position: relative; + width: auto; + + &:first-child, + &.is-first { + margin-left: 0; + } + + &:last-child, + &.is-last { + margin-right: 0; + } + + &--grow { + flex-grow: 1; + } + + &--shrink { + flex-shrink: 1; + } + + &--one-eighth { + width: 12.5%; + } + + &--one-quarter { + width: 25%; + } + + &--three-eighths { + width: 37.5%; + } + + &--one-half { + width: 50%; + } + + &--five-eighths { + width: 62.5%; + } + + &--three-quarters { + width: 75%; + } + + &--seven-eighths { + width: 87.5%; + } + + .button, + .checkbox, + .form__element__wrapper, + .input, + .error, + .radio { + width: 100%; + } + + .error { + background: $red--alpha--light; + border: 1px solid $red--alpha--medium; + border-radius: $border-radius--small; + color: $red; + padding: $form--element--padding--x * 2/3 $form--element--padding--x; + transition: opacity $speed--x-fast; + + &--is-loading { + opacity: 0.4; + } + } + } + } + + &__element { + + &__label { + display: block; + font-size: $font-size--x-small; + line-height: 1rem; + margin-bottom: $spacing--xx-small; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &__wrapper { + position: relative; + } + + &--label-offset { + margin-top: calc(#{$spacing--xx-small} + 1rem); + } + + &--match-textbox-height { + height: $form--element--height; + } + } +} diff --git a/client/src/sass/ui/components/icon.scss b/client/src/sass/ui/components/icon.scss new file mode 100644 index 000000000..174553589 --- /dev/null +++ b/client/src/sass/ui/components/icon.scss @@ -0,0 +1,42 @@ +@keyframes rotateAroundMidpoint { + 0% { + transform: rotate(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.icon { + position: relative; + + &--small { + height: 18px; + width: 18px; + } + + &--large { + height: 24px; + width: 24px; + } + + &__element { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + + &--loading { + + &--ring { + stroke: currentColor; + } + } + + &__ring-slice { + animation: 1s linear infinite forwards rotateAroundMidpoint; + } +} diff --git a/client/src/sass/ui/components/input.scss b/client/src/sass/ui/components/input.scss new file mode 100644 index 000000000..c45855025 --- /dev/null +++ b/client/src/sass/ui/components/input.scss @@ -0,0 +1,239 @@ +.input { + background: $input--background; + color: $input--foreground; + border: $form--element--border-width solid $input--border; + box-shadow: $form--element--box-shadow; + + &::placeholder { + color: $input--foreground--placeholder; + transition: color $speed--xx-fast; + } + + &:hover { + border-color: $input--border--hover; + color: $input--foreground--hover; + + &::placeholder { + color: $input--foreground--placeholder--hover; + } + } + + &:active, + &:focus { + background-color: $blue--soft; + color: desaturate($blue--darker, 25%); + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + + &::placeholder { + color: rgba($blue--light, 0.5); + } + } + + .inverse & { + background: $input--inverse--background; + border: $form--element--border-width solid $input--inverse--border; + box-shadow: $form--element--inverse--box-shadow; + color: $input--inverse--foreground; + + &::placeholder { + color: $input--inverse--foreground--placeholder; + } + + &:hover { + border-color: $input--inverse--border--hover; + color: $input--inverse--foreground--hover; + + &::placeholder { + color: $input--inverse--foreground--placeholder--hover; + } + } + + &:active, + &:focus { + background-color: rgba($blue--soft, 0.15); + color: $input--inverse--foreground--active; + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + + &::placeholder { + color: $input--inverse--foreground--placeholder--active; + } + } + } + + &--hidden { + left: 0; + opacity: 0; + position: absolute; + top: 0; + z-index: -1; + } +} + +.toggle-input { + align-items: center; + cursor: pointer; + display: flex; + outline: none; + padding: $form--element--padding--y 0 $form--element--padding--y $toggle-input--width + $spacing--x-small; + position: relative; + transition: all $speed--x-fast; + user-select: none; + + &:hover { + transition: all $speed--xx-fast; + + .toggle-input { + + &__indicator { + border-color: $input--border--hover; + + .inverse & { + border-color: $input--inverse--border--hover; + } + + &, + &__icon { + transition: all $speed--xx-fast; + } + + &__icon { + + &, + .icon { + display: block; + } + } + } + } + } + + &:focus, + &:active { + color: $blue; + + .toggle-input { + + &__indicator { + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + + .inverse & { + border-color: $blue; + box-shadow: form--element--box-shadow--active($blue); + } + + &, + &__icon { + transition: all $speed--xx-fast; + + .icon { + fill: $blue; + } + } + } + } + } + + &:active, + &--is-active { + + .toggle-input { + + &__indicator { + background-color: rgba($blue, 0.1); + color: rgba($blue, 0.8); + + .inverse & { + background-color: rgba($blue, 0.1); + color: rgba($blue, 0.8); + } + + &__icon { + opacity: 0.25; + } + } + } + } + + &__element { + position: absolute; + visibility: hidden; + + &:checked { + + & + .toggle-input { + + &__indicator { + + .toggle-input { + + &__indicator { + + &__icon { + opacity: 1; + } + } + } + } + } + } + } + + &__indicator { + background: $input--background; + border: $form--element--border-width solid $input--border; + box-shadow: $form--element--box-shadow; + display: inline-block; + height: $toggle-input--height; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); + transition: all $speed--x-fast; + width: $toggle-input--width; + + &__icon { + opacity: 0; + transition: all $speed--x-fast; + + &, + .icon { + height: 100%; + width: 100%; + } + + .icon { + fill: $grey; + transition: all $speed--x-fast; + } + } + + .inverse & { + background: $input--inverse--background; + border: $form--element--border-width solid $input--inverse--border; + box-shadow: $form--element--inverse--box-shadow; + } + } + + &.checkbox { + + .toggle-input { + + &__indicator { + border-radius: $form--element--border-radius; + } + } + } + + &.radio { + + .toggle-input { + + &__indicator { + border-radius: 100%; + } + } + } +} diff --git a/client/src/sass/ui/components/overlay.scss b/client/src/sass/ui/components/overlay.scss new file mode 100644 index 000000000..a70a55455 --- /dev/null +++ b/client/src/sass/ui/components/overlay.scss @@ -0,0 +1,17 @@ +.overlay { + background: rgba($darker-grey, 0.95); + bottom: 0; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 100; + + &--transparent { + background: transparent; + } + + &--no-interaction { + pointer-events: none; + } +} diff --git a/client/src/sass/ui/components/panel.scss b/client/src/sass/ui/components/panel.scss new file mode 100644 index 000000000..4606b2c70 --- /dev/null +++ b/client/src/sass/ui/components/panel.scss @@ -0,0 +1,112 @@ + +$panel--spacing--horizontal--medium: $spacing--x-large; +$panel--spacing--vertical--medium: $spacing--medium; + +$panel--spacing--horizontal--large: $spacing--xxx-large; +$panel--spacing--vertical--large: $spacing--xx-large; + +.panel { + border: 1px solid $grey--lighter; + border-radius: $border-radius--medium; + box-shadow: panel--box-shadow($grey--lighter); + overflow: hidden; + + &--medium { + + .panel { + + &__content { + padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium; + } + + &__header { + padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium 0 $panel--spacing--horizontal--medium; + + &--has-border { + padding-bottom: $panel--spacing--vertical--medium; + } + } + + &__footer { + padding: 0 $panel--spacing--horizontal--medium $panel--spacing--vertical--medium $panel--spacing--horizontal--medium; + + &--has-border { + padding-top: $panel--spacing--vertical--medium; + } + } + } + } + + &--large { + + .panel { + + &__content { + padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large; + } + + &__header { + padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large 0 $panel--spacing--horizontal--large; + + &--has-border { + padding-bottom: $panel--spacing--vertical--large; + } + } + + &__footer { + padding: 0 $panel--spacing--horizontal--large $panel--spacing--vertical--large $panel--spacing--horizontal--large ; + + &--has-border { + padding-top: $panel--spacing--vertical--large; + } + } + } + } + + &__header { + + &--has-border { + border-bottom: 1px solid $grey--soft; + } + + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { + margin: 0; + } + } + + &__content { + + &--has-border { + + &--top { + border-top: 1px solid $grey--soft; + } + + &--bottom { + border-bottom: 1px solid $grey--soft; + } + } + } + + &__footer { + + &--has-border { + border-top: 1px solid $grey--soft; + } + } + + &--light { + background: #fff; + } +} diff --git a/client/src/sass/ui/components/portal.scss b/client/src/sass/ui/components/portal.scss new file mode 100644 index 000000000..af1afc745 --- /dev/null +++ b/client/src/sass/ui/components/portal.scss @@ -0,0 +1,5 @@ +.portal { + overflow: hidden; + position: relative; + z-index: 1000; +} diff --git a/client/src/sass/ui/components/section.scss b/client/src/sass/ui/components/section.scss new file mode 100644 index 000000000..0b896a2f0 --- /dev/null +++ b/client/src/sass/ui/components/section.scss @@ -0,0 +1,16 @@ +.section { + margin-bottom: $spacing--xxx-large; + + &__heading { + margin-bottom: $spacing; + margin-top: 0; + } + + &.inverse { + background: $another-grey; + } + + &.padded { + padding: $spacing--large $spacing--x-large; + } +} diff --git a/client/src/sass/ui/components/select.scss b/client/src/sass/ui/components/select.scss new file mode 100644 index 000000000..e65ac06bb --- /dev/null +++ b/client/src/sass/ui/components/select.scss @@ -0,0 +1,98 @@ +.select { + position: relative; + + &__button { + position: relative; + text-align: left; + + &:hover { + + .select { + + &__indicator { + + .icon { + fill: $grey--hard; + } + } + } + } + + &:focus, + &:active { + + .select { + + &__indicator { + + .icon { + fill: $blue; + transition: all $speed--xx-fast; + } + } + } + } + + .icon { + display: none; + } + + .select { + + &__item { + overflow: hidden; + text-overflow: ellipsis; + } + } + } + + &__item { + cursor: pointer; + padding: $spacing--x-small $spacing--small; + position: relative; + transition: all $speed--xx-fast; + z-index: 1; + + .context-menu__items & { + + &:hover { + background: $light-grey--lighter; + } + } + + .icon { + fill: $grey; + height: 14px; + right: $spacing--small; + opacity: 0; + position: absolute; + top: 50%; + transform: translateY(-60%); + transition: all $speed--xx-fast; + width: 14px; + } + + &--is-selected { + color: $blue; + font-weight: 500; + + .icon { + fill: $blue; + opacity: 1; + } + } + } + + &--is-open { + + .select { + + &__indicator { + + .icon { + transform: translate(-50%, -50%) rotate(180deg); + } + } + } + } +} diff --git a/client/src/sass/ui/config/border-radius.scss b/client/src/sass/ui/config/border-radius.scss new file mode 100644 index 000000000..bc9ecf876 --- /dev/null +++ b/client/src/sass/ui/config/border-radius.scss @@ -0,0 +1,3 @@ +$border-radius--large: $spacing--small; +$border-radius--medium: $spacing--xx-small + 1; +$border-radius--small: $spacing--xx-small; diff --git a/client/src/sass/ui/config/colors.scss b/client/src/sass/ui/config/colors.scss new file mode 100644 index 000000000..119527d58 --- /dev/null +++ b/client/src/sass/ui/config/colors.scss @@ -0,0 +1,49 @@ +@function harden($color, $modifier: 1) { + @return darken($color, 6% * $modifier); +} + +$white: #fff; + +$red: #f34570; +$red--alpha--light: rgba($red, 0.1); +$red--alpha--medium: rgba($red, 0.2); + +$blue: #349CF4; +$blue--light: lighten($blue, 7%); +$blue--lighter: lighten($blue, 40%); +$blue--soft: rgba($blue, 0.05); +$blue--hard: harden($blue, 1.5); + +$blue--darker: darken($blue, 20%); + +$green: #39CE83; +$green--light: lighten($green, 7%); +$green--hard: harden($green, 1.3); + +$medium-grey: #ABBAC7; +$medium-grey--lighter: #B9C7D3; +$medium-grey--soft: rgba($medium-grey, 0.15); + +$grey: #8899A8; +$grey--soft: rgba($grey, 0.15); +$grey--light: lighten($grey, 7%); +$grey--lighter: lighten($grey, 25%); +$grey--hard: harden($grey, 1.75); +$grey--harder: harden($grey, 1); + +$dark-grey: #34516C; +$dark-grey--light: lighten($dark-grey, 7%); + +$darker-grey: #1D2938; + +$darkest-grey: #28303b; + +$darkest-grey--hard: #293341; +$darkest-grey--darker: #202D3C; + +$another-grey: #3A4553; + +$light-grey: #E9EEF2; +$light-grey--lighter: #F8F9FB; +$light-grey--soft: rgba($light-grey, 0.15); +$light-grey--hard: harden($light-grey); diff --git a/client/src/sass/ui/config/font-size.scss b/client/src/sass/ui/config/font-size.scss new file mode 100644 index 000000000..04f126e32 --- /dev/null +++ b/client/src/sass/ui/config/font-size.scss @@ -0,0 +1,9 @@ +$base-font-size: 16px; + +$font-size--xx-large: (1 + 3/8) + 0rem; +$font-size--x-large: (1 + 1/4) + 0rem; +$font-size--large: (1 + 1/8) + 0rem; +$font-size--medium: 1rem; +$font-size--small: (7/8) + 0rem; +$font-size--x-small: (3/4) + 0rem; +$font-size--xx-small: (5/8) + 0rem; diff --git a/client/src/sass/ui/config/spacing.scss b/client/src/sass/ui/config/spacing.scss new file mode 100644 index 000000000..5365e607f --- /dev/null +++ b/client/src/sass/ui/config/spacing.scss @@ -0,0 +1,20 @@ +$spacing: 12px; + +$spacing--xx-small: $spacing * 1/4; +$spacing--x-small: $spacing * 2/4; +$spacing--small: $spacing * 3/4; +$spacing--medium: $spacing * 5/4; +$spacing--large: $spacing * 6/4; +$spacing--x-large: $spacing * 7/4; +$spacing--xx-large: $spacing * 8/4; +$spacing--xxx-large: $spacing * 12/4; + +// Specifics +$app-panel--padding--x: $spacing--large; +$app-panel--padding--y: $spacing--xx-large; + +$app--heading--padding--x: $app-panel--padding--x; +$app--heading--padding--y: $spacing--x-small; + +$app--sidebar--item--padding--x: $app-panel--padding--x; +$app--sidebar--item--padding--y: $spacing--small; diff --git a/client/src/sass/ui/config/speed.scss b/client/src/sass/ui/config/speed.scss new file mode 100644 index 000000000..5dc465521 --- /dev/null +++ b/client/src/sass/ui/config/speed.scss @@ -0,0 +1,9 @@ +$base-speed: 1s; + +$speed--xx-slow: 7/8 * $base-speed; +$speed--x-slow: 3/4 * $base-speed; +$speed--slow: 5/8 * $base-speed; +$speed--medium: 1/2 * $base-speed; +$speed--fast: 3/8 * $base-speed; +$speed--x-fast: 1/4 * $base-speed; +$speed--xx-fast: 1/8 * $base-speed; diff --git a/client/src/sass/ui/config/variables.scss b/client/src/sass/ui/config/variables.scss new file mode 100644 index 000000000..7f80e719d --- /dev/null +++ b/client/src/sass/ui/config/variables.scss @@ -0,0 +1,52 @@ +// Forms +$form--element--border-radius: $border-radius--medium; +$form--element--border-width: 1px; +$form--element--height: 34px; +$form--element--padding--x: $spacing--small + $spacing--xx-small; +$form--element--padding--y: 0; +$form__row--margin--vertical: $spacing--medium; + +// Checkboxes & Radio buttons +$toggle-input--height: $spacing--large; +$toggle-input--width: $spacing--large; + +// Select +$select--indicator--width: $form--element--padding--x * 2 + $spacing--small; +$select--button--padding-right: $select--indicator--width + $spacing--x-small; + +// Input Elements +$input--background: $white; +$input--border: $grey--lighter; +$input--border--hover: $medium-grey; +$form--element--box-shadow: form--element--box-shadow($grey--lighter); +$input--foreground: $grey; +$input--foreground--hover: $grey--hard; +$input--foreground--placeholder: rgba($medium-grey, 0.5); +$input--foreground--placeholder--hover: rgba($grey--light, 0.6); + +// Inverse input Elements +$input--inverse--background: $darkest-grey--hard; +$input--inverse--border: $darkest-grey--darker; +$input--inverse--border--hover: darken($darkest-grey--darker, 5%); +$form--element--inverse--box-shadow: form--element--box-shadow($darkest-grey--hard); +$input--inverse--foreground: $grey; +$input--inverse--foreground--hover: $grey--lighter; +$input--inverse--foreground--active: $blue--lighter; +$input--inverse--foreground--placeholder--active: rgba(lighten($blue, 15%), 0.5); +$input--inverse--foreground--placeholder: rgba($medium-grey, 0.25); +$input--inverse--foreground--placeholder--hover: rgba($medium-grey, 0.4); + +$input--addon--width: $form--element--padding--x * 2 + $spacing--small + $form--element--border-width; +$input--addon--padding--right: $input--addon--width + $form--element--padding--x / 2; +$input--addon--padding--left: $input--addon--width + $form--element--padding--x / 2; +$input--two-addons--padding--right: $input--addon--width * 2 + $form--element--padding--x / 2; +$input--two-addons--padding--left: $input--addon--width * 2 + $form--element--padding--x / 2; + +// Button +$button--addon--width: $input--addon--width; +$button--has-addon--padding--right: $input--addon--padding--right; +$button--has-addon--padding--left: $input--addon--padding--left; +$button--has-two-addons--padding--right: $input--two-addons--padding--right; +$button--has-two-addons--padding--left: $input--two-addons--padding--left; + +$font-family--monospace: monaco, Consolas, "Lucida Console", monospace; diff --git a/client/src/sass/ui/index.scss b/client/src/sass/ui/index.scss new file mode 100644 index 000000000..21b41b5db --- /dev/null +++ b/client/src/sass/ui/index.scss @@ -0,0 +1,22 @@ +@import './util/box-shadows'; + +@import './config/spacing'; +@import './config/border-radius'; +@import './config/colors'; +@import './config/font-size'; +@import './config/speed'; +@import './config/variables'; + +@import './components/button'; +@import './components/context-menu'; +@import './components/container'; +@import './components/error'; +@import './components/form'; +@import './components/element-addon'; +@import './components/icon'; +@import './components/input'; +@import './components/overlay'; +@import './components/panel'; +@import './components/portal'; +@import './components/section'; +@import './components/select'; diff --git a/client/src/sass/ui/util/box-shadows.scss b/client/src/sass/ui/util/box-shadows.scss new file mode 100644 index 000000000..88de358a2 --- /dev/null +++ b/client/src/sass/ui/util/box-shadows.scss @@ -0,0 +1,27 @@ +@function form--element--box-shadow($color, $smallShadowOpacity:0.15, $bigShadowOpacity:0.2) { + @return 0 1px 1px rgba($color, $smallShadowOpacity), + 0 1px 3px 1px rgba($color, $bigShadowOpacity); +} + +@function form--element--box-shadow--active($color) { + @return form--element--box-shadow($color), + 0 0 0 1px rgba($color, 1); +} + +@function form--element--inverse--box-shadow--active($color) { + @return 0 0 0 2px rgba($color, 0.4); +} + +@function form--element--box-shadow--active--slim($color) { + @return form--element--box-shadow($color), + 0 0 0 2px rgba($color, 0.2); +} + +@function form--element--box-shadow--active--smaller($color) { + @return form--element--box-shadow($color), + 0 0 0 2px rgba($color, 0.2); +} + +@function panel--box-shadow($color) { + @return form--element--box-shadow($color); +} diff --git a/package-lock.json b/package-lock.json index b0de19f1c..b7e7352d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7906,61 +7906,6 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, - "flood-ui-kit": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/flood-ui-kit/-/flood-ui-kit-0.1.11.tgz", - "integrity": "sha512-mUEna1knrqnFa4bUnXzevvxjMBOgjidO+36uQ1XB4TpIKNdmTjdwbyoIkBhYySPCXgbq1fPdvmg8RVOFjTQS1Q==", - "requires": { - "classnames": "^2.2.6", - "normalize.css": "^7.0.0", - "prop-types": "^15.7.2", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "react-router": "^5.1.2", - "react-router-dom": "^5.1.2", - "react-transition-group": "^4.3.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "react-router": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", - "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.3.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - } - } - }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -8493,11 +8438,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, - "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", @@ -10882,16 +10822,6 @@ "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", "dev": true }, - "mini-create-react-context": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", - "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", - "requires": { - "@babel/runtime": "^7.4.0", - "gud": "^1.0.0", - "tiny-warning": "^1.0.2" - } - }, "miniget": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/miniget/-/miniget-1.7.2.tgz", @@ -11732,11 +11662,6 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, - "normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" - }, "npm-bundled": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", diff --git a/package.json b/package.json index a24bf82cf..675d4d365 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "express": "^4.17.1", "feedsub": "^0.7.1", "file-loader": "^6.0.0", - "flood-ui-kit": "^0.1.11", "flux": "^3.1.3", "fs-extra": "^9.0.1", "geoip-country": "^4.0.31", From f4f83f6efce042a4b38b47885d7f98afb6d395c5 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 13:44:35 +0800 Subject: [PATCH 052/651] prettier: format and check stylesheets --- client/src/sass/base/_animations.scss | 4 - client/src/sass/base/_font-families.scss | 27 ++--- client/src/sass/base/_layout.scss | 1 - client/src/sass/base/_typography.scss | 5 +- client/src/sass/components/_action-bar.scss | 9 +- client/src/sass/components/_client-stats.scss | 13 +-- .../sass/components/_connection-status.scss | 2 +- .../src/sass/components/_dependency-list.scss | 2 - .../src/sass/components/_directory-tree.scss | 35 ------ client/src/sass/components/_dropdown.scss | 8 +- client/src/sass/components/_dropzone.scss | 10 -- client/src/sass/components/_duration.scss | 1 - client/src/sass/components/_filesystem.scss | 2 - .../src/sass/components/_floating-action.scss | 3 - client/src/sass/components/_icons.scss | 10 -- .../sass/components/_loading-indicator.scss | 2 - client/src/sass/components/_mediainfo.scss | 2 - .../src/sass/components/_notifications.scss | 10 -- client/src/sass/components/_peers-list.scss | 2 - .../src/sass/components/_priority-meter.scss | 9 -- client/src/sass/components/_progress-bar.scss | 32 ++++-- client/src/sass/components/_scrollbars.scss | 2 - client/src/sass/components/_search.scss | 1 - .../src/sass/components/_sidebar-filter.scss | 3 - .../src/sass/components/_sort-dropdown.scss | 1 - .../src/sass/components/_sortable-list.scss | 4 +- client/src/sass/components/_table.scss | 9 +- .../sass/components/_textbox-repeater.scss | 1 - client/src/sass/components/_toolbar.scss | 4 - client/src/sass/components/_tooltip.scss | 32 ------ .../components/_torrent-details-panel.scss | 21 ---- client/src/sass/components/_torrent.scss | 85 +-------------- .../src/sass/components/_transfer-data.scss | 1 - client/src/sass/style.scss | 100 +++++++++--------- client/src/sass/tools/_colors.scss | 2 +- client/src/sass/ui/components/button.scss | 9 +- .../src/sass/ui/components/context-menu.scss | 12 +-- .../src/sass/ui/components/element-addon.scss | 4 - client/src/sass/ui/components/form.scss | 4 - client/src/sass/ui/components/icon.scss | 1 - client/src/sass/ui/components/input.scss | 14 --- client/src/sass/ui/components/panel.scss | 21 ++-- client/src/sass/ui/components/select.scss | 11 -- client/src/sass/ui/config/colors.scss | 22 ++-- client/src/sass/ui/config/variables.scss | 2 +- client/src/sass/ui/util/box-shadows.scss | 14 +-- client/src/sass/views/_feeds.scss | 3 +- client/src/sass/views/_login.scss | 9 +- scripts/prettier.js | 2 +- 49 files changed, 128 insertions(+), 455 deletions(-) diff --git a/client/src/sass/base/_animations.scss b/client/src/sass/base/_animations.scss index fa3e6d6ab..5cfd80c82 100644 --- a/client/src/sass/base/_animations.scss +++ b/client/src/sass/base/_animations.scss @@ -1,5 +1,4 @@ @keyframes fade-in { - 0% { opacity: 0; } @@ -7,11 +6,9 @@ 100% { opacity: 1; } - } @keyframes fade-out { - 0% { opacity: 1; } @@ -19,5 +16,4 @@ 100% { opacity: 0; } - } diff --git a/client/src/sass/base/_font-families.scss b/client/src/sass/base/_font-families.scss index 385d7aa1b..dcdd04268 100644 --- a/client/src/sass/base/_font-families.scss +++ b/client/src/sass/base/_font-families.scss @@ -3,10 +3,8 @@ font-weight: 400; font-style: normal; src: url('../fonts/Roboto-regular/Roboto-regular.eot'); - src: url('../fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'), - local('Roboto'), - local('Roboto-regular'), - url('../fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'), + src: url('../fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'), local('Roboto'), + local('Roboto-regular'), url('../fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'), url('../fonts/Roboto-regular/Roboto-regular.woff') format('woff'), url('../fonts/Roboto-regular/Roboto-regular.ttf') format('truetype'), url('../fonts/Roboto-regular/Roboto-regular.svg#Roboto') format('svg'); @@ -17,10 +15,8 @@ font-weight: 500; font-style: normal; src: url('../fonts/Roboto-500/Roboto-500.eot'); - src: url('../fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'), - local('Roboto Medium'), - local('Roboto-500'), - url('../fonts/Roboto-500/Roboto-500.woff2') format('woff2'), + src: url('../fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'), local('Roboto Medium'), + local('Roboto-500'), url('../fonts/Roboto-500/Roboto-500.woff2') format('woff2'), url('../fonts/Roboto-500/Roboto-500.woff') format('woff'), url('../fonts/Roboto-500/Roboto-500.ttf') format('truetype'), url('../fonts/Roboto-500/Roboto-500.svg#Roboto') format('svg'); @@ -31,10 +27,8 @@ font-weight: 700; font-style: normal; src: url('../fonts/Roboto-700/Roboto-700.eot'); - src: url('../fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'), - local('Roboto Bold'), - local('Roboto-700'), - url('../fonts/Roboto-700/Roboto-700.woff2') format('woff2'), + src: url('../fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'), local('Roboto Bold'), + local('Roboto-700'), url('../fonts/Roboto-700/Roboto-700.woff2') format('woff2'), url('../fonts/Roboto-700/Roboto-700.woff') format('woff'), url('../fonts/Roboto-700/Roboto-700.ttf') format('truetype'), url('../fonts/Roboto-700/Roboto-700.svg#Roboto') format('svg'); @@ -45,10 +39,8 @@ font-weight: 400; font-style: italic; src: url('../fonts/Roboto-italic/Roboto-italic.eot'); - src: url('../fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'), - local('Roboto Italic'), - local('Roboto-italic'), - url('../fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'), + src: url('../fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'), local('Roboto Italic'), + local('Roboto-italic'), url('../fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'), url('../fonts/Roboto-italic/Roboto-italic.woff') format('woff'), url('../fonts/Roboto-italic/Roboto-italic.ttf') format('truetype'), url('../fonts/Roboto-italic/Roboto-italic.svg#Roboto') format('svg'); @@ -60,8 +52,7 @@ font-style: italic; src: url('../fonts/Roboto-700italic/Roboto-700italic.eot'); src: url('../fonts/Roboto-700italic/Roboto-700italic.eot?#iefix') format('embedded-opentype'), - local('Roboto Bold Italic'), - local('Roboto-700italic'), + local('Roboto Bold Italic'), local('Roboto-700italic'), url('../fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2'), url('../fonts/Roboto-700italic/Roboto-700italic.woff') format('woff'), url('../fonts/Roboto-700italic/Roboto-700italic.ttf') format('truetype'), diff --git a/client/src/sass/base/_layout.scss b/client/src/sass/base/_layout.scss index b16ddaf8d..769976df5 100644 --- a/client/src/sass/base/_layout.scss +++ b/client/src/sass/base/_layout.scss @@ -17,7 +17,6 @@ body { } .application { - &, &__view { align-content: center; diff --git a/client/src/sass/base/_typography.scss b/client/src/sass/base/_typography.scss index dfcc79521..b245960f6 100644 --- a/client/src/sass/base/_typography.scss +++ b/client/src/sass/base/_typography.scss @@ -24,7 +24,7 @@ h1, h2, h3, h4, -h5 +h5, h6, .h1, .h2, @@ -104,10 +104,9 @@ p { } .copy { - &--lead { font-size: $font-size--medium; line-height: 1.5rem; font-weight: 300; } -} \ No newline at end of file +} diff --git a/client/src/sass/components/_action-bar.scss b/client/src/sass/components/_action-bar.scss index ed4fecba2..6dbb6a139 100644 --- a/client/src/sass/components/_action-bar.scss +++ b/client/src/sass/components/_action-bar.scss @@ -24,7 +24,6 @@ $torrent-list--border: rgba($sidebar--background, 0.15); } &__item { - &:first-child { text-align: left; } @@ -97,9 +96,7 @@ $torrent-list--border: rgba($sidebar--background, 0.15); } .action { - box-shadow: - 1px 0 transparent, - -1px 0 transparent; + box-shadow: 1px 0 transparent, -1px 0 transparent; cursor: pointer; display: inline-block; height: 60px; @@ -110,9 +107,7 @@ $torrent-list--border: rgba($sidebar--background, 0.15); &:hover { background: $action--background--hover; - box-shadow: - 1px 0 $action--border--hover, - -1px 0 $action--border--hover; + box-shadow: 1px 0 $action--border--hover, -1px 0 $action--border--hover; .icon { fill: $action--foreground--hover; diff --git a/client/src/sass/components/_client-stats.scss b/client/src/sass/components/_client-stats.scss index 1933deabd..0813b836f 100644 --- a/client/src/sass/components/_client-stats.scss +++ b/client/src/sass/components/_client-stats.scss @@ -5,11 +5,11 @@ $client-stats--speed--stroke--width: 2px; $client-stats--download--primary--foreground: #39ce83; $client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75); -$client-stats--download--graph--stroke: #39Ce83; +$client-stats--download--graph--stroke: #39ce83; $client-stats--download--graph--fill--top: #2bae6c; $client-stats--download--graph--fill--bottom: #2bae6c; -$client-stats--upload--primary--foreground: #349Cf4; +$client-stats--upload--primary--foreground: #349cf4; $client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75); $client-stats--upload--graph--stroke: #349cf4; $client-stats--upload--graph--fill--top: #2387d9; @@ -40,11 +40,8 @@ $client-stats--timestamp--foreground: #526780; color: $client-stats--download--primary--foreground; .client-stats { - &__rate { - &__data { - &--limit { background: $client-stats--download--primary--foreground; } @@ -61,11 +58,8 @@ $client-stats--timestamp--foreground: #526780; color: $client-stats--upload--primary--foreground; .client-stats { - &__rate { - &__data { - &--limit { background: $client-stats--upload--primary--foreground; } @@ -91,7 +85,6 @@ $client-stats--timestamp--foreground: #526780; } &__data { - &--secondary, &--timestamp { font-size: 0.8em; @@ -178,9 +171,7 @@ $client-stats--timestamp--foreground: #526780; } .graph { - &__gradient { - &--bottom { stop-opacity: $client-stats--speed--fill--bottom--opacity; diff --git a/client/src/sass/components/_connection-status.scss b/client/src/sass/components/_connection-status.scss index c48dbb30a..ffc57492c 100644 --- a/client/src/sass/components/_connection-status.scss +++ b/client/src/sass/components/_connection-status.scss @@ -13,4 +13,4 @@ color: $light-grey--lighter; font-size: 14px; } -} \ No newline at end of file +} diff --git a/client/src/sass/components/_dependency-list.scss b/client/src/sass/components/_dependency-list.scss index f846bc477..82d5ea21d 100644 --- a/client/src/sass/components/_dependency-list.scss +++ b/client/src/sass/components/_dependency-list.scss @@ -28,9 +28,7 @@ opacity: 1; .dependency-list { - &__dependency { - &__icon { opacity: 1; } diff --git a/client/src/sass/components/_directory-tree.scss b/client/src/sass/components/_directory-tree.scss index 06ba74688..0d85dc433 100644 --- a/client/src/sass/components/_directory-tree.scss +++ b/client/src/sass/components/_directory-tree.scss @@ -14,18 +14,14 @@ $selection-toolbar--height: $spacing-unit * 1.5; min-height: 0; &--toolbar-visible { - .directory-tree { - &__selection-toolbar { transform: translateY(0); } } .modal__content { - &--nested-scroll { - &__content { margin-bottom: $selection-toolbar--height; } @@ -70,16 +66,13 @@ $selection-toolbar--height: $spacing-unit * 1.5; } .dropdown { - &__items { font-size: 1.1em; padding-bottom: 0; } &__trigger { - .dropdown { - &__button { padding-top: 5px; padding-bottom: 5px; @@ -99,7 +92,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; text-overflow: ellipsis; .icon { - &--disk { height: 14px; margin-right: 8px; @@ -109,11 +101,8 @@ $selection-toolbar--height: $spacing-unit * 1.5; } .directory-tree { - &__checkbox { - .checkbox { - &__decoy { height: 18px; width: 18px; @@ -124,7 +113,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; } &__tree { - .directory-tree__tree { padding-left: 0; } @@ -138,15 +126,10 @@ $selection-toolbar--height: $spacing-unit * 1.5; white-space: nowrap; &:hover > .file__label .directory-tree { - &__checkbox { - .directory-tree { - &__checkbox { - &__item { - &--icon { opacity: 0; } @@ -155,9 +138,7 @@ $selection-toolbar--height: $spacing-unit * 1.5; opacity: 1; .checkbox { - &__decoy { - &:after { opacity: 1; } @@ -171,15 +152,10 @@ $selection-toolbar--height: $spacing-unit * 1.5; } &--selected .directory-tree { - &__checkbox { - .directory-tree { - &__checkbox { - &__item { - &--icon { opacity: 0.75; } @@ -214,7 +190,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; width: auto; .icon { - &--file { transition: fill 0.25s; } @@ -232,7 +207,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; } &--priority { - .icon { height: auto; margin-right: 0; @@ -286,7 +260,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; z-index: 2; .checkbox { - &__decoy { height: 16px; margin-right: 0; @@ -300,7 +273,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; z-index: 1; .icon { - &.icon--folder { margin: -1px 0 0 1px; } @@ -310,11 +282,8 @@ $selection-toolbar--height: $spacing-unit * 1.5; } & > .directory-tree { - &__tree { - & > .directory-tree { - &__node { padding-left: 0; } @@ -323,7 +292,6 @@ $selection-toolbar--height: $spacing-unit * 1.5; } .icon { - &--file, &--folder { height: 14px; @@ -337,11 +305,8 @@ $selection-toolbar--height: $spacing-unit * 1.5; } .directory-tree { - &__node { - .file { - &__label { align-items: center; display: flex; diff --git a/client/src/sass/components/_dropdown.scss b/client/src/sass/components/_dropdown.scss index 183a076e8..43f6f4910 100644 --- a/client/src/sass/components/_dropdown.scss +++ b/client/src/sass/components/_dropdown.scss @@ -41,7 +41,8 @@ $dropdown--item--foreground--active: $menu--item--foreground--active; &__button { display: block; - padding: $dropdown--button--padding--top $dropdown--button--padding--right + $dropdown--arrow--width + $dropdown--arrow--margin $dropdown--button--padding--bottom $dropdown--button--padding--left; + padding: $dropdown--button--padding--top $dropdown--button--padding--right + $dropdown--arrow--width + + $dropdown--arrow--margin $dropdown--button--padding--bottom $dropdown--button--padding--left; text-align: left; width: auto; @@ -136,9 +137,7 @@ $dropdown--item--foreground--active: $menu--item--foreground--active; } &--match-button-width { - .dropdown { - &__content { max-width: 100%; } @@ -153,11 +152,8 @@ $dropdown--item--foreground--active: $menu--item--foreground--active; z-index: 10; .dropdown { - &__header { - .dropdown { - &__value { color: $dropdown--value--active; } diff --git a/client/src/sass/components/_dropzone.scss b/client/src/sass/components/_dropzone.scss index 2e4f4e2f1..bf557ce88 100644 --- a/client/src/sass/components/_dropzone.scss +++ b/client/src/sass/components/_dropzone.scss @@ -22,7 +22,6 @@ $dropzone--file--foreground: $dropzone--foreground; border-color: $input--inverse--border--hover; .dropzone__icon { - .icon { fill: $dropzone--icon--fill--hover; } @@ -30,14 +29,12 @@ $dropzone--file--foreground: $dropzone--foreground; } &--is-dragging { - &, &:hover { border-color: $dropzone--border--dragging; color: $dropzone--foreground--dragging; .dropzone__icon { - .icon { fill: $dropzone--icon--fill--dragging; } @@ -46,9 +43,7 @@ $dropzone--file--foreground: $dropzone--foreground; } &__icon { - .icon { - &--files { fill: $dropzone--icon--fill; height: 64px; @@ -56,7 +51,6 @@ $dropzone--file--foreground: $dropzone--foreground; width: 64px; &__file { - &--right, &--left { fill-opacity: 0.5; @@ -97,9 +91,7 @@ $dropzone--file--foreground: $dropzone--foreground; } &__file { - .icon { - &--file { display: inline-block; height: 14px; @@ -114,9 +106,7 @@ $dropzone--file--foreground: $dropzone--foreground; } &:hover { - .icon { - &--file { opacity: 0.5; } diff --git a/client/src/sass/components/_duration.scss b/client/src/sass/components/_duration.scss index 4cb231bb5..29d21456e 100644 --- a/client/src/sass/components/_duration.scss +++ b/client/src/sass/components/_duration.scss @@ -1,5 +1,4 @@ .duration { - &--segment { margin-right: 0.25em; diff --git a/client/src/sass/components/_filesystem.scss b/client/src/sass/components/_filesystem.scss index 3acc78178..fddbe3391 100644 --- a/client/src/sass/components/_filesystem.scss +++ b/client/src/sass/components/_filesystem.scss @@ -4,7 +4,6 @@ $filesystem--directory-list--background--hover: rgba($filesystem--directory-list $filesystem--directory-list--parent--border-color: lighten($filesystem--directory-list--foreground, 43%); .filesystem { - &__directory-list { color: $filesystem--directory-list--foreground; list-style: none; @@ -26,7 +25,6 @@ $filesystem--directory-list--parent--border-color: lighten($filesystem--director } &--directory { - &:hover { background: $filesystem--directory-list--background--hover; } diff --git a/client/src/sass/components/_floating-action.scss b/client/src/sass/components/_floating-action.scss index bcb29362a..fdfdf2dda 100644 --- a/client/src/sass/components/_floating-action.scss +++ b/client/src/sass/components/_floating-action.scss @@ -6,7 +6,6 @@ $textbox-repeater--button--foreground: rgba(#12191f, 0.7); $textbox-repeater--button--foreground--hover: #12191f; .floating-action { - &__button { background: $textbox-repeater--button--background; border: none; @@ -46,7 +45,6 @@ $textbox-repeater--button--foreground--hover: #12191f; } &--search { - .icon { height: 15px; width: 15px; @@ -55,7 +53,6 @@ $textbox-repeater--button--foreground--hover: #12191f; } &__group { - &--on-textbox { display: flex; margin-top: -8px; diff --git a/client/src/sass/components/_icons.scss b/client/src/sass/components/_icons.scss index 3ce788c0c..be1c1a69e 100644 --- a/client/src/sass/components/_icons.scss +++ b/client/src/sass/components/_icons.scss @@ -19,11 +19,8 @@ } .icon { - &--eta { - .icon { - &__ring { fill-opacity: 1; } @@ -31,7 +28,6 @@ } &--information { - &__fill { fill-opacity: 0.05; } @@ -42,11 +38,8 @@ } &--limits { - .limits { - &__bars { - &--top { fill-opacity: 0.4; } @@ -63,11 +56,8 @@ } &--loading-indicator { - .loading-indicator { - &--dots { - &__dot { animation: loading-indicator-dots-pulse 0.6s linear alternate infinite; fill: $white; diff --git a/client/src/sass/components/_loading-indicator.scss b/client/src/sass/components/_loading-indicator.scss index 539e3e72f..a350df33b 100644 --- a/client/src/sass/components/_loading-indicator.scss +++ b/client/src/sass/components/_loading-indicator.scss @@ -23,9 +23,7 @@ $loading-indicator--tick--background--inverse: rgba($blue, 0.75); width: 32px; &.is-inverse { - .loading-indicator { - &__bar { background: $loading-indicator--bar--background--inverse; diff --git a/client/src/sass/components/_mediainfo.scss b/client/src/sass/components/_mediainfo.scss index cdf621e9c..161263e30 100644 --- a/client/src/sass/components/_mediainfo.scss +++ b/client/src/sass/components/_mediainfo.scss @@ -17,9 +17,7 @@ } &__copy-button { - &.tooltip { - &__wrapper { position: absolute; right: 0; diff --git a/client/src/sass/components/_notifications.scss b/client/src/sass/components/_notifications.scss index 503ce0980..203f8b66f 100644 --- a/client/src/sass/components/_notifications.scss +++ b/client/src/sass/components/_notifications.scss @@ -1,15 +1,12 @@ $notification--sub-heading--color: saturate(lighten(#7189a8, 5%), 5%); .notifications { - &--empty { text-align: center; } &--is-loading { - .notifications { - &__list { opacity: 0.25; } @@ -64,9 +61,7 @@ $notification--sub-heading--color: saturate(lighten(#7189a8, 5%), 5%); width: 24px; .loading-indicator { - &--dots { - &__dot { fill: currentColor; } @@ -76,11 +71,8 @@ $notification--sub-heading--color: saturate(lighten(#7189a8, 5%), 5%); } &__toolbar { - .toolbar { - &__item { - &--button { flex-basis: 33.33%; } @@ -90,7 +82,6 @@ $notification--sub-heading--color: saturate(lighten(#7189a8, 5%), 5%); } .notification { - &__heading { color: #495d76; font-size: 0.75rem; @@ -102,7 +93,6 @@ $notification--sub-heading--color: saturate(lighten(#7189a8, 5%), 5%); } &__message { - &__sub-heading { color: $notification--sub-heading--color; font-style: italic; diff --git a/client/src/sass/components/_peers-list.scss b/client/src/sass/components/_peers-list.scss index 07102fa0d..1b9e7f64b 100644 --- a/client/src/sass/components/_peers-list.scss +++ b/client/src/sass/components/_peers-list.scss @@ -1,5 +1,4 @@ .peers-list { - &__flag { display: inline-block; height: 10px; @@ -32,7 +31,6 @@ } &__encryption { - .icon { fill: $green; height: 12px; diff --git a/client/src/sass/components/_priority-meter.scss b/client/src/sass/components/_priority-meter.scss index 67f2b979a..2027340b5 100644 --- a/client/src/sass/components/_priority-meter.scss +++ b/client/src/sass/components/_priority-meter.scss @@ -43,9 +43,7 @@ $priority-meter--bar--level-2--background: $green; width: 18px; &.priority-meter { - &--level-0 { - &:before { background: $priority-meter--track--level-0--background; } @@ -57,7 +55,6 @@ $priority-meter--bar--level-2--background: $green; } &--level-1 { - &:before { background: $priority-meter--track--level-1--background; } @@ -69,7 +66,6 @@ $priority-meter--bar--level-2--background: $green; } &--level-2 { - &:before { background: $priority-meter--track--level-2--background; } @@ -86,9 +82,7 @@ $priority-meter--bar--level-2--background: $green; width: 26px; &.priority-meter { - &--level-0 { - &:before { background: $priority-meter--track--level-0--background; } @@ -100,7 +94,6 @@ $priority-meter--bar--level-2--background: $green; } &--level-1 { - &:before { background: $priority-meter--track--level-1--background; } @@ -112,7 +105,6 @@ $priority-meter--bar--level-2--background: $green; } &--level-2 { - &:before { background: $priority-meter--track--level-2--background; } @@ -124,7 +116,6 @@ $priority-meter--bar--level-2--background: $green; } &--level-3 { - &:before { background: $priority-meter--track--level-2--background; } diff --git a/client/src/sass/components/_progress-bar.scss b/client/src/sass/components/_progress-bar.scss index 1e1caaa62..e82b566e6 100644 --- a/client/src/sass/components/_progress-bar.scss +++ b/client/src/sass/components/_progress-bar.scss @@ -142,22 +142,34 @@ $progress-bar--track--background--selected: rgba(#fff, 0.15); .torrent--is-checking & { animation: candy-stripe 0.25s linear infinite; background-color: transparent; - background-image: linear-gradient(-45deg, rgba($progress-bar--track--background--checking, 0) 0, - rgba($progress-bar--track--background--checking, 0) 25%, rgba($progress-bar--track--background--checking, 0.5) 25%, - rgba($progress-bar--track--background--checking, 0.5) 50%, rgba($progress-bar--track--background--checking, 0) 50%, - rgba($progress-bar--track--background--checking, 0) 75%, rgba($progress-bar--track--background--checking, 0.5) 75%, - rgba($progress-bar--track--background--checking, 0.5) 100%); + background-image: linear-gradient( + -45deg, + rgba($progress-bar--track--background--checking, 0) 0, + rgba($progress-bar--track--background--checking, 0) 25%, + rgba($progress-bar--track--background--checking, 0.5) 25%, + rgba($progress-bar--track--background--checking, 0.5) 50%, + rgba($progress-bar--track--background--checking, 0) 50%, + rgba($progress-bar--track--background--checking, 0) 75%, + rgba($progress-bar--track--background--checking, 0.5) 75%, + rgba($progress-bar--track--background--checking, 0.5) 100% + ); background-size: 4px 4px; height: $progress-bar--height; top: 0; } .torrent--is-selected.torrent--is-checking & { - background-image: linear-gradient(-45deg, rgba(#fff, 0) 0, - rgba(#fff, 0) 25%, rgba(#fff, 0.5) 25%, - rgba(#fff, 0.5) 50%, rgba(#fff, 0) 50%, - rgba(#fff, 0) 75%, rgba(#fff, 0.5) 75%, - rgba(#fff, 0.5) 100%); + background-image: linear-gradient( + -45deg, + rgba(#fff, 0) 0, + rgba(#fff, 0) 25%, + rgba(#fff, 0.5) 25%, + rgba(#fff, 0.5) 50%, + rgba(#fff, 0) 50%, + rgba(#fff, 0) 75%, + rgba(#fff, 0.5) 75%, + rgba(#fff, 0.5) 100% + ); } } } diff --git a/client/src/sass/components/_scrollbars.scss b/client/src/sass/components/_scrollbars.scss index 4fc215e1f..bf7e61bce 100644 --- a/client/src/sass/components/_scrollbars.scss +++ b/client/src/sass/components/_scrollbars.scss @@ -4,7 +4,6 @@ $scrollbar--thumb--background--inverted--inactive: rgba(#e9eef2, 0.3); $scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6); .scrollbars { - &__thumb { background: $scrollbar--thumb--background--inactive; border-radius: 10px; @@ -39,7 +38,6 @@ $scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6); } &:hover { - .scrollbars__thumb { opacity: 1; } diff --git a/client/src/sass/components/_search.scss b/client/src/sass/components/_search.scss index aef43704e..3cf288bea 100644 --- a/client/src/sass/components/_search.scss +++ b/client/src/sass/components/_search.scss @@ -78,7 +78,6 @@ $search-torrents--icon--foreground--active: $blue; } &.is-in-use { - .icon { fill: $search-torrents--icon--foreground--active; opacity: 1; diff --git a/client/src/sass/components/_sidebar-filter.scss b/client/src/sass/components/_sidebar-filter.scss index a37756aca..721d9e7ee 100644 --- a/client/src/sass/components/_sidebar-filter.scss +++ b/client/src/sass/components/_sidebar-filter.scss @@ -51,11 +51,8 @@ } } - .sidebar-filter { - &__item { - &--heading { cursor: default; font-size: 0.8em; diff --git a/client/src/sass/components/_sort-dropdown.scss b/client/src/sass/components/_sort-dropdown.scss index a5df2d94b..a8eca9ccf 100644 --- a/client/src/sass/components/_sort-dropdown.scss +++ b/client/src/sass/components/_sort-dropdown.scss @@ -1,5 +1,4 @@ .sort-dropdown { - &__item { align-items: center; display: flex; diff --git a/client/src/sass/components/_sortable-list.scss b/client/src/sass/components/_sortable-list.scss index bcc5a388c..81c779098 100644 --- a/client/src/sass/components/_sortable-list.scss +++ b/client/src/sass/components/_sortable-list.scss @@ -59,17 +59,15 @@ $sortable-list--item--border--preview: darken($sortable-list--item--border, 3%); } & + .sortable-list { - &__item { margin-top: -1px; } } .toggle-input { - &__indicator { background: darken($input--inverse--background, 5%); - border-color: darken($input--inverse--background, 8%); + border-color: darken($input--inverse--background, 8%); } } diff --git a/client/src/sass/components/_table.scss b/client/src/sass/components/_table.scss index 22afa356a..73e0a191b 100644 --- a/client/src/sass/components/_table.scss +++ b/client/src/sass/components/_table.scss @@ -1,4 +1,4 @@ -$table--heading--background: rgba(#f6f8fA, 0.6); +$table--heading--background: rgba(#f6f8fa, 0.6); $table--heading--border: rgba(#1d2938, 0.1); $table--heading--border--horizontal: rgba(#1d2938, 0.08); @@ -9,12 +9,10 @@ $table--heading--color--active--hover: darken($table--heading--color, 40%); $table--heading--resize--handle--width: 9px; $table--heading--resize--indicator--width: 1px; -$table--heading--resize--indicator--background: rgba(darken(#f6f8fA, 10%), 0.75); +$table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75); .table { - &__row { - &--heading { background: $table--heading--background; box-shadow: 0 1px 0 $table--heading--border; @@ -71,9 +69,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fA, 10%), 0.75) } &--direction { - &--asc { - &:after { transform: rotate(180deg); } @@ -85,7 +81,6 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fA, 10%), 0.75) min-width: 0; &.table { - &__heading { border: none; margin: 0; diff --git a/client/src/sass/components/_textbox-repeater.scss b/client/src/sass/components/_textbox-repeater.scss index 50894717c..4fef69c2b 100644 --- a/client/src/sass/components/_textbox-repeater.scss +++ b/client/src/sass/components/_textbox-repeater.scss @@ -1,5 +1,4 @@ .textbox-repeater { - .icon { height: 12px; width: 12px; diff --git a/client/src/sass/components/_toolbar.scss b/client/src/sass/components/_toolbar.scss index 1e4c42557..f78501bdf 100644 --- a/client/src/sass/components/_toolbar.scss +++ b/client/src/sass/components/_toolbar.scss @@ -5,9 +5,7 @@ width: 100%; &--dark { - &.toolbar { - &--bottom { border-top: 1px solid $dark-blue; } @@ -18,9 +16,7 @@ } .toolbar { - &__item { - &--button { color: darken($foreground, 10%); diff --git a/client/src/sass/components/_tooltip.scss b/client/src/sass/components/_tooltip.scss index ef3cef1bc..1b67e6d02 100644 --- a/client/src/sass/components/_tooltip.scss +++ b/client/src/sass/components/_tooltip.scss @@ -70,21 +70,15 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; } &--position { - &--bottom, &--top { - &.tooltip { - &--anchor { - &--center { transform: translateX(-50%); .tooltip { - &__content { - &:after { left: 50%; transform: translateX(-50%); @@ -94,11 +88,8 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; } &--start { - &.tooltip { - &--align { - &--center { transform: translateX($tooltip-anchor-offset * -1); } @@ -106,9 +97,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; } .tooltip { - &__content { - &:after { left: $tooltip-arrow-offset; } @@ -120,9 +109,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; transform: translateX(calc(-100% + #{$tooltip-anchor-offset})); .tooltip { - &__content { - &:after { right: $tooltip-arrow-offset; } @@ -137,9 +124,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; padding-top: $tooltip-arrow-border-width; .tooltip { - &__content { - &:after { border-left-color: transparent; border-right-color: transparent; @@ -154,9 +139,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; padding-bottom: $tooltip-arrow-border-width; .tooltip { - &__content { - &:after { border-bottom: none; border-left-color: transparent; @@ -169,19 +152,14 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; &--left, &--right { - &.tooltip { - &--anchor { - &--center { top: 50%; transform: translateY(-50%); .tooltip { - &__content { - &:after { top: 50%; transform: translateY(-50%); @@ -194,9 +172,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; transform: translateY($tooltip-anchor-offset * -1); .tooltip { - &__content { - &:after { top: $tooltip-arrow-offset; } @@ -208,9 +184,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; transform: translateY(calc(-100% + #{$tooltip-anchor-offset})); .tooltip { - &__content { - &:after { bottom: $tooltip-arrow-offset; } @@ -225,9 +199,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; padding-right: $tooltip-arrow-border-width; .tooltip { - &__content { - &:after { border-bottom-color: transparent; border-right: none; @@ -242,9 +214,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; padding-left: $tooltip-arrow-border-width; .tooltip { - &__content { - &:after { border-bottom-color: transparent; border-left: none; @@ -257,9 +227,7 @@ $tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width; } &--is-error { - .tooltip { - &__content { background: $tooltip-background--error; color: $tooltip-foreground--error; diff --git a/client/src/sass/components/_torrent-details-panel.scss b/client/src/sass/components/_torrent-details-panel.scss index e765e8cf7..7fcb27ddf 100644 --- a/client/src/sass/components/_torrent-details-panel.scss +++ b/client/src/sass/components/_torrent-details-panel.scss @@ -41,7 +41,6 @@ $torrent-details--tags--background: #515f6f; $torrent-details--tags--foreground: #1a2028; .torrent-details { - &__heading { color: inherit; font-size: inherit; @@ -103,14 +102,10 @@ $torrent-details--tags--foreground: #1a2028; } &__header { - &.is-completed, &.is-stopped { - .progress-bar { - &__icon { - .icon { fill: $torrent-details--header--progress-bar--fill; } @@ -120,7 +115,6 @@ $torrent-details--tags--foreground: #1a2028; background: $torrent-details--header--progress-bar--fill; &__wrapper { - &:after { background: $torrent-details--header--progress-bar--fill; } @@ -152,7 +146,6 @@ $torrent-details--tags--foreground: #1a2028; width: 100%; &__heading { - &--primary { color: $torrent-details--directory-tree--parent-directory--foreground; font-size: 1.125em; @@ -186,14 +179,12 @@ $torrent-details--tags--foreground: #1a2028; margin-left: -8px; .directory-tree { - &__node { color: $directory-tree--foreground; position: relative; transition: background 0.25s, border 0.25s, color 0.25s; &--group { - &:after { background: $directory-tree--group--extension; } @@ -207,7 +198,6 @@ $torrent-details--tags--foreground: #1a2028; font-weight: 500; .icon { - &--folder { fill: $directory-tree--icon--folder--open; } @@ -215,7 +205,6 @@ $torrent-details--tags--foreground: #1a2028; } .icon { - &--folder { fill: $directory-tree--icon--folder; } @@ -247,9 +236,7 @@ $torrent-details--tags--foreground: #1a2028; } .file { - &__detail { - &--size, &--priority { color: $directory-tree--file-details--hover--foreground; @@ -258,7 +245,6 @@ $torrent-details--tags--foreground: #1a2028; } .icon { - &--file { fill: $torrent-details--directory-tree--file--hover--foreground; } @@ -270,7 +256,6 @@ $torrent-details--tags--foreground: #1a2028; width: auto; &__detail { - &--size, &--priority { color: currentColor; @@ -287,7 +272,6 @@ $torrent-details--tags--foreground: #1a2028; color: $torrent-details--directory-tree--parent-directory--foreground; .icon { - &--disk { fill: $torrent-details--directory-tree--parent-directory--icon--fill; } @@ -296,7 +280,6 @@ $torrent-details--tags--foreground: #1a2028; } .icon { - &--file { fill: $directory-tree--icon--file; } @@ -310,16 +293,13 @@ $torrent-details--tags--foreground: #1a2028; } &__detail { - &--hash { - .torrent-details__detail__value { word-break: break-all; } } &--tags { - .tag { background: $torrent-details--tags--background; color: $torrent-details--tags--foreground; @@ -327,7 +307,6 @@ $torrent-details--tags--foreground: #1a2028; } & + .torrent-details__table__heading { - .torrent-details__table__heading--tertiary { padding-top: 10px; } diff --git a/client/src/sass/components/_torrent.scss b/client/src/sass/components/_torrent.scss index 4d1a83c6f..8a799ad1b 100644 --- a/client/src/sass/components/_torrent.scss +++ b/client/src/sass/components/_torrent.scss @@ -58,13 +58,11 @@ $more-info--border: $textbox-repeater--button--border; } &:hover { - &:after { background: $torrent--background--hover; } .torrent { - &__more-info { opacity: 1; pointer-events: auto; @@ -82,9 +80,7 @@ $more-info--border: $textbox-repeater--button--border; } &--tags { - .torrent { - &__tag { display: inline-block; margin-right: $spacing-unit * 3/10; @@ -102,9 +98,7 @@ $more-info--border: $textbox-repeater--button--border; } &__icon { - &--checkmark { - &.icon { opacity: 1; } @@ -120,9 +114,7 @@ $more-info--border: $textbox-repeater--button--border; } &__details { - &__section { - &--secondary { color: $torrent--secondary--foreground; } @@ -134,13 +126,9 @@ $more-info--border: $textbox-repeater--button--border; } &--is-stopped { - .torrent { - &__details { - &__section { - &--secondary { color: $torrent--secondary--foreground--stopped; } @@ -167,15 +155,10 @@ $more-info--border: $textbox-repeater--button--border; } &--has-error { - &.torrent { - &--is-stopped { - .torrent { - &__detail { - &--name { color: $torrent--primary--foreground--error--stopped; } @@ -185,9 +168,7 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { - &--name { color: $torrent--primary--foreground--error; } @@ -200,13 +181,9 @@ $more-info--border: $textbox-repeater--button--border; } &--is-downloading { - &--actively { - .torrent { - &__detail { - &--downRate { color: $green; font-weight: 500; @@ -215,11 +192,8 @@ $more-info--border: $textbox-repeater--button--border; } .torrent-details { - &__sub-heading { - &__tertiary { - &--download { color: $blue; @@ -234,13 +208,9 @@ $more-info--border: $textbox-repeater--button--border; } &--is-uploading { - &--actively { - .torrent { - &__detail { - &--upRate { color: $blue; font-weight: 500; @@ -249,11 +219,8 @@ $more-info--border: $textbox-repeater--button--border; } .torrent-details { - &__sub-heading { - &__tertiary { - &--upload { color: $green; @@ -268,21 +235,15 @@ $more-info--border: $textbox-repeater--button--border; } &--is-selected { - &.torrent { - &--has-error { - .torrent { - &__detail { - &--name { color: $torrent--primary--foreground--selected--error; } &--tags { - .tag { background: $torrent--tags--background--selected--has-error; color: $torrent--tags--foreground--has-error; @@ -298,7 +259,6 @@ $more-info--border: $textbox-repeater--button--border; &, &:hover { - &:after { background: $torrent--background--error; } @@ -306,15 +266,10 @@ $more-info--border: $textbox-repeater--button--border; } &--is-stopped { - &.torrent { - &--has-error { - .torrent { - &__detail { - &--name { color: $torrent--primary--foreground--error--stopped--selected; } @@ -324,7 +279,6 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { color: $torrent--secondary--foreground--selected--stopped; @@ -343,9 +297,7 @@ $more-info--border: $textbox-repeater--button--border; } &__details { - &__section { - &--secondary { color: $torrent--secondary--foreground--selected--stopped; } @@ -361,7 +313,6 @@ $more-info--border: $textbox-repeater--button--border; &, &:hover { - &:after { background: $torrent--background--selected; opacity: 1; @@ -369,7 +320,6 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { color: $torrent--secondary--foreground--selected; @@ -383,7 +333,6 @@ $more-info--border: $textbox-repeater--button--border; } &--tags { - .tag { background: $torrent--tags--background--selected; color: $torrent--tags--foreground--selected; @@ -392,9 +341,7 @@ $more-info--border: $textbox-repeater--button--border; } &__details { - &__section { - &--secondary { color: $torrent--secondary--foreground--selected; } @@ -416,15 +363,10 @@ $more-info--border: $textbox-repeater--button--border; height: 70px; &.torrent { - &--is-downloading { - &--actively { - .torrent { - &__detail { - &--eta { margin-right: 10px; opacity: 1; @@ -437,9 +379,7 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__details { - &__section { display: flex; @@ -467,7 +407,6 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { width: auto; } @@ -541,20 +480,17 @@ $more-info--border: $textbox-repeater--button--border; } &--tags { - &:last-child { margin-left: auto; width: auto; } .torrent { - &__tags { margin-right: 0; } &__tag { - &:last-child { margin-right: 0; } @@ -587,11 +523,8 @@ $more-info--border: $textbox-repeater--button--border; } &.torrent { - &--is-stopped { - .torrent { - &__detail { color: $torrent--secondary--foreground--stopped; } @@ -599,16 +532,13 @@ $more-info--border: $textbox-repeater--button--border; } &--is-selected { - &, & + .torrent { border-color: $torrent--border--selected; } &.torrent { - &--has-error { - &, & + .torrent { border-color: $torrent--border--selected--error; @@ -616,9 +546,7 @@ $more-info--border: $textbox-repeater--button--border; } &--is-stopped { - .torrent { - &__detail { color: $torrent--tertiary--foreground--selected--stopped; } @@ -627,7 +555,6 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { color: $torrent--secondary--foreground--selected; } @@ -636,7 +563,6 @@ $more-info--border: $textbox-repeater--button--border; } .torrent { - &__detail { flex: 0 0 auto; font-size: 0.8em; @@ -650,7 +576,6 @@ $more-info--border: $textbox-repeater--button--border; } &--percentComplete { - .icon { opacity: 1; } @@ -659,9 +584,7 @@ $more-info--border: $textbox-repeater--button--border; } .progress-bar { - &__icon { - .icon { margin-right: 0; } @@ -672,9 +595,7 @@ $more-info--border: $textbox-repeater--button--border; &__more-info { background: $more-info--background; border-radius: 32px 0 0 32px; - box-shadow: - 0 0 30px rgba($more-info--box-shadow--hue, 0.11), - 0 0 0 1px rgba($more-info--box-shadow--hue, 0.07); + box-shadow: 0 0 30px rgba($more-info--box-shadow--hue, 0.11), 0 0 0 1px rgba($more-info--box-shadow--hue, 0.07); height: 32px; margin-top: -16px; position: absolute; @@ -697,9 +618,7 @@ $more-info--border: $textbox-repeater--button--border; &:hover { background: $more-info--background--hover; - box-shadow: - 0 0 30px rgba($more-info--box-shadow--hue, 0.2), - 0 0 0 1px rgba($more-info--box-shadow--hue, 0.1); + box-shadow: 0 0 30px rgba($more-info--box-shadow--hue, 0.2), 0 0 0 1px rgba($more-info--box-shadow--hue, 0.1); .icon { fill: $blue; diff --git a/client/src/sass/components/_transfer-data.scss b/client/src/sass/components/_transfer-data.scss index f8b487167..c1a97c497 100644 --- a/client/src/sass/components/_transfer-data.scss +++ b/client/src/sass/components/_transfer-data.scss @@ -2,7 +2,6 @@ $transfer-data--download: $green; $transfer-data--upload: $blue; .transfer-data { - &--download { color: $transfer-data--download; diff --git a/client/src/sass/style.scss b/client/src/sass/style.scss index 6fc3b82a6..33843a836 100644 --- a/client/src/sass/style.scss +++ b/client/src/sass/style.scss @@ -1,54 +1,54 @@ -@import "~ress"; -@import "ui/index"; +@import '~ress'; +@import 'ui/index'; -@import "tools/variables"; -@import "tools/reset"; +@import 'tools/variables'; +@import 'tools/reset'; -@import "base/animations"; -@import "base/font-families"; -@import "base/layout"; -@import "base/main"; -@import "base/typography"; +@import 'base/animations'; +@import 'base/font-families'; +@import 'base/layout'; +@import 'base/main'; +@import 'base/typography'; -@import "components/action-bar"; -@import "components/app-wrapper"; -@import "components/alerts"; -@import "components/attached-panel"; -@import "components/badge"; -@import "components/base-menu"; -@import "components/client-stats"; -@import "components/connection-status"; -@import "components/dependency-list"; -@import "components/directory-tree"; -@import "components/dropdown"; -@import "components/dropzone"; -@import "components/duration"; -@import "components/filesystem"; -@import "components/floating-action"; -@import "components/icons"; -@import "components/interactive-list"; -@import "components/loading-indicator"; -@import "components/mediainfo"; -@import "components/modals"; -@import "components/notifications"; -@import "components/peers-list"; -@import "components/priority-meter"; -@import "components/progress-bar"; -@import "components/scrollbars"; -@import "components/search"; -@import "components/sidebar"; -@import "components/sidebar-filter"; -@import "components/sort-dropdown"; -@import "components/sortable-list"; -@import "components/table"; -@import "components/tags"; -@import "components/textbox-repeater"; -@import "components/toolbar"; -@import "components/tooltip"; -@import "components/torrent-details-panel"; -@import "components/torrents"; -@import "components/torrent"; -@import "components/transfer-data"; +@import 'components/action-bar'; +@import 'components/app-wrapper'; +@import 'components/alerts'; +@import 'components/attached-panel'; +@import 'components/badge'; +@import 'components/base-menu'; +@import 'components/client-stats'; +@import 'components/connection-status'; +@import 'components/dependency-list'; +@import 'components/directory-tree'; +@import 'components/dropdown'; +@import 'components/dropzone'; +@import 'components/duration'; +@import 'components/filesystem'; +@import 'components/floating-action'; +@import 'components/icons'; +@import 'components/interactive-list'; +@import 'components/loading-indicator'; +@import 'components/mediainfo'; +@import 'components/modals'; +@import 'components/notifications'; +@import 'components/peers-list'; +@import 'components/priority-meter'; +@import 'components/progress-bar'; +@import 'components/scrollbars'; +@import 'components/search'; +@import 'components/sidebar'; +@import 'components/sidebar-filter'; +@import 'components/sort-dropdown'; +@import 'components/sortable-list'; +@import 'components/table'; +@import 'components/tags'; +@import 'components/textbox-repeater'; +@import 'components/toolbar'; +@import 'components/tooltip'; +@import 'components/torrent-details-panel'; +@import 'components/torrents'; +@import 'components/torrent'; +@import 'components/transfer-data'; -@import "views/login"; -@import "views/feeds"; \ No newline at end of file +@import 'views/login'; +@import 'views/feeds'; diff --git a/client/src/sass/tools/_colors.scss b/client/src/sass/tools/_colors.scss index 042adcc52..7e395915e 100644 --- a/client/src/sass/tools/_colors.scss +++ b/client/src/sass/tools/_colors.scss @@ -1,6 +1,6 @@ $dark-blue: #1d2938; $grey: #293341; -$light-grey: #3A4553; +$light-grey: #3a4553; $light-grey--lighter: lighten($light-grey, 40%); $blue: #258de5; $blue--lighter: saturate(lighten($blue, 10%), 100%); diff --git a/client/src/sass/ui/components/button.scss b/client/src/sass/ui/components/button.scss index a6630919c..b77fa8c63 100644 --- a/client/src/sass/ui/components/button.scss +++ b/client/src/sass/ui/components/button.scss @@ -1,11 +1,9 @@ @function button--text-shadow($color) { - @return 0 1px 0 darken($color, 5%), - 0 1px 2px rgba(darken($color, 10%), 0.8); + @return 0 1px 0 darken($color, 5%), 0 1px 2px rgba(darken($color, 10%), 0.8); } @function button--svg-shadow($color) { - @return drop-shadow(0 1px 0 darken($color, 5%)) - drop-shadow(0 1px 2px rgba(darken($color, 10%), 0.8)); + @return drop-shadow(0 1px 0 darken($color, 5%)) drop-shadow(0 1px 2px rgba(darken($color, 10%), 0.8)); } .button { @@ -268,16 +266,13 @@ } &--is-loading { - .button { - &__content { opacity: 0; } } .icon { - &--loading { opacity: 1; } diff --git a/client/src/sass/ui/components/context-menu.scss b/client/src/sass/ui/components/context-menu.scss index bed4d9001..fd5495b75 100644 --- a/client/src/sass/ui/components/context-menu.scss +++ b/client/src/sass/ui/components/context-menu.scss @@ -7,9 +7,7 @@ top: 0; &--enter { - .context-menu { - &__items { opacity: 0; transform: translateY(2rem * -1); @@ -21,9 +19,7 @@ } &--active { - .context-menu { - &__items { opacity: 1; transform: translateY(0); @@ -33,9 +29,7 @@ } &--exit { - .context-menu { - &__items { opacity: 1; transform: translateY(0); @@ -43,9 +37,7 @@ } &--active { - .context-menu { - &__items { opacity: 0; transform: translateY(20px * -1); @@ -61,9 +53,7 @@ &__items { background: $white; border-radius: $form--element--border-radius; - box-shadow: - form--element--box-shadow($darkest-grey, 0.05, 0.1), - 0 0 0 1px rgba($darkest-grey, 0.1); + box-shadow: form--element--box-shadow($darkest-grey, 0.05, 0.1), 0 0 0 1px rgba($darkest-grey, 0.1); max-width: 200px; overflow-x: hidden; overflow-y: auto; diff --git a/client/src/sass/ui/components/element-addon.scss b/client/src/sass/ui/components/element-addon.scss index 490e9b2c9..bc3bd899b 100644 --- a/client/src/sass/ui/components/element-addon.scss +++ b/client/src/sass/ui/components/element-addon.scss @@ -1,9 +1,6 @@ .form { - &__element { - &--has-addon { - &--placed-before { padding-left: $button--has-addon--padding--left; @@ -94,7 +91,6 @@ pointer-events: auto; &:hover { - .icon { fill: $blue; transition: all $speed--xx-fast; diff --git a/client/src/sass/ui/components/form.scss b/client/src/sass/ui/components/form.scss index 7d1715ff9..761ec76fa 100644 --- a/client/src/sass/ui/components/form.scss +++ b/client/src/sass/ui/components/form.scss @@ -15,7 +15,6 @@ } .form { - &__row { display: flex; margin-bottom: $form__row--margin--vertical; @@ -31,7 +30,6 @@ } &--align { - &--start { align-items: flex-start; } @@ -46,7 +44,6 @@ } &--justify { - &--start { justify-content: flex-start; } @@ -138,7 +135,6 @@ } &__element { - &__label { display: block; font-size: $font-size--x-small; diff --git a/client/src/sass/ui/components/icon.scss b/client/src/sass/ui/components/icon.scss index 174553589..5674d203b 100644 --- a/client/src/sass/ui/components/icon.scss +++ b/client/src/sass/ui/components/icon.scss @@ -30,7 +30,6 @@ } &--loading { - &--ring { stroke: currentColor; } diff --git a/client/src/sass/ui/components/input.scss b/client/src/sass/ui/components/input.scss index c45855025..b56f685bb 100644 --- a/client/src/sass/ui/components/input.scss +++ b/client/src/sass/ui/components/input.scss @@ -85,7 +85,6 @@ transition: all $speed--xx-fast; .toggle-input { - &__indicator { border-color: $input--border--hover; @@ -99,7 +98,6 @@ } &__icon { - &, .icon { display: block; @@ -114,7 +112,6 @@ color: $blue; .toggle-input { - &__indicator { border-color: $blue; box-shadow: form--element--box-shadow--active($blue); @@ -138,9 +135,7 @@ &:active, &--is-active { - .toggle-input { - &__indicator { background-color: rgba($blue, 0.1); color: rgba($blue, 0.8); @@ -162,15 +157,10 @@ visibility: hidden; &:checked { - & + .toggle-input { - &__indicator { - .toggle-input { - &__indicator { - &__icon { opacity: 1; } @@ -218,9 +208,7 @@ } &.checkbox { - .toggle-input { - &__indicator { border-radius: $form--element--border-radius; } @@ -228,9 +216,7 @@ } &.radio { - .toggle-input { - &__indicator { border-radius: 100%; } diff --git a/client/src/sass/ui/components/panel.scss b/client/src/sass/ui/components/panel.scss index 4606b2c70..1e215bd5f 100644 --- a/client/src/sass/ui/components/panel.scss +++ b/client/src/sass/ui/components/panel.scss @@ -1,4 +1,3 @@ - $panel--spacing--horizontal--medium: $spacing--x-large; $panel--spacing--vertical--medium: $spacing--medium; @@ -12,15 +11,14 @@ $panel--spacing--vertical--large: $spacing--xx-large; overflow: hidden; &--medium { - .panel { - &__content { padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium; } &__header { - padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium 0 $panel--spacing--horizontal--medium; + padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium 0 + $panel--spacing--horizontal--medium; &--has-border { padding-bottom: $panel--spacing--vertical--medium; @@ -28,7 +26,8 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &__footer { - padding: 0 $panel--spacing--horizontal--medium $panel--spacing--vertical--medium $panel--spacing--horizontal--medium; + padding: 0 $panel--spacing--horizontal--medium $panel--spacing--vertical--medium + $panel--spacing--horizontal--medium; &--has-border { padding-top: $panel--spacing--vertical--medium; @@ -38,15 +37,14 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &--large { - .panel { - &__content { padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large; } &__header { - padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large 0 $panel--spacing--horizontal--large; + padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large 0 + $panel--spacing--horizontal--large; &--has-border { padding-bottom: $panel--spacing--vertical--large; @@ -54,7 +52,8 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &__footer { - padding: 0 $panel--spacing--horizontal--large $panel--spacing--vertical--large $panel--spacing--horizontal--large ; + padding: 0 $panel--spacing--horizontal--large $panel--spacing--vertical--large + $panel--spacing--horizontal--large; &--has-border { padding-top: $panel--spacing--vertical--large; @@ -64,7 +63,6 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &__header { - &--has-border { border-bottom: 1px solid $grey--soft; } @@ -86,9 +84,7 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &__content { - &--has-border { - &--top { border-top: 1px solid $grey--soft; } @@ -100,7 +96,6 @@ $panel--spacing--vertical--large: $spacing--xx-large; } &__footer { - &--has-border { border-top: 1px solid $grey--soft; } diff --git a/client/src/sass/ui/components/select.scss b/client/src/sass/ui/components/select.scss index e65ac06bb..c47dab762 100644 --- a/client/src/sass/ui/components/select.scss +++ b/client/src/sass/ui/components/select.scss @@ -6,11 +6,8 @@ text-align: left; &:hover { - .select { - &__indicator { - .icon { fill: $grey--hard; } @@ -20,11 +17,8 @@ &:focus, &:active { - .select { - &__indicator { - .icon { fill: $blue; transition: all $speed--xx-fast; @@ -38,7 +32,6 @@ } .select { - &__item { overflow: hidden; text-overflow: ellipsis; @@ -54,7 +47,6 @@ z-index: 1; .context-menu__items & { - &:hover { background: $light-grey--lighter; } @@ -84,11 +76,8 @@ } &--is-open { - .select { - &__indicator { - .icon { transform: translate(-50%, -50%) rotate(180deg); } diff --git a/client/src/sass/ui/config/colors.scss b/client/src/sass/ui/config/colors.scss index 119527d58..6f9e78a98 100644 --- a/client/src/sass/ui/config/colors.scss +++ b/client/src/sass/ui/config/colors.scss @@ -8,7 +8,7 @@ $red: #f34570; $red--alpha--light: rgba($red, 0.1); $red--alpha--medium: rgba($red, 0.2); -$blue: #349CF4; +$blue: #349cf4; $blue--light: lighten($blue, 7%); $blue--lighter: lighten($blue, 40%); $blue--soft: rgba($blue, 0.05); @@ -16,34 +16,34 @@ $blue--hard: harden($blue, 1.5); $blue--darker: darken($blue, 20%); -$green: #39CE83; +$green: #39ce83; $green--light: lighten($green, 7%); $green--hard: harden($green, 1.3); -$medium-grey: #ABBAC7; -$medium-grey--lighter: #B9C7D3; +$medium-grey: #abbac7; +$medium-grey--lighter: #b9c7d3; $medium-grey--soft: rgba($medium-grey, 0.15); -$grey: #8899A8; +$grey: #8899a8; $grey--soft: rgba($grey, 0.15); $grey--light: lighten($grey, 7%); $grey--lighter: lighten($grey, 25%); $grey--hard: harden($grey, 1.75); $grey--harder: harden($grey, 1); -$dark-grey: #34516C; +$dark-grey: #34516c; $dark-grey--light: lighten($dark-grey, 7%); -$darker-grey: #1D2938; +$darker-grey: #1d2938; $darkest-grey: #28303b; $darkest-grey--hard: #293341; -$darkest-grey--darker: #202D3C; +$darkest-grey--darker: #202d3c; -$another-grey: #3A4553; +$another-grey: #3a4553; -$light-grey: #E9EEF2; -$light-grey--lighter: #F8F9FB; +$light-grey: #e9eef2; +$light-grey--lighter: #f8f9fb; $light-grey--soft: rgba($light-grey, 0.15); $light-grey--hard: harden($light-grey); diff --git a/client/src/sass/ui/config/variables.scss b/client/src/sass/ui/config/variables.scss index 7f80e719d..b9a3bd8d8 100644 --- a/client/src/sass/ui/config/variables.scss +++ b/client/src/sass/ui/config/variables.scss @@ -49,4 +49,4 @@ $button--has-addon--padding--left: $input--addon--padding--left; $button--has-two-addons--padding--right: $input--two-addons--padding--right; $button--has-two-addons--padding--left: $input--two-addons--padding--left; -$font-family--monospace: monaco, Consolas, "Lucida Console", monospace; +$font-family--monospace: monaco, Consolas, 'Lucida Console', monospace; diff --git a/client/src/sass/ui/util/box-shadows.scss b/client/src/sass/ui/util/box-shadows.scss index 88de358a2..87de38ad9 100644 --- a/client/src/sass/ui/util/box-shadows.scss +++ b/client/src/sass/ui/util/box-shadows.scss @@ -1,11 +1,9 @@ -@function form--element--box-shadow($color, $smallShadowOpacity:0.15, $bigShadowOpacity:0.2) { - @return 0 1px 1px rgba($color, $smallShadowOpacity), - 0 1px 3px 1px rgba($color, $bigShadowOpacity); +@function form--element--box-shadow($color, $smallShadowOpacity: 0.15, $bigShadowOpacity: 0.2) { + @return 0 1px 1px rgba($color, $smallShadowOpacity), 0 1px 3px 1px rgba($color, $bigShadowOpacity); } @function form--element--box-shadow--active($color) { - @return form--element--box-shadow($color), - 0 0 0 1px rgba($color, 1); + @return form--element--box-shadow($color), 0 0 0 1px rgba($color, 1); } @function form--element--inverse--box-shadow--active($color) { @@ -13,13 +11,11 @@ } @function form--element--box-shadow--active--slim($color) { - @return form--element--box-shadow($color), - 0 0 0 2px rgba($color, 0.2); + @return form--element--box-shadow($color), 0 0 0 2px rgba($color, 0.2); } @function form--element--box-shadow--active--smaller($color) { - @return form--element--box-shadow($color), - 0 0 0 2px rgba($color, 0.2); + @return form--element--box-shadow($color), 0 0 0 2px rgba($color, 0.2); } @function panel--box-shadow($color) { diff --git a/client/src/sass/views/_feeds.scss b/client/src/sass/views/_feeds.scss index 31cd4ad7e..aa74f4452 100644 --- a/client/src/sass/views/_feeds.scss +++ b/client/src/sass/views/_feeds.scss @@ -1,8 +1,7 @@ .feed-list { - &__feed-label { display: block; overflow: hidden; text-overflow: ellipsis; } -} \ No newline at end of file +} diff --git a/client/src/sass/views/_login.scss b/client/src/sass/views/_login.scss index 2dc50f009..3d2ccd424 100644 --- a/client/src/sass/views/_login.scss +++ b/client/src/sass/views/_login.scss @@ -9,9 +9,7 @@ $authentication--header--foreground: $white; $authentication--label--foreground: #3a5567; .application { - &__view { - &--auth-form { background: $light-blue; } @@ -19,13 +17,11 @@ $authentication--label--foreground: #3a5567; } .form { - &--authentication { max-width: 350px; width: 100%; .form { - &__wrapper { background: $white; border: 1px solid $authentication--form--border; @@ -34,7 +30,8 @@ $authentication--label--foreground: #3a5567; &__header { background: $blue; - margin: $authentication--form--padding * -1 $authentication--form--padding * -1 0 $authentication--form--padding * -1; + margin: $authentication--form--padding * -1 $authentication--form--padding * -1 0 $authentication--form--padding * + -1; padding: $authentication--form--padding * 0.75 $authentication--form--padding; h1 { @@ -50,7 +47,6 @@ $authentication--label--foreground: #3a5567; } &--header { - } &__label { @@ -58,7 +54,6 @@ $authentication--label--foreground: #3a5567; } &__row { - &--error { color: $red; font-size: 0.75em; diff --git a/scripts/prettier.js b/scripts/prettier.js index 7850e0160..2e705bbf3 100644 --- a/scripts/prettier.js +++ b/scripts/prettier.js @@ -4,7 +4,7 @@ const glob = require('glob'); const path = require('path'); const prettier = require('prettier'); -const SOURCE_PATTERN = `{client,scripts,server,shared}${path.sep}!(assets){${path.sep},}{**${path.sep}*,*}.{js,jsx,ts,tsx,json,md}`; +const SOURCE_PATTERN = `{client,scripts,server,shared}${path.sep}!(assets){${path.sep},}{**${path.sep}*,*}.{js,jsx,ts,tsx,json,md,css,scss,sass,less}`; const readFile = (filePath) => { return new Promise((resolve, reject) => { From b0ccccff0211491b2c5aa9cf43969a8f5c2dabdd Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 14:10:18 +0800 Subject: [PATCH 053/651] styles: consolidate color stylesheets --- client/src/sass/components/_badge.scss | 4 +- .../sass/components/_connection-status.scss | 2 +- .../sass/components/_interactive-list.scss | 4 +- client/src/sass/components/_sidebar.scss | 2 +- client/src/sass/style.scss | 3 + client/src/sass/tools/_colors.scss | 68 ++++++++++++++++--- client/src/sass/tools/_variables.scss | 13 ---- client/src/sass/ui/config/colors.scss | 49 ------------- client/src/sass/ui/index.scss | 1 - 9 files changed, 68 insertions(+), 78 deletions(-) delete mode 100644 client/src/sass/ui/config/colors.scss diff --git a/client/src/sass/components/_badge.scss b/client/src/sass/components/_badge.scss index e10863c6e..c9adfbb9c 100644 --- a/client/src/sass/components/_badge.scss +++ b/client/src/sass/components/_badge.scss @@ -1,5 +1,5 @@ -$sidebar-filter--count--foreground: darken($grey, 5%); -$sidebar-filter--count--background: lighten($grey, 20%); +$sidebar-filter--count--foreground: darken($darkest-grey--hard, 5%); +$sidebar-filter--count--background: lighten($darkest-grey--hard, 20%); $sidebar-filter--count--background--active: $blue; .badge { diff --git a/client/src/sass/components/_connection-status.scss b/client/src/sass/components/_connection-status.scss index ffc57492c..1247a98fa 100644 --- a/client/src/sass/components/_connection-status.scss +++ b/client/src/sass/components/_connection-status.scss @@ -10,7 +10,7 @@ } &__copy { - color: $light-grey--lighter; + color: $dark-grey--light; font-size: 14px; } } diff --git a/client/src/sass/components/_interactive-list.scss b/client/src/sass/components/_interactive-list.scss index 6f7fbe2c8..d7b7f8eaa 100644 --- a/client/src/sass/components/_interactive-list.scss +++ b/client/src/sass/components/_interactive-list.scss @@ -71,7 +71,7 @@ $interactive-list--detail-list--item--padding--vertical: 0; .interactive-list { &__icon { &--action { - background: $grey; + background: $darkest-grey--hard; &--warning { background: $red; @@ -114,7 +114,7 @@ $interactive-list--detail-list--item--padding--vertical: 0; flex: 0 0 auto; &.tag { - color: lighten($grey, 50%); + color: lighten($darkest-grey--hard, 50%); margin-right: 0; padding-bottom: $spacing--xx-small / 2; padding-top: $spacing--xx-small / 2; diff --git a/client/src/sass/components/_sidebar.scss b/client/src/sass/components/_sidebar.scss index 48762f756..3a708ce0d 100644 --- a/client/src/sass/components/_sidebar.scss +++ b/client/src/sass/components/_sidebar.scss @@ -103,7 +103,7 @@ $sidebar--icon-button--foreground--hover: $blue; } &__label { - color: $light-grey; + color: $dark-grey; display: block; font-size: 0.9em; font-weight: 600; diff --git a/client/src/sass/style.scss b/client/src/sass/style.scss index 33843a836..bba57d706 100644 --- a/client/src/sass/style.scss +++ b/client/src/sass/style.scss @@ -1,4 +1,7 @@ @import '~ress'; + +@import 'tools/colors'; + @import 'ui/index'; @import 'tools/variables'; diff --git a/client/src/sass/tools/_colors.scss b/client/src/sass/tools/_colors.scss index 7e395915e..b744141cb 100644 --- a/client/src/sass/tools/_colors.scss +++ b/client/src/sass/tools/_colors.scss @@ -1,17 +1,67 @@ +@function harden($color, $modifier: 1) { + @return darken($color, 6% * $modifier); +} + +$white: #fff; + +$red: #f34570; +$red--alpha--light: rgba($red, 0.1); +$red--alpha--medium: rgba($red, 0.2); + +$blue: #349cf4; +$blue--light: lighten($blue, 7%); +$blue--lighter: lighten($blue, 40%); +$blue--soft: rgba($blue, 0.05); +$blue--hard: harden($blue, 1.5); +$blue--darker: darken($blue, 20%); + +$light-blue: #e9eef2; $dark-blue: #1d2938; -$grey: #293341; -$light-grey: #3a4553; -$light-grey--lighter: lighten($light-grey, 40%); -$blue: #258de5; -$blue--lighter: saturate(lighten($blue, 10%), 100%); + $green: #39ce83; +$green--light: lighten($green, 7%); +$green--hard: harden($green, 1.3); $green--darker: darken(#39ce83, 4%); -$light-blue: #e9eef2; -$red: #e95779; -$white: #fff; + +$medium-grey: #abbac7; +$medium-grey--lighter: #b9c7d3; +$medium-grey--soft: rgba($medium-grey, 0.15); + +$grey: #8899a8; +$grey--soft: rgba($grey, 0.15); +$grey--light: lighten($grey, 7%); +$grey--lighter: lighten($grey, 25%); +$grey--hard: harden($grey, 1.75); +$grey--harder: harden($grey, 1); + +$dark-grey: #34516c; +$dark-grey--light: lighten($dark-grey, 7%); +$darker-grey: #1d2938; +$darkest-grey: #28303b; +$darkest-grey--hard: #293341; +$darkest-grey--darker: #202d3c; + +$light-grey: #e9eef2; +$light-grey--lighter: #f8f9fb; +$light-grey--soft: rgba($light-grey, 0.15); +$light-grey--hard: harden($light-grey); + +$another-grey: #3a4553; $background: $dark-blue; $foreground: #53718a; -$sidebar--background: $grey; +$sidebar--background: $darkest-grey--hard; $main-content--background: $light-blue; + +$textbox--background: #242b36; +$textbox--foreground: #5e728c; +$textbox--border: #1a2028; +$textbox--fulfilled--background: $textbox--background; +$textbox--placeholder: #424d5e; +$textbox--selection--foreground: #1a2028; +$textbox--selection--background: $blue--lighter; +$textbox--active--background: $textbox--background; +$textbox--active--border: $blue; +$textbox--active--foreground: $blue; +$textbox--active--placeholder: $textbox--placeholder; diff --git a/client/src/sass/tools/_variables.scss b/client/src/sass/tools/_variables.scss index 86712e800..95d2713ca 100644 --- a/client/src/sass/tools/_variables.scss +++ b/client/src/sass/tools/_variables.scss @@ -1,22 +1,9 @@ -@import 'colors'; - $font-family: 'Roboto', sans-serif; $spacing-unit: 25px; $torrent-details--width: 85%; -$textbox--background: #242b36; -$textbox--foreground: #5e728c; -$textbox--border: #1a2028; -$textbox--fulfilled--background: $textbox--background; $form--element--border-radius: 4px; $textbox--padding--vertical: 10px; $textbox--padding--horizontal: 15px; -$textbox--placeholder: #424d5e; -$textbox--selection--foreground: #1a2028; -$textbox--selection--background: $blue--lighter; -$textbox--active--background: $textbox--background; -$textbox--active--border: $blue; -$textbox--active--foreground: $blue; -$textbox--active--placeholder: $textbox--placeholder; diff --git a/client/src/sass/ui/config/colors.scss b/client/src/sass/ui/config/colors.scss deleted file mode 100644 index 6f9e78a98..000000000 --- a/client/src/sass/ui/config/colors.scss +++ /dev/null @@ -1,49 +0,0 @@ -@function harden($color, $modifier: 1) { - @return darken($color, 6% * $modifier); -} - -$white: #fff; - -$red: #f34570; -$red--alpha--light: rgba($red, 0.1); -$red--alpha--medium: rgba($red, 0.2); - -$blue: #349cf4; -$blue--light: lighten($blue, 7%); -$blue--lighter: lighten($blue, 40%); -$blue--soft: rgba($blue, 0.05); -$blue--hard: harden($blue, 1.5); - -$blue--darker: darken($blue, 20%); - -$green: #39ce83; -$green--light: lighten($green, 7%); -$green--hard: harden($green, 1.3); - -$medium-grey: #abbac7; -$medium-grey--lighter: #b9c7d3; -$medium-grey--soft: rgba($medium-grey, 0.15); - -$grey: #8899a8; -$grey--soft: rgba($grey, 0.15); -$grey--light: lighten($grey, 7%); -$grey--lighter: lighten($grey, 25%); -$grey--hard: harden($grey, 1.75); -$grey--harder: harden($grey, 1); - -$dark-grey: #34516c; -$dark-grey--light: lighten($dark-grey, 7%); - -$darker-grey: #1d2938; - -$darkest-grey: #28303b; - -$darkest-grey--hard: #293341; -$darkest-grey--darker: #202d3c; - -$another-grey: #3a4553; - -$light-grey: #e9eef2; -$light-grey--lighter: #f8f9fb; -$light-grey--soft: rgba($light-grey, 0.15); -$light-grey--hard: harden($light-grey); diff --git a/client/src/sass/ui/index.scss b/client/src/sass/ui/index.scss index 21b41b5db..ea86eb6f7 100644 --- a/client/src/sass/ui/index.scss +++ b/client/src/sass/ui/index.scss @@ -2,7 +2,6 @@ @import './config/spacing'; @import './config/border-radius'; -@import './config/colors'; @import './config/font-size'; @import './config/speed'; @import './config/variables'; From 8ea7b646b4b0f1c6f38523af2a2b10b1f07341a0 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 14:13:22 +0800 Subject: [PATCH 054/651] strings: add missing "Parent Directory" string --- client/src/javascript/i18n/strings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/javascript/i18n/strings.json b/client/src/javascript/i18n/strings.json index 6736af939..19f894103 100644 --- a/client/src/javascript/i18n/strings.json +++ b/client/src/javascript/i18n/strings.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", From f25b22adebc17801d9cf5feed4e5c7daf02addb6 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 14:26:39 +0800 Subject: [PATCH 055/651] styles: introduce a theming framework --- client/src/sass/style.scss | 2 +- client/src/sass/tools/_themes.scss | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 client/src/sass/tools/_themes.scss diff --git a/client/src/sass/style.scss b/client/src/sass/style.scss index bba57d706..5cf7f6967 100644 --- a/client/src/sass/style.scss +++ b/client/src/sass/style.scss @@ -1,6 +1,6 @@ @import '~ress'; -@import 'tools/colors'; +@import 'tools/themes'; @import 'ui/index'; diff --git a/client/src/sass/tools/_themes.scss b/client/src/sass/tools/_themes.scss new file mode 100644 index 000000000..2d808607b --- /dev/null +++ b/client/src/sass/tools/_themes.scss @@ -0,0 +1,25 @@ +@import 'colors'; + +@mixin themeProperty($theme, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties) { + @if $additionalPropertiesPositionIsFront { + #{$property}: unquote($additionalProperties + ' ' + map-get($theme, $color)); + } @else { + #{$property}: unquote(map-get($theme, $color) + ' ' + $additionalProperties); + } +} + +@mixin theme($property, $color, $additionalPropertiesPositionIsFront: false, $additionalProperties: '') { + $light: map-get($themes, 'light'); + $dark: map-get($themes, 'dark'); + + @include themeProperty($light, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties); + + @media (prefers-color-scheme: dark) { + @include themeProperty($dark, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties); + } +} + +$themes: ( + light: (), + dark: (), +); From 5e015e2585be183e45b648d8de4e8e9e5094e508 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 17:49:08 +0800 Subject: [PATCH 056/651] styles: initial support for dark color scheme --- client/src/sass/components/_action-bar.scss | 3 +- client/src/sass/components/_badge.scss | 8 +- client/src/sass/components/_client-stats.scss | 2 +- client/src/sass/components/_progress-bar.scss | 74 ++----- .../src/sass/components/_sidebar-filter.scss | 21 +- client/src/sass/components/_sidebar.scss | 31 +-- client/src/sass/components/_table.scss | 30 +-- client/src/sass/components/_torrent.scss | 129 ++++------- client/src/sass/components/_torrents.scss | 13 +- client/src/sass/tools/_colors-dark.scss | 26 +++ client/src/sass/tools/_colors.scss | 4 + client/src/sass/tools/_themes.scss | 201 +++++++++++++++++- 12 files changed, 333 insertions(+), 209 deletions(-) create mode 100644 client/src/sass/tools/_colors-dark.scss diff --git a/client/src/sass/components/_action-bar.scss b/client/src/sass/components/_action-bar.scss index 6dbb6a139..e77379707 100644 --- a/client/src/sass/components/_action-bar.scss +++ b/client/src/sass/components/_action-bar.scss @@ -2,7 +2,6 @@ $action-bar--background: transparent; $action-bar--foreground: #1b1a1c; $action-bar--group--border: rgba(#7a8080, 0.15); -$action--foreground: #8899a8; $action--foreground--hover: $blue; $action--background--hover: rgba(#333e4a, 0.05); $action--border--hover: rgba(#333e4a, 0.15); @@ -132,7 +131,7 @@ $torrent-list--border: rgba($sidebar--background, 0.15); } .icon { - fill: $action--foreground; + @include theme('fill', 'action--foreground'); height: 25px; left: 50%; position: absolute; diff --git a/client/src/sass/components/_badge.scss b/client/src/sass/components/_badge.scss index c9adfbb9c..a96d40668 100644 --- a/client/src/sass/components/_badge.scss +++ b/client/src/sass/components/_badge.scss @@ -1,11 +1,7 @@ -$sidebar-filter--count--foreground: darken($darkest-grey--hard, 5%); -$sidebar-filter--count--background: lighten($darkest-grey--hard, 20%); -$sidebar-filter--count--background--active: $blue; - .badge { - background: $sidebar-filter--count--background; + @include theme('background', 'sidebar-filter--count--background'); border-radius: 100px; - color: $sidebar-filter--count--foreground; + @include theme('color', 'sidebar-filter--count--foreground'); display: inline-block; font-size: 0.75rem; font-weight: 700; diff --git a/client/src/sass/components/_client-stats.scss b/client/src/sass/components/_client-stats.scss index 0813b836f..81e6c7864 100644 --- a/client/src/sass/components/_client-stats.scss +++ b/client/src/sass/components/_client-stats.scss @@ -123,7 +123,7 @@ $client-stats--timestamp--foreground: #526780; &--limit { align-items: center; display: inline-flex; - color: $sidebar--background; + @include theme('color', 'sidebar--background'); border-radius: 2px; font-size: 0.8em; font-style: normal; diff --git a/client/src/sass/components/_progress-bar.scss b/client/src/sass/components/_progress-bar.scss index e82b566e6..cada15c71 100644 --- a/client/src/sass/components/_progress-bar.scss +++ b/client/src/sass/components/_progress-bar.scss @@ -10,26 +10,6 @@ $progress-bar--height: 3px; -$progress-bar--fill: $green; -$progress-bar--fill--checking: #8899a8; -$progress-bar--fill--completed: $blue; -$progress-bar--fill--error: #e95779; -$progress-bar--fill--error--stopped: #f2acbc; -$progress-bar--fill--selected: #fff; -$progress-bar--fill--selected--stopped: #5daaeb; -$progress-bar--fill--stopped: #e7ebee; - -$progress-bar--track--background: rgba($green, 0.15); -$progress-bar--track--background--checking: rgba(#8899a8, 0.15); -$progress-bar--track--background--completed: rgba($blue, 0.15); -$progress-bar--track--background--error: rgba(#e95779, 0.15); -$progress-bar--track--background--error--stopped: rgba(#f2acbc, 0.15); -$progress-bar--track--background--selected: rgba(#fff, 0.15); -$progress-bar--track--background--selected--stopped: rgba(#5daaeb, 0.15); -$progress-bar--track--background--selected--stopped: rgba(#fff, 0.15); -$progress-bar--track--background--stopped: rgba(#e7ebee, 0.35); -$progress-bar--track--background--selected: rgba(#fff, 0.15); - .progress-bar { align-items: center; display: flex; @@ -49,110 +29,100 @@ $progress-bar--track--background--selected: rgba(#fff, 0.15); width: 12px; .torrent--is-seeding & { - color: $progress-bar--fill--completed; + @include theme('color', 'progress-bar--fill--completed'); } .torrent--is-stopped & { - color: $progress-bar--fill--stopped; + @include theme('color', 'progress-bar--fill--stopped'); } .torrent--has-error & { - color: $progress-bar--fill--error; + @include theme('color', 'progress-bar--fill--error'); } .torrent--is-checking & { - color: $progress-bar--fill--checking; + @include theme('color', 'progress-bar--fill--checking'); } .torrent--is-selected & { - color: $progress-bar--fill--selected; + @include theme('color', 'progress-bar--fill--selected'); } .torrent--is-selected.torrent--is-stopped & { - color: $progress-bar--fill--selected--stopped; + @include theme('color', 'progress-bar--fill--selected--stopped'); } .torrent--has-error.torrent--is-stopped & { - color: $progress-bar--fill--error--stopped; + @include theme('color', 'progress-bar--fill--error--stopped'); } } } &__fill { - background: $progress-bar--fill; + @include theme('background', 'progress-bar--fill'); display: block; height: $progress-bar--height; width: 100%; .torrent--is-seeding & { - background: $progress-bar--fill--completed; + @include theme('background', 'progress-bar--fill--completed'); } .torrent--is-stopped & { - background: $progress-bar--fill--stopped; + @include theme('background', 'progress-bar--fill--stopped'); } .torrent--has-error & { - background: $progress-bar--fill--error; + @include theme('background', 'progress-bar--fill--error'); } .torrent--is-checking & { - background: $progress-bar--fill--checking; + @include theme('background', 'progress-bar--fill--checking'); } .torrent--is-selected & { - background: $progress-bar--fill--selected; + @include theme('background', 'progress-bar--fill--selected'); } .torrent--is-selected.torrent--is-stopped & { - background: $progress-bar--fill--selected--stopped; + @include theme('background', 'progress-bar--fill--selected--stopped'); } .torrent--has-error.torrent--is-stopped & { - background: $progress-bar--fill--error--stopped; + @include theme('background', 'progress-bar--fill--error--stopped'); } &__wrapper { - background: $progress-bar--track--background; + @include theme('background', 'progress-bar--track--background'); flex: 1 1 auto; position: relative; height: $progress-bar--height; .torrent--is-stopped & { - background: $progress-bar--track--background--stopped; + @include theme('background', 'progress-bar--track--background--stopped'); } .torrent--has-error & { - background: $progress-bar--track--background--error; + @include theme('background', 'progress-bar--track--background--error'); } .torrent--is-selected & { - background: $progress-bar--track--background--selected; + @include theme('background', 'progress-bar--track--background--selected'); } .torrent--has-error.torrent--is-stopped & { - background: $progress-bar--track--background--error--stopped; + @include theme('background', 'progress-bar--track--background--error--stopped'); } .torrent--is-selected.torrent--is-stopped & { - background: $progress-bar--track--background--selected--stopped; + @include theme('background', 'progress-bar--track--background--selected--stopped'); opacity: 1; } .torrent--is-checking & { animation: candy-stripe 0.25s linear infinite; background-color: transparent; - background-image: linear-gradient( - -45deg, - rgba($progress-bar--track--background--checking, 0) 0, - rgba($progress-bar--track--background--checking, 0) 25%, - rgba($progress-bar--track--background--checking, 0.5) 25%, - rgba($progress-bar--track--background--checking, 0.5) 50%, - rgba($progress-bar--track--background--checking, 0) 50%, - rgba($progress-bar--track--background--checking, 0) 75%, - rgba($progress-bar--track--background--checking, 0.5) 75%, - rgba($progress-bar--track--background--checking, 0.5) 100% - ); + @include theme('background-image', 'progress-bar--track--background--checking'); background-size: 4px 4px; height: $progress-bar--height; top: 0; diff --git a/client/src/sass/components/_sidebar-filter.scss b/client/src/sass/components/_sidebar-filter.scss index 721d9e7ee..ea02e252c 100644 --- a/client/src/sass/components/_sidebar-filter.scss +++ b/client/src/sass/components/_sidebar-filter.scss @@ -7,36 +7,37 @@ } &__item { - color: $sidebar-filter--foreground; + @include theme('color', 'sidebar-filter--foreground'); cursor: pointer; font-weight: 400; padding: 3px 20px; transition: color 0.25s; &:hover { - color: $sidebar-filter--foreground--hover; + @include theme('color', 'sidebar-filter--foreground--hover'); .icon { - fill: $sidebar-filter--foreground--hover; + @include theme('fill', 'sidebar-filter--foreground--hover'); } } &.is-active { - color: $sidebar-filter--foreground--active; + @include theme('color', 'sidebar-filter--foreground--active'); font-weight: 700; .badge { - background: $sidebar-filter--count--background--active; + @include theme('background', 'sidebar-filter--count--background--active'); + @include theme('color', 'sidebar-filter--count--foreground--active'); } .icon { - fill: $sidebar-filter--foreground--active; + @include theme('fill', 'sidebar-filter--foreground--active'); } } .icon { display: inline-block; - fill: $sidebar-filter--foreground; + @include theme('fill', 'sidebar-filter--foreground'); height: 14px; margin-right: 7px; transition: fill 0.25s; @@ -46,8 +47,8 @@ } .badge { - background: $sidebar-filter--count--background; - color: $sidebar-filter--count--foreground; + @include theme('background', 'sidebar-filter--count--background'); + @include theme('color', 'sidebar-filter--count--foreground'); } } @@ -62,7 +63,7 @@ &, &:hover { - color: $sidebar-filter--foreground--header; + @include theme('color', 'sidebar-filter--foreground--header'); } } } diff --git a/client/src/sass/components/_sidebar.scss b/client/src/sass/components/_sidebar.scss index 3a708ce0d..eb24b5bfe 100644 --- a/client/src/sass/components/_sidebar.scss +++ b/client/src/sass/components/_sidebar.scss @@ -1,21 +1,8 @@ -$sidebar--foreground: #526780; -$sidebar--border: rgba(darken($sidebar--foreground, 40%), 0.3); - -$sidebar-filter--foreground: $sidebar--foreground; -$sidebar-filter--foreground--header: rgba($sidebar-filter--foreground, 0.5); -$sidebar-filter--foreground--active: $blue; -$sidebar-filter--foreground--hover: lighten($sidebar-filter--foreground, 15%); - -$sidebar--icon-button--fill: $sidebar--foreground; -$sidebar--icon-button--fill--hover: $blue; -$sidebar--icon-button--foreground: rgba($sidebar--foreground, 0.7); -$sidebar--icon-button--foreground--hover: $blue; - .application { &__sidebar { - background: $sidebar--background; - box-shadow: 1px 0 $sidebar--border; - color: $sidebar--foreground; + @include theme('background', 'sidebar--background'); + @include theme('box-shadow', 'sidebar--border'); + @include theme('color', 'sidebar--foreground'); flex: 1; min-width: 200px; max-width: 240px; @@ -27,7 +14,7 @@ $sidebar--icon-button--foreground--hover: $blue; .sidebar { &__icon-button { - color: $sidebar--icon-button--foreground; + @include theme('color', 'sidebar--icon-button--foreground'); display: block; font-size: 0.8em; line-height: 1; @@ -36,10 +23,10 @@ $sidebar--icon-button--foreground--hover: $blue; transition: color 0.25s; &:hover { - color: $sidebar--icon-button--foreground--hover; + @include theme('color', 'sidebar--icon-button--foreground--hover'); .icon { - fill: $sidebar--icon-button--fill--hover; + @include theme('fill', 'sidebar--icon-button--fill--hover'); } } @@ -48,7 +35,7 @@ $sidebar--icon-button--foreground--hover: $blue; } .icon { - fill: $sidebar--icon-button--fill; + @include theme('fill', 'sidebar--icon-button--fill'); height: 13px; transition: fill 0.25s; position: relative; @@ -75,10 +62,10 @@ $sidebar--icon-button--foreground--hover: $blue; display: none; } .progress-bar__fill__wrapper { - background: rgba($sidebar-filter--foreground, 0.5); + @include theme('background', 'sidebar-filter--foreground--fill'); } .progress-bar__fill { - background: $sidebar-filter--foreground; + @include theme('background', 'sidebar-filter--foreground'); } } } diff --git a/client/src/sass/components/_table.scss b/client/src/sass/components/_table.scss index 73e0a191b..6d2dc2d71 100644 --- a/client/src/sass/components/_table.scss +++ b/client/src/sass/components/_table.scss @@ -1,22 +1,12 @@ -$table--heading--background: rgba(#f6f8fa, 0.6); -$table--heading--border: rgba(#1d2938, 0.1); -$table--heading--border--horizontal: rgba(#1d2938, 0.08); - -$table--heading--color: #abbac7; -$table--heading--color--hover: darken($table--heading--color, 10%); -$table--heading--color--active: darken($table--heading--color, 30%); -$table--heading--color--active--hover: darken($table--heading--color, 40%); - $table--heading--resize--handle--width: 9px; $table--heading--resize--indicator--width: 1px; -$table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75); .table { &__row { &--heading { - background: $table--heading--background; - box-shadow: 0 1px 0 $table--heading--border; - color: $table--heading--color; + @include theme('background', 'table--heading--background'); + @include theme('box-shadow', 'table--heading--border'); + @include theme('color', 'table--heading--color'); display: flex; height: 24px; font-size: 12px; @@ -27,7 +17,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) &__heading { align-items: center; - border-right: 1px solid $table--heading--border--horizontal; + @include theme('border-right', 'table--heading--border--horizontal'); cursor: pointer; display: flex; flex: 0 0 auto; @@ -39,7 +29,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) } &:hover { - color: $table--heading--color--hover; + @include theme('color', 'table--heading--color--hover'); } &:after { @@ -56,11 +46,11 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) } &--is-sorted { - color: $table--heading--color--active; + @include theme('color', 'table--heading--color--active'); font-weight: 700; &:hover { - color: $table--heading--color--active--hover; + @include theme('color', 'table--heading--color--active--hover'); } &:after { @@ -101,7 +91,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) z-index: 2; &:after { - background: $table--heading--resize--indicator--background; + @include theme('background', 'table--heading--resize--indicator--background'); bottom: 0; content: ''; left: ($table--heading--resize--handle--width - $table--heading--resize--indicator--width) / 2; @@ -126,7 +116,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) } &__resize-line { - background: $table--heading--resize--indicator--background; + @include theme('background', 'table--heading--resize--indicator--background'); bottom: 0; left: 0; opacity: 0; @@ -138,7 +128,7 @@ $table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75) } &__column-fill { - background: $table--heading--resize--indicator--background; + @include theme('background', 'table--heading--resize--indicator--background'); bottom: 0; left: 0; opacity: 0; diff --git a/client/src/sass/components/_torrent.scss b/client/src/sass/components/_torrent.scss index 8a799ad1b..65e4ac1df 100644 --- a/client/src/sass/components/_torrent.scss +++ b/client/src/sass/components/_torrent.scss @@ -1,44 +1,3 @@ -$torrent--primary--foreground: saturate(darken(#8899a8, 20%), 10%); -$torrent--primary--foreground--error: #e95779; -$torrent--primary--foreground--error--stopped: rgba($torrent--primary--foreground--error, 0.6); -$torrent--primary--foreground--error--stopped--selected: rgba($white, 0.6); -$torrent--primary--foreground--stopped: rgba(#8899a8, 0.8); -$torrent--primary--foreground--selected: $white; -$torrent--primary--foreground--selected--stopped: rgba($torrent--primary--foreground--selected, 0.6); -$torrent--primary--foreground--selected--error: $white; - -$torrent--secondary--foreground: #8899a8; -$torrent--secondary--foreground--stopped: #c3ccd3; -$torrent--secondary--foreground--selected: $white; -$torrent--secondary--foreground--selected--stopped: rgba($white, 0.6); - -$torrent--tertiary--foreground: #8899a8; -$torrent--tertiary--foreground--stopped: #c3ccd3; -$torrent--tertiary--foreground--selected: rgba($white, 0.9); -$torrent--tertiary--foreground--selected--stopped: rgba($white, 0.5); - -$torrent--background--hover: #f6f8fa; -$torrent--background--selected: $blue; -$torrent--background--error: #e95779; - -$torrent--border: #e9eef2; -$torrent--border--selected: darken($torrent--background--selected, 3%); -$torrent--border--selected--error: darken($torrent--background--error, 3%); - -$torrent--speed--foreground--selected--has-error: $white; -$torrent--speed--foreground--selected: $white; - -$torrent--tags--background: #dce2e6; -$torrent--tags--foreground: #6f7d87; -$torrent--tags--background--selected: #4ea3ea; -$torrent--tags--background--selected--has-error: #ed7994; -$torrent--tags--foreground--selected: $white; -$torrent--tags--foreground--has-error: #fbe8ec; - -$more-info--background: $white; -$more-info--background--hover: $white; - -$more-info--box-shadow--hue: #1a2f3d; $more-info--border: $textbox-repeater--button--border; .torrent { @@ -59,7 +18,7 @@ $more-info--border: $textbox-repeater--button--border; &:hover { &:after { - background: $torrent--background--hover; + @include theme('background', 'torrent--background--hover'); } .torrent { @@ -72,11 +31,11 @@ $more-info--border: $textbox-repeater--button--border; } &__detail { - color: $torrent--secondary--foreground; + @include theme('color', 'torrent--secondary--foreground'); &--name { - color: $torrent--primary--foreground; - font-weight: 500; + @include theme('color', 'torrent--primary--foreground'); + @include theme('font-weight', 'torrent--primary--font-weight'); } &--tags { @@ -92,8 +51,8 @@ $more-info--border: $textbox-repeater--button--border; } .tag { - background: $torrent--tags--background; - color: $torrent--tags--foreground; + @include theme('background', 'torrent--tags--background'); + @include theme('color', 'torrent--tags--foreground'); } } @@ -116,11 +75,11 @@ $more-info--border: $textbox-repeater--button--border; &__details { &__section { &--secondary { - color: $torrent--secondary--foreground; + @include theme('color', 'torrent--secondary--foreground'); } &--tertiary { - color: $torrent--tertiary--foreground; + @include theme('color', 'torrent--tertiary--foreground'); } } } @@ -130,20 +89,20 @@ $more-info--border: $textbox-repeater--button--border; &__details { &__section { &--secondary { - color: $torrent--secondary--foreground--stopped; + @include theme('color', 'torrent--secondary--foreground--stopped'); } &--tertiary { - color: $torrent--tertiary--foreground--stopped; + @include theme('color', 'torrent--tertiary--foreground--stopped'); } } } &__detail { - color: $torrent--secondary--foreground--stopped; + @include theme('color', 'torrent--secondary--foreground--stopped'); &--name { - color: $torrent--primary--foreground--stopped; + @include theme('color', 'torrent--primary--foreground--stopped'); font-weight: 400; } @@ -160,7 +119,7 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { &--name { - color: $torrent--primary--foreground--error--stopped; + @include theme('color', 'torrent--primary--foreground--error--stopped'); } } } @@ -170,13 +129,13 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { &--name { - color: $torrent--primary--foreground--error; + @include theme('color', 'torrent--primary--foreground--error'); } } } &:after { - background: $torrent--background--error; + @include theme('background', 'torrent--background--error'); } } @@ -240,19 +199,19 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { &--name { - color: $torrent--primary--foreground--selected--error; + @include theme('color', 'torrent--primary--foreground--selected--error'); } &--tags { .tag { - background: $torrent--tags--background--selected--has-error; - color: $torrent--tags--foreground--has-error; + @include theme('background', 'torrent--tags--background--selected--has-error'); + @include theme('color', 'torrent--tags--foreground--has-error'); } } &--downRate, &--upRate { - color: $torrent--speed--foreground--selected--has-error; + @include theme('color', 'torrent--speed--foreground--selected--has-error'); } } } @@ -260,7 +219,7 @@ $more-info--border: $textbox-repeater--button--border; &, &:hover { &:after { - background: $torrent--background--error; + @include theme('background', 'torrent--background--error'); } } } @@ -271,7 +230,7 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { &--name { - color: $torrent--primary--foreground--error--stopped--selected; + @include theme('color', 'torrent--primary--foreground--error--stopped--selected'); } } } @@ -280,15 +239,15 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { - color: $torrent--secondary--foreground--selected--stopped; + @include theme('color', 'torrent--secondary--foreground--selected--stopped'); &--name { - color: $torrent--primary--foreground--selected--stopped; + @include theme('color', 'torrent--primary--foreground--selected--stopped'); } &--downRate, &--upRate { - color: $torrent--tertiary--foreground--selected--stopped; + @include theme('color', 'torrent--tertiary--foreground--selected--stopped'); } &--tags { @@ -299,11 +258,11 @@ $more-info--border: $textbox-repeater--button--border; &__details { &__section { &--secondary { - color: $torrent--secondary--foreground--selected--stopped; + @include theme('color', 'torrent--secondary--foreground--selected--stopped'); } &--tertiary { - color: $torrent--tertiary--foreground--selected--stopped; + @include theme('color', 'torrent--tertiary--foreground--selected--stopped'); } } } @@ -314,28 +273,28 @@ $more-info--border: $textbox-repeater--button--border; &, &:hover { &:after { - background: $torrent--background--selected; + @include theme('background', 'torrent--background--selected'); opacity: 1; } } .torrent { &__detail { - color: $torrent--secondary--foreground--selected; + @include theme('color', 'torrent--secondary--foreground--selected'); &--name { - color: $torrent--primary--foreground--selected; + @include theme('color', 'torrent--primary--foreground--selected'); } &--downRate, &--upRate { - color: $torrent--speed--foreground--selected; + @include theme('color', 'torrent--speed--foreground--selected'); } &--tags { .tag { - background: $torrent--tags--background--selected; - color: $torrent--tags--foreground--selected; + @include theme('background', 'torrent--tags--background--selected'); + @include theme('color', 'torrent--tags--foreground--selected'); } } } @@ -343,11 +302,11 @@ $more-info--border: $textbox-repeater--button--border; &__details { &__section { &--secondary { - color: $torrent--secondary--foreground--selected; + @include theme('color', 'torrent--secondary--foreground--selected'); } &--tertiary { - color: $torrent--tertiary--foreground--selected; + @include theme('color', 'torrent--tertiary--foreground--selected'); } } } @@ -513,7 +472,7 @@ $more-info--border: $textbox-repeater--button--border; &--is-condensed { align-items: center; - border-top: 1px solid $torrent--border; + @include theme('border-top', 'torrent--border'); display: flex; height: 30px; padding: 0; @@ -526,7 +485,7 @@ $more-info--border: $textbox-repeater--button--border; &--is-stopped { .torrent { &__detail { - color: $torrent--secondary--foreground--stopped; + @include theme('color', 'torrent--secondary--foreground--stopped'); } } } @@ -534,21 +493,21 @@ $more-info--border: $textbox-repeater--button--border; &--is-selected { &, & + .torrent { - border-color: $torrent--border--selected; + @include theme('border-color', 'torrent--border--selected'); } &.torrent { &--has-error { &, & + .torrent { - border-color: $torrent--border--selected--error; + @include theme('border-color', 'torrent--border--selected--error'); } } &--is-stopped { .torrent { &__detail { - color: $torrent--tertiary--foreground--selected--stopped; + @include theme('color', 'torrent--tertiary--foreground--selected--stopped'); } } } @@ -556,7 +515,7 @@ $more-info--border: $textbox-repeater--button--border; .torrent { &__detail { - color: $torrent--secondary--foreground--selected; + @include theme('color', 'torrent--secondary--foreground--selected'); } } } @@ -593,9 +552,9 @@ $more-info--border: $textbox-repeater--button--border; } &__more-info { - background: $more-info--background; + @include theme('background', 'more-info--background'); border-radius: 32px 0 0 32px; - box-shadow: 0 0 30px rgba($more-info--box-shadow--hue, 0.11), 0 0 0 1px rgba($more-info--box-shadow--hue, 0.07); + @include theme('box-shadow', 'more-info--box-shadow'); height: 32px; margin-top: -16px; position: absolute; @@ -617,8 +576,8 @@ $more-info--border: $textbox-repeater--button--border; } &:hover { - background: $more-info--background--hover; - box-shadow: 0 0 30px rgba($more-info--box-shadow--hue, 0.2), 0 0 0 1px rgba($more-info--box-shadow--hue, 0.1); + @include theme('background', 'more-info--background--hover'); + @include theme('box-shadow', 'more-info--box-shadow--hover'); .icon { fill: $blue; diff --git a/client/src/sass/components/_torrents.scss b/client/src/sass/components/_torrents.scss index 49d8d8f27..ca9ba2930 100644 --- a/client/src/sass/components/_torrents.scss +++ b/client/src/sass/components/_torrents.scss @@ -1,11 +1,6 @@ -$torrent-list--background: #fff; -$torrent-list--border: rgba($sidebar--background, 0.15); - -$torrents-list--alert--foreground: rgba(#8899a8, 0.5); - .torrents { - background: $torrent-list--background; - box-shadow: -1px 0 0 0 $torrent-list--border; + @include theme('background', 'torrent-list--background'); + @include theme('box-shadow', 'torrent-list--border'); display: flex; flex: 1 1 auto; flex-direction: column; @@ -19,7 +14,7 @@ $torrents-list--alert--foreground: rgba(#8899a8, 0.5); } &__alert { - color: $torrents-list--alert--foreground; + @include theme('color', 'torrents-list--alert--foreground'); text-align: center; &__wrapper { @@ -100,7 +95,7 @@ $torrents-list--alert--foreground: rgba(#8899a8, 0.5); .view { &--torrent-list { - background: #e9eef2; + @include theme('background', 'torrent-view--background'); box-shadow: -1px 0 $torrent-list--border; display: flex; flex-direction: column; diff --git a/client/src/sass/tools/_colors-dark.scss b/client/src/sass/tools/_colors-dark.scss new file mode 100644 index 000000000..09b4feedc --- /dev/null +++ b/client/src/sass/tools/_colors-dark.scss @@ -0,0 +1,26 @@ +$md-surface-dark: #121212; +$md-surface-dark-e01: #1d1d1d; +$md-surface-dark-e02: #212121; +$md-surface-dark-e03: #242424; +$md-surface-dark-e04: #262626; +$md-surface-dark-e06: #2c2c2c; +$md-surface-dark-e08: #2d2d2d; +$md-surface-dark-e12: #323232; +$md-surface-dark-e16: #353535; +$md-surface-dark-e24: #373737; + +$md-grey-50: #fafafa; +$md-grey-100: #f5f5f5; +$md-grey-200: #eeeeee; +$md-grey-300: #e0e0e0; +$md-grey-400: #bdbdbd; +$md-grey-500: #9e9e9e; +$md-grey-600: #757575; +$md-grey-700: #616161; +$md-grey-800: #424242; +$md-grey-900: #212121; + +$md-text-primary-dark: rgba(255, 255, 255, 0.87); +$md-text-secondary-dark: rgba(255, 255, 255, 0.6); +$md-text-disabled-dark: rgba(255, 255, 255, 0.38); +$md-text-dividers-dark: rgba(255, 255, 255, 0.12); diff --git a/client/src/sass/tools/_colors.scss b/client/src/sass/tools/_colors.scss index b744141cb..0550ed01a 100644 --- a/client/src/sass/tools/_colors.scss +++ b/client/src/sass/tools/_colors.scss @@ -3,6 +3,7 @@ } $white: #fff; +$black: #000; $red: #f34570; $red--alpha--light: rgba($red, 0.1); @@ -52,6 +53,7 @@ $background: $dark-blue; $foreground: #53718a; $sidebar--background: $darkest-grey--hard; +$sidebar--foreground: #526780; $main-content--background: $light-blue; $textbox--background: #242b36; @@ -65,3 +67,5 @@ $textbox--active--background: $textbox--background; $textbox--active--border: $blue; $textbox--active--foreground: $blue; $textbox--active--placeholder: $textbox--placeholder; + +$table--heading--color: #abbac7; diff --git a/client/src/sass/tools/_themes.scss b/client/src/sass/tools/_themes.scss index 2d808607b..ba51beee3 100644 --- a/client/src/sass/tools/_themes.scss +++ b/client/src/sass/tools/_themes.scss @@ -1,4 +1,5 @@ @import 'colors'; +@import 'colors-dark'; @mixin themeProperty($theme, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties) { @if $additionalPropertiesPositionIsFront { @@ -20,6 +21,202 @@ } $themes: ( - light: (), - dark: (), + light: ( + torrent-view--background: #e9eef2, + torrent-list--background: #fff, + torrent-list--border: -1px 0 0 0 rgba($sidebar--background, 0.15), + torrents-list--alert--foreground: rgba(#8899a8, 0.5), + action--foreground: #8899a8, + table--heading--background: rgba(#f6f8fa, 0.6), + table--heading--color: $table--heading--color, + table--heading--color--hover: darken($table--heading--color, 10%), + table--heading--color--active: darken($table--heading--color, 30%), + table--heading--color--active--hover: darken($table--heading--color, 40%), + table--heading--resize--indicator--background: rgba(darken(#f6f8fa, 10%), 0.75), + table--heading--border: 0 1px 0 rgba(#1d2938, 0.1), + table--heading--border--horizontal: 1px solid rgba(#1d2938, 0.08), + torrent--primary--font-weight: 500, + torrent--primary--foreground: saturate(darken($grey, 20%), 10%), + torrent--primary--foreground--error: $red, + torrent--primary--foreground--error--stopped: rgba($red, 0.6), + torrent--primary--foreground--error--stopped--selected: rgba($white, 0.6), + torrent--primary--foreground--stopped: rgba($grey, 0.8), + torrent--primary--foreground--selected: $white, + torrent--primary--foreground--selected--stopped: rgba($white, 0.6), + torrent--primary--foreground--selected--error: $white, + torrent--secondary--foreground: #8899a8, + torrent--secondary--foreground--stopped: #c3ccd3, + torrent--secondary--foreground--selected: $white, + torrent--secondary--foreground--selected--stopped: rgba($white, 0.6), + torrent--tertiary--foreground: #8899a8, + torrent--tertiary--foreground--stopped: #c3ccd3, + torrent--tertiary--foreground--selected: rgba($white, 0.9), + torrent--tertiary--foreground--selected--stopped: rgba($white, 0.5), + torrent--background--hover: #f6f8fa, + torrent--background--selected: $blue, + torrent--background--error: $red, + torrent--border: 1px solid #e9eef2, + torrent--border--selected: darken($blue, 3%), + torrent--border--selected--error: darken($red, 3%), + torrent--speed--foreground--selected--has-error: $white, + torrent--speed--foreground--selected: $white, + torrent--tags--background: #dce2e6, + torrent--tags--foreground: #6f7d87, + torrent--tags--background--selected: #4ea3ea, + torrent--tags--background--selected--has-error: #ed7994, + torrent--tags--foreground--selected: $white, + torrent--tags--foreground--has-error: #fbe8ec, + more-info--background: $white, + more-info--background--hover: $white, + more-info--box-shadow: ( + 0 0 30px rgba(#1a2f3d, 0.11), + 0 0 0 1px rgba(#1a2f3d, 0.07), + ), + more-info--box-shadow--hover: ( + 0 0 30px rgba(#1a2f3d, 0.2), + 0 0 0 1px rgba(#1a2f3d, 0.1), + ), + progress-bar--fill: $green, + progress-bar--fill--checking: #8899a8, + progress-bar--fill--completed: $blue, + progress-bar--fill--error: #e95779, + progress-bar--fill--error--stopped: #f2acbc, + progress-bar--fill--selected: #fff, + progress-bar--fill--selected--stopped: #5daaeb, + progress-bar--fill--stopped: #e7ebee, + progress-bar--track--background: rgba($green, 0.15), + progress-bar--track--background--completed: rgba($blue, 0.15), + progress-bar--track--background--error: rgba(#e95779, 0.15), + progress-bar--track--background--error--stopped: rgba(#f2acbc, 0.15), + progress-bar--track--background--selected: rgba(#fff, 0.15), + progress-bar--track--background--selected--stopped: rgba(#fff, 0.15), + progress-bar--track--background--stopped: rgba(#e7ebee, 0.35), + progress-bar--track--background--checking: + linear-gradient( + -45deg, + rgba(rgba(#8899a8, 0.15), 0) 0, + rgba(rgba(#8899a8, 0.15), 0) 25%, + rgba(rgba(#8899a8, 0.15), 0.5) 25%, + rgba(rgba(#8899a8, 0.15), 0.5) 50%, + rgba(rgba(#8899a8, 0.15), 0) 50%, + rgba(rgba(#8899a8, 0.15), 0) 75%, + rgba(rgba(#8899a8, 0.15), 0.5) 75%, + rgba(rgba(#8899a8, 0.15), 0.5) 100% + ), + sidebar--background: $sidebar--background, + sidebar--foreground: $sidebar--foreground, + sidebar--border: 1px 0 rgba(darken($sidebar--foreground, 40%), 0.3), + sidebar-filter--foreground: $sidebar--foreground, + sidebar-filter--foreground--fill: rgba($sidebar--foreground, 0.5), + sidebar-filter--foreground--header: rgba($sidebar--foreground, 0.5), + sidebar-filter--foreground--active: $blue, + sidebar-filter--foreground--hover: lighten($sidebar--foreground, 15%), + sidebar--icon-button--fill: $sidebar--foreground, + sidebar--icon-button--fill--hover: $blue, + sidebar--icon-button--foreground: rgba($sidebar--foreground, 0.7), + sidebar--icon-button--foreground--hover: $blue, + sidebar-filter--count--foreground: darken($darkest-grey--hard, 5%), + sidebar-filter--count--foreground--active: darken($darkest-grey--hard, 5%), + sidebar-filter--count--background: lighten($darkest-grey--hard, 20%), + sidebar-filter--count--background--active: $blue, + ), + dark: ( + torrent-view--background: $md-surface-dark-e08, + torrent-list--background: $md-surface-dark, + torrent-list--border: -1px 0 0 0 rgba($sidebar--background, 0.15), + torrents-list--alert--foreground: rgba(#8899a8, 0.5), + action--foreground: $md-grey-500, + table--heading--background: $md-surface-dark-e01, + table--heading--color: $md-text-disabled-dark, + table--heading--color--hover: $md-text-secondary-dark, + table--heading--color--active: $md-text-primary-dark, + table--heading--color--active--hover: $white, + table--heading--resize--indicator--background: $md-text-secondary-dark, + table--heading--border: 0 1px 0 $md-text-dividers-dark, + table--heading--border--horizontal: 1px solid $md-text-dividers-dark, + torrent--primary--font-weight: 400, + torrent--primary--foreground: $md-text-primary-dark, + torrent--primary--foreground--error: $red, + torrent--primary--foreground--error--stopped: rgba($red, 0.6), + torrent--primary--foreground--error--stopped--selected: rgba($white, 0.6), + torrent--primary--foreground--stopped: rgba($grey, 0.8), + torrent--primary--foreground--selected: $white, + torrent--primary--foreground--selected--stopped: rgba($white, 0.6), + torrent--primary--foreground--selected--error: $white, + torrent--secondary--foreground: $md-text-secondary-dark, + torrent--secondary--foreground--stopped: $md-text-disabled-dark, + torrent--secondary--foreground--selected: $white, + torrent--secondary--foreground--selected--stopped: rgba($white, 0.6), + torrent--tertiary--foreground: $md-text-secondary-dark, + torrent--tertiary--foreground--stopped: #c3ccd3, + torrent--tertiary--foreground--selected: rgba($white, 0.9), + torrent--tertiary--foreground--selected--stopped: rgba($white, 0.5), + torrent--background--hover: #f6f8fa, + torrent--background--selected: $blue, + torrent--background--error: $red, + torrent--border: 1px solid $md-text-dividers-dark, + torrent--border--selected: darken($blue, 3%), + torrent--border--selected--error: darken($red, 3%), + torrent--speed--foreground--selected--has-error: $white, + torrent--speed--foreground--selected: $white, + torrent--tags--background: $md-surface-dark-e06, + torrent--tags--foreground: $md-text-secondary-dark, + torrent--tags--background--selected: #4ea3ea, + torrent--tags--background--selected--has-error: #ed7994, + torrent--tags--foreground--selected: $white, + torrent--tags--foreground--has-error: #fbe8ec, + more-info--background: $white, + more-info--background--hover: $white, + more-info--box-shadow: ( + 0 0 30px rgba(#1a2f3d, 0.11), + 0 0 0 1px rgba(#1a2f3d, 0.07), + ), + more-info--box-shadow--hover: ( + 0 0 30px rgba(#1a2f3d, 0.2), + 0 0 0 1px rgba(#1a2f3d, 0.1), + ), + progress-bar--fill: $green, + progress-bar--fill--checking: #8899a8, + progress-bar--fill--completed: $blue, + progress-bar--fill--error: #e95779, + progress-bar--fill--error--stopped: #f2acbc, + progress-bar--fill--selected: #fff, + progress-bar--fill--selected--stopped: $md-text-secondary-dark, + progress-bar--fill--stopped: $md-text-disabled-dark, + progress-bar--track--background: rgba($green, 0.15), + progress-bar--track--background--completed: rgba($blue, 0.15), + progress-bar--track--background--error: rgba(#e95779, 0.15), + progress-bar--track--background--error--stopped: rgba(#f2acbc, 0.15), + progress-bar--track--background--selected: rgba(#fff, 0.15), + progress-bar--track--background--selected--stopped: $md-text-dividers-dark, + progress-bar--track--background--stopped: $md-text-dividers-dark, + progress-bar--track--background--checking: + linear-gradient( + -45deg, + rgba(rgba(#8899a8, 0.15), 0) 0, + rgba(rgba(#8899a8, 0.15), 0) 25%, + rgba(rgba(#8899a8, 0.15), 0.5) 25%, + rgba(rgba(#8899a8, 0.15), 0.5) 50%, + rgba(rgba(#8899a8, 0.15), 0) 50%, + rgba(rgba(#8899a8, 0.15), 0) 75%, + rgba(rgba(#8899a8, 0.15), 0.5) 75%, + rgba(rgba(#8899a8, 0.15), 0.5) 100% + ), + sidebar--background: $md-surface-dark, + sidebar--foreground: $md-text-secondary-dark, + sidebar--border: 1px 0 $md-text-dividers-dark, + sidebar-filter--foreground: $md-text-disabled-dark, + sidebar-filter--foreground--fill: $md-text-dividers-dark, + sidebar-filter--foreground--header: $md-text-primary-dark, + sidebar-filter--foreground--active: $blue, + sidebar-filter--foreground--hover: $md-text-secondary-dark, + sidebar--icon-button--fill: $md-grey-500, + sidebar--icon-button--fill--hover: $blue, + sidebar--icon-button--foreground: $md-grey-400, + sidebar--icon-button--foreground--hover: $blue, + sidebar-filter--count--foreground: $md-text-secondary-dark, + sidebar-filter--count--foreground--active: darken($darkest-grey--hard, 5%), + sidebar-filter--count--background: $md-surface-dark-e06, + sidebar-filter--count--background--active: $blue, + ), ); From 6e1ea0a09d4045fd2307f9225abda5114791dbeb Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 17:53:35 +0800 Subject: [PATCH 057/651] dependencies: "npm update" (minor) --- package-lock.json | 143 +++++++++++++++++++++++----------------------- package.json | 8 +-- 2 files changed, 77 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7e7352d3..e01d0a252 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1191,58 +1191,58 @@ } }, "@formatjs/intl-datetimeformat": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.4.0.tgz", - "integrity": "sha512-EDVt4q+qJZOJOyQPg1WHRHTVL4N/iiapLVGZLdEFEa8AFfjLvHt5DYx7jN8qz5ZqRZVP3AP6M4ObeTl54y3mPw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.4.1.tgz", + "integrity": "sha512-WH19o2CksJoSR9E0BK5vRQGaveys6nH6GGJGZK7WlocSttcw2Yy+Umo/9R9+Zu/qki0acTcndjk6nt3eOO5IGw==", "requires": { - "@formatjs/intl-getcanonicallocales": "^1.3.1", - "@formatjs/intl-utils": "^3.8.2" + "@formatjs/intl-getcanonicallocales": "^1.3.2", + "@formatjs/intl-utils": "^3.8.3" } }, "@formatjs/intl-displaynames": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-3.2.0.tgz", - "integrity": "sha512-2F3e/CflgvUZkOghf4z4aGr9hz683BAaz6vhP2Mvp1nJoIUvMovVgMQrnn4ChmyhGzfJB4vJCQKd/N/KCRWNRg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-3.2.1.tgz", + "integrity": "sha512-77i8uE1B4wJMWnCVruaThz1ahYA7IlnDKsFqe73UTL1/Qj+Z5/uqu1fL7/zUQBhJeTROtpNUkTH+9WUgFykLYw==", "requires": { - "@formatjs/intl-utils": "^3.8.2" + "@formatjs/intl-utils": "^3.8.3" } }, "@formatjs/intl-getcanonicallocales": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.3.1.tgz", - "integrity": "sha512-0E1ZOTwIB8zEjqnW4V7k0gBVdmtbXiLfq1sWhX28Uq59iTmo+zoADre9dIr15Sx6Kl+4JgC6Mu9/bP3F746Fjg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.3.2.tgz", + "integrity": "sha512-/GWYnHBeskb4aZxdz+oFTKO2I6xRKEoytFv/QnxxxoXLKV0LyvIryC9q8U7x/V2NgewI4IuwU/z6RH+pOm2MuQ==", "requires": { "cldr-core": "36.0.0" } }, "@formatjs/intl-listformat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-4.1.0.tgz", - "integrity": "sha512-pzbYcf+7XrPakWcxFtr7CI3bRfIjdljO6RqyOyyZuoEl6ioDLlt9uP4Be29r/VOLmH4ZBRTQHHZrMXWnmWY/8Q==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-4.1.1.tgz", + "integrity": "sha512-6J0+UXZO5KcVEuIQ4v7G8I7Rk7p8qT8E47sXV3CkFySkqyYb9bUMC/9MpDuxxyacFQWS5BQS5szAqgB7Aj1uWQ==", "requires": { - "@formatjs/intl-utils": "^3.8.2" + "@formatjs/intl-utils": "^3.8.3" } }, "@formatjs/intl-numberformat": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.4.0.tgz", - "integrity": "sha512-gl8xUp745Hx8IgmofSi3AZJmbEBwxfNFgimeaIb2nlflVcIhtIo0RSyl93Es2V1+0R2Atg4gLC5vox3wGgz5/w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.4.1.tgz", + "integrity": "sha512-w9GRPRmD4EZ1gxbekVAMmLphwT7JzjYGmxPa1ZD4ukb0pmk+9Sb3Qy6BjOu59YsROAAMrct6EQqfc/H//EYRdA==", "requires": { - "@formatjs/intl-utils": "^3.8.2" + "@formatjs/intl-utils": "^3.8.3" } }, "@formatjs/intl-relativetimeformat": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.1.0.tgz", - "integrity": "sha512-hU2+hEuC2bIPfmByxFPMZ9ZJUd3fYxfmAmmmbGt6ILes9ZLwWoTXFANEQ7YNwnOv1w/fAfhQsSqg6RgJSxtGYA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.1.1.tgz", + "integrity": "sha512-NpWdVFnwB4AywW0mJMP9JlGJxS1H0LTFnAWFjywIxCPZVZVNlyru4IahGr0pDpIAezC+HcwH5gqdlc1Rw/l5vg==", "requires": { - "@formatjs/intl-utils": "^3.8.2" + "@formatjs/intl-utils": "^3.8.3" } }, "@formatjs/intl-utils": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.8.2.tgz", - "integrity": "sha512-34J1HmuNSRYQgJ6Gi/dYJQzdDsyAPJOrzXx977UajrhlXlI+0dvoqleP4W+Qtyc65EqzTGtUSgqLYhoPty8v3w==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.8.3.tgz", + "integrity": "sha512-AVHjyIcWA+VEZQNbTFbzbchykmsavUNaU7mryarphgLp2wqhadHPu2eKjF/cZX6FA3vEM/KJXqxxcrZkvYNduQ==", "requires": { "emojis-list": "^3.0.0" }, @@ -1339,12 +1339,9 @@ } }, "@phc/format": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@phc/format/-/format-0.5.0.tgz", - "integrity": "sha512-JWtZ5P1bfXU0bAtTzCpOLYHDXuxSVdtL/oqz4+xa97h8w9E5IlVN333wugXVFv8vZ1hbXObKQf1ptXmFFcMByg==", - "requires": { - "safe-buffer": "^5.1.2" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==" }, "@react-dnd/asap": { "version": "4.0.0", @@ -2384,13 +2381,14 @@ } }, "argon2": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.26.2.tgz", - "integrity": "sha512-Tk9I/r3KIHCIHU5x2UawKsPi+g7MByAYnUZghXztQDXRp/997P31wa4qvdvokTaFBpsu6jOZACd+2qkBGGssRA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.27.0.tgz", + "integrity": "sha512-IkhJhz/4qaZ6RpYyRZvAMOu+EysF40z3J8jksvv0V9LvQFo13d2WBQr5lPuMzZid2k5XpdbQd2oVsgXR4Oi8TQ==", "requires": { - "@phc/format": "^0.5.0", - "node-addon-api": "^2.0.0", - "node-pre-gyp": "^0.14.0" + "@phc/format": "^1.0.0", + "node-addon-api": "^3.0.0", + "node-pre-gyp": "^0.15.0", + "opencollective-postinstall": "^2.0.3" } }, "argparse": { @@ -9511,20 +9509,20 @@ "dev": true }, "intl-messageformat": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.2.1.tgz", - "integrity": "sha512-MV7LJidaqpT+eKj0FTyeaF5lmLlL6U+SI+D+jW1WZC72kUrX8m3OAavSvaxW0w4FcAphNpwDu90ZrQF2Syqmng==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.2.3.tgz", + "integrity": "sha512-oiy2V7W3b/srv1r79yqV2zridBHIRQn9CvTSUH62g5HV7VMFSCQ+pvSa3sXLCsoOHZy4ay65JzhH1C0XtfQLyA==", "requires": { "fast-memoize": "^2.5.2", - "intl-messageformat-parser": "^5.3.8" + "intl-messageformat-parser": "^5.4.0" } }, "intl-messageformat-parser": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.3.8.tgz", - "integrity": "sha512-BxZp3IDmhURMOOK3eXgX2mA6Q3ytcLh0gaS0JTTQp1rsv1sMs+vGtFZHrmGk2HX3D3cnGiXtPrvG7SaeiWtODg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.4.0.tgz", + "integrity": "sha512-nZjAcoCfJ4ru7Lop7DWmR4Gl1nZEcDly3G43wOZkMEHVJP1kpGtyfJvi3+moUH0V9CIspRf6Fv1sP1Z2S0SbsA==", "requires": { - "@formatjs/intl-numberformat": "^5.4.0" + "@formatjs/intl-numberformat": "^5.4.1" } }, "invariant": { @@ -10414,9 +10412,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash.camelcase": { "version": "4.3.0", @@ -11302,9 +11300,9 @@ } }, "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz", + "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==" }, "node-fetch": { "version": "1.7.3", @@ -11403,13 +11401,13 @@ } }, "node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", + "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", "requires": { "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", + "mkdirp": "^0.5.3", + "needle": "^2.5.0", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", @@ -12089,6 +12087,11 @@ } } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -13296,21 +13299,21 @@ "dev": true }, "react-intl": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.4.8.tgz", - "integrity": "sha512-UuTb0ztfQl0+Bs8CkDDOPPps35HNrWxrU8SvfzgmnVQotuRJAdsLS+4gWslDTiUrk6qSfla4R03BSvjivAmMFg==", - "requires": { - "@formatjs/intl-datetimeformat": "^2.4.0", - "@formatjs/intl-displaynames": "^3.2.0", - "@formatjs/intl-listformat": "^4.1.0", - "@formatjs/intl-numberformat": "^5.4.0", - "@formatjs/intl-relativetimeformat": "^7.1.0", - "@formatjs/intl-utils": "^3.8.2", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.6.0.tgz", + "integrity": "sha512-OaMr1scc1nYdYELwo+BFHkBvIQi/6mFIkr+ajMy3bsqRRqC0EE15Ss10xF3YJ3IVTXlipZEZZcbiMisGpWgIjA==", + "requires": { + "@formatjs/intl-datetimeformat": "^2.4.1", + "@formatjs/intl-displaynames": "^3.2.1", + "@formatjs/intl-listformat": "^4.1.1", + "@formatjs/intl-numberformat": "^5.4.1", + "@formatjs/intl-relativetimeformat": "^7.1.1", + "@formatjs/intl-utils": "^3.8.3", "@types/hoist-non-react-statics": "^3.3.1", "fast-memoize": "^2.5.2", "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "^9.2.1", - "intl-messageformat-parser": "^5.3.8", + "intl-messageformat": "^9.2.3", + "intl-messageformat-parser": "^5.4.0", "shallow-equal": "^1.2.1" } }, diff --git a/package.json b/package.json index 675d4d365..bc86f4bbb 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@babel/preset-react": "^7.10.4", "@babel/preset-typescript": "^7.10.4", "@types/react-dom": "^16.9.8", - "argon2": "^0.26.2", + "argon2": "^0.27.0", "autoprefixer": "^9.8.6", "axios": "^0.19.2", "babel-eslint": "^10.1.0", @@ -58,7 +58,7 @@ "html-webpack-plugin": "^4.3.0", "joi": "^17.2.0", "jsonwebtoken": "^8.4.0", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "moment": "^2.27.0", "morgan": "^1.10.0", "multer": "^1.4.2", @@ -75,12 +75,12 @@ "react": "^16.13.1", "react-custom-scrollbars": "^4.2.1", "react-dnd": "^11.1.3", - "react-dnd-multi-backend": "^6.0.2", "react-dnd-html5-backend": "^11.1.3", + "react-dnd-multi-backend": "^6.0.2", "react-dnd-touch-backend": "^11.1.3", "react-dom": "^16.13.1", "react-dropzone": "^11.0.3", - "react-intl": "^5.4.8", + "react-intl": "^5.6.0", "react-markdown": "^4.3.1", "react-measure": "^2.3.0", "react-router": "^5.2.0", From 9009beeae18b0b236e22ac5e938d22b236748eb1 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 20:22:25 +0800 Subject: [PATCH 058/651] i18n: precompile strings to AST --- .github/workflows/build.yml | 6 +- .github/workflows/check-compiled-i18n.yml | 27 + .github/workflows/check-source-formatting.yml | 6 +- .github/workflows/check-types.yml | 6 +- .github/workflows/lint.yml | 6 +- client/src/javascript/i18n/compiled/af.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/ar.json | 2188 ++++++++++++++++ client/src/javascript/i18n/compiled/ca.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/cs.json | 2188 ++++++++++++++++ client/src/javascript/i18n/compiled/da.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/de.json | 2188 ++++++++++++++++ client/src/javascript/i18n/compiled/el.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/es.json | 2201 ++++++++++++++++ client/src/javascript/i18n/compiled/fi.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/fr.json | 2225 ++++++++++++++++ client/src/javascript/i18n/compiled/he.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/hu.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/it.json | 2188 ++++++++++++++++ client/src/javascript/i18n/compiled/ja.json | 2168 ++++++++++++++++ client/src/javascript/i18n/compiled/ko.json | 2205 ++++++++++++++++ client/src/javascript/i18n/compiled/nl.json | 2225 ++++++++++++++++ client/src/javascript/i18n/compiled/no.json | 2184 ++++++++++++++++ client/src/javascript/i18n/compiled/pl.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/pt.json | 2180 ++++++++++++++++ client/src/javascript/i18n/compiled/ro.json | 2188 ++++++++++++++++ client/src/javascript/i18n/compiled/ru.json | 2173 ++++++++++++++++ client/src/javascript/i18n/compiled/sr.json | 2212 ++++++++++++++++ .../src/javascript/i18n/compiled/strings.json | 2236 +++++++++++++++++ client/src/javascript/i18n/compiled/sv.json | 2200 ++++++++++++++++ client/src/javascript/i18n/compiled/tr.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/uk.json | 2212 ++++++++++++++++ client/src/javascript/i18n/compiled/vi.json | 2212 ++++++++++++++++ .../src/javascript/i18n/compiled/zh-Hans.json | 1928 ++++++++++++++ .../src/javascript/i18n/compiled/zh-Hant.json | 1966 +++++++++++++++ client/src/javascript/i18n/languages.ts | 38 +- package-lock.json | 127 +- package.json | 3 + 37 files changed, 63558 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/check-compiled-i18n.yml create mode 100644 client/src/javascript/i18n/compiled/af.json create mode 100644 client/src/javascript/i18n/compiled/ar.json create mode 100644 client/src/javascript/i18n/compiled/ca.json create mode 100644 client/src/javascript/i18n/compiled/cs.json create mode 100644 client/src/javascript/i18n/compiled/da.json create mode 100644 client/src/javascript/i18n/compiled/de.json create mode 100644 client/src/javascript/i18n/compiled/el.json create mode 100644 client/src/javascript/i18n/compiled/es.json create mode 100644 client/src/javascript/i18n/compiled/fi.json create mode 100644 client/src/javascript/i18n/compiled/fr.json create mode 100644 client/src/javascript/i18n/compiled/he.json create mode 100644 client/src/javascript/i18n/compiled/hu.json create mode 100644 client/src/javascript/i18n/compiled/it.json create mode 100644 client/src/javascript/i18n/compiled/ja.json create mode 100644 client/src/javascript/i18n/compiled/ko.json create mode 100644 client/src/javascript/i18n/compiled/nl.json create mode 100644 client/src/javascript/i18n/compiled/no.json create mode 100644 client/src/javascript/i18n/compiled/pl.json create mode 100644 client/src/javascript/i18n/compiled/pt.json create mode 100644 client/src/javascript/i18n/compiled/ro.json create mode 100644 client/src/javascript/i18n/compiled/ru.json create mode 100644 client/src/javascript/i18n/compiled/sr.json create mode 100644 client/src/javascript/i18n/compiled/strings.json create mode 100644 client/src/javascript/i18n/compiled/sv.json create mode 100644 client/src/javascript/i18n/compiled/tr.json create mode 100644 client/src/javascript/i18n/compiled/uk.json create mode 100644 client/src/javascript/i18n/compiled/vi.json create mode 100644 client/src/javascript/i18n/compiled/zh-Hans.json create mode 100644 client/src/javascript/i18n/compiled/zh-Hant.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e67cad6f8..318fcaffd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,10 @@ name: Build -on: [push, pull_request] +on: + push: + branches-ignore: + - 'integration/**' + pull_request: jobs: build: diff --git a/.github/workflows/check-compiled-i18n.yml b/.github/workflows/check-compiled-i18n.yml new file mode 100644 index 000000000..1d5cbf19c --- /dev/null +++ b/.github/workflows/check-compiled-i18n.yml @@ -0,0 +1,27 @@ +name: Check pre-compiled i18n + +on: + push: + branches-ignore: + - 'integration/**' + pull_request: + +jobs: + check-compiled-i18n: + runs-on: ubuntu-latest + + strategy: + matrix: + node: [12, 14] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + + - run: cp config.template.js config.js + - run: npm install + - run: npm run check-compiled-i18n diff --git a/.github/workflows/check-source-formatting.yml b/.github/workflows/check-source-formatting.yml index f5666354e..abbc538d9 100644 --- a/.github/workflows/check-source-formatting.yml +++ b/.github/workflows/check-source-formatting.yml @@ -1,6 +1,10 @@ name: Check source formatting -on: [push, pull_request] +on: + push: + branches-ignore: + - 'integration/**' + pull_request: jobs: check-source-formatting: diff --git a/.github/workflows/check-types.yml b/.github/workflows/check-types.yml index ad853384b..5517adee1 100644 --- a/.github/workflows/check-types.yml +++ b/.github/workflows/check-types.yml @@ -1,6 +1,10 @@ name: Check types -on: [push, pull_request] +on: + push: + branches-ignore: + - 'integration/**' + pull_request: jobs: check-types: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a6e63f176..cd6b76553 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,6 +1,10 @@ name: Lint -on: [push, pull_request] +on: + push: + branches-ignore: + - 'integration/**' + pull_request: jobs: lint: diff --git a/client/src/javascript/i18n/compiled/af.json b/client/src/javascript/i18n/compiled/af.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/af.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ar.json b/client/src/javascript/i18n/compiled/ar.json new file mode 100644 index 000000000..1cf645ad1 --- /dev/null +++ b/client/src/javascript/i18n/compiled/ar.json @@ -0,0 +1,2188 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "إضافة تورنت" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "إزالة التورنت" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "ابدأ التورينت" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "إيقاف التورنت" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "تم حفظ الإعدادات بنجاح." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "تمت إضافة " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "فشل في إضافة " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "تم نقل " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " بنجاح " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "فشل نقل " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "تم بنجاح إزالة " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "فشل في إزالة " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "إضافة مستخدم" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "المشرف" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "نوع اتصال rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "مقبس يونكس" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "إنشاء حساب" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "إنشاء حساب" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "مرحبا بكم في الفيضان!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "المستخدم الحالي" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "اسم المستخدم لا يمكن أن يكون فارغاً." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "تسجيل الدخول" + } + ], + "auth.login": [ + { + "type": 0, + "value": "تسجيل الدخول" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "المستخدم ليس مشرف" + } + ], + "auth.password": [ + { + "type": 0, + "value": "كلمة المرور" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "مضيف rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "منفذ rTorrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "مقبس rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "مسار مقبس rTorrent" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "حسابات المستخدم" + } + ], + "auth.username": [ + { + "type": 0, + "value": "اسم المستخدم" + } + ], + "button.add": [ + { + "type": 0, + "value": "إضافة" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "إلغاء" + } + ], + "button.new": [ + { + "type": 0, + "value": "جديد" + } + ], + "button.no": [ + { + "type": 0, + "value": "لا" + } + ], + "button.save": [ + { + "type": 0, + "value": "حفظ الإعدادات" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "حفظ" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "إضافة..." + } + ], + "button.test": [ + { + "type": 0, + "value": "اختبار" + } + ], + "button.yes": [ + { + "type": 0, + "value": "نعم" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "لا يمكن الاتصال بـ rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "تعذر التحقق من الاتصال." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "تم الاتصال بنجاح" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "دعونا نتحقق من إعدادات الاتصال الخاصة بك." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "لا يمكن الاتصال بـ rTorrent. الرجاء تحديث المعلومات الآن." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "مشكلة في الاتصال" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "إضافة قاعدة تحميل" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "إضافة موجز ويب" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "تغذية قابلة للتطبيق" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "تطبيق العلامات" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "تصفح الخلاصات" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "استبعاد" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "استبعاد النمط" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "التحديثات الموجودة" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "القواعد الحالية" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "تسمية" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "المباراة" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " تطابق" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " يتطابق" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "نمط المطابقة" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "لا توجد تغذية متاحة." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "لم يتم تعريف أي تغذية." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "لا توجد قواعد معرفة." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "ريريكس" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "مصطلح البحث" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "حدد موجز الويب" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "الفاصل" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "البدء عند التحميل" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "قواعد التحميل" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "التحديثات" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "تغذية تورنت" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "الوسوم" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "أيام" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "الساعات" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "دقائق" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "وجهة تورنت" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "الرابط" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "تعبير عادي غير صالح." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "يجب عليك تحديد التغذية." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "يجب عليك تحديد الوجهة." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "يجب عليك تحديد التسمية." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "يجب عليك تحديد رابط تغذية صالح." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "مجلد فارغ." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "الفيضان ليس لديه الصلاحية لقراءة هذا الدليل." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "هذا المسار غير موجود. سيتم إنشاؤه." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "جلب بنية الدليل..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "الكل" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "نشط" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "التحقق" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "تنزيل" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "خطأ" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "غير نشط" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "توقفت" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "تصفية حسب الحالة" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "تصفية حسب العلامة" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "تصفية حسب التتبع" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "غير موسومة" + } + ], + "general.ago": [ + { + "type": 0, + "value": "مضت" + } + ], + "general.at": [ + { + "type": 0, + "value": "في" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "منسوخ" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "نسخ" + } + ], + "general.of": [ + { + "type": 0, + "value": "من" + } + ], + "general.to": [ + { + "type": 0, + "value": "إلى" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "تلقائي" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "حدث خطأ أثناء تشغيل mediainfo على الخادم. تحقق من أن mediainfo مثبت ومتاح في PATH للفيضان." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "إحضار ..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "ناتج ميداينفو" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "مسح الكل" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "عرض" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "تم الإبلاغ عن خطأ" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "انتهى التحميل" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "عدم التحميل" + } + ], + "priority.high": [ + { + "type": 0, + "value": "مرتفع" + } + ], + "priority.low": [ + { + "type": 0, + "value": "منخفض" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "عادي" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "حول الفيضان" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "تنزيل مزود الفتحات" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "تحميل الفتحات العالمية" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "تنزيل الفتحات لكل تورينت" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "توفر الخانة" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "تحميل مقسم الخانات" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "تحميل خانات عامة" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "تحميل الفتحات لكل تورينت" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "المنسدلة مسبقاً: تحميل" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "القائمة المنسدلة مسبقاً: تحميل" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "خنق معدل التحميل العالمي" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "خنق معدل التحميل العالمي" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "خانات معدل التحويل" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "تمكين DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "منفذ DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "اكتشاف الند اللامركزي" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "اتصالات واردة" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "اسم IP/المضيف المبلغ عنه" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "الحد الأقصى لاتصالات HTTP" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "تمكين تبادل الأقران" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "الند المنشود" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "أقران" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "الحد الأقصى للنظراء" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "الحد الأدنى للنظراء" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "الحد الأقصى لبذور النظراء" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "الحد الأدنى لبذور الند" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "فتح المنفذ" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "تصوير المنفذ عشوائي" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "نطاق المنفذ" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "نقاط استخدام القرص" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "إظهار" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "التحقق من التجزئة عند الاكتمال" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "دليل التحميل الافتراضي" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "قرص" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "الحد الأقصى للملفات المفتوحة" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "الذاكرة" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "الحد الأقصى لاستخدام الذاكرة" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "حول" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "المصادقة" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "عرض التردد" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "الاتصال" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "استخدام القرص" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "الإعدادات" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "الموارد" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "واجهة المستخدم" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "أعمدة تفاصيل تورنت" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "اللغة" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "محلي" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "تمكين" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "ومن وجهة النظر الموسعة، فإن العلامات تعمل على أفضل وجه في نهاية القائمة." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "عرض قائمة التورينت" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "حجم التورنت" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "عرض مكثف" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "عرض موسع" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "التحديثات" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "تسجيل الخروج" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "الإشعارات" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "الإعدادات" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "حدود السرعة" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "البحث عن التورنت" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "تم التحميل" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "تم الرفع" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "غير محدود" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "استخدام القرص" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "من" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "إضافة تورنت" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "الوجهة" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "الوجهة" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "إضافة تورينت" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "ابدأ التورينت" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "أو انقر لتصفح" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "إسقاط بعض الملفات هنا،" + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "حسب الملف" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "رابط تورينت أو رابط الـ Magnet" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "حسب عنوان URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "الوسوم" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "تورينتس" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "استخدام كمسار أساسي" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "إيقاف" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "ابدأ" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "توقف" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "التفاصيل" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "الملفات" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "تحميل الملف" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "تحميل الملفات" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "تحميل تفاصيل الملف..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "تعليق" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " متصل بـ " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "أضيف" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "تاريخ الإنشاء" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "تم التحميل" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "مساحة القرص الحرة" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "التجزئة" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "عام" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "تورنت" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "المتتبع" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "نقل" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "الموقع" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "لا" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "أقران" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "جدولة" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "تجاهل" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "عقيب" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "بذور" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "الحجم" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "الوسوم" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "رسالة تتبع" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "نوع" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "خاص" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "عامة" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "أقران" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "لا توجد بيانات أقران لهذا التورنت." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " ملف محدد" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " ملفات محددة" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "تعيين الأولوية" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "المتتبعون" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "لا توجد بيانات تتبع لهذا التورنت." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "نوع" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "لا يمكن الاتصال بـ rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "مسح الفلاتر" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "تحقق من التجزئة" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "تفاصيل التورنت" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "تعيين موقع التورنت" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "إيقاف" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "الأولوية" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "إزالة" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "تعيين العلامات" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "ابدأ" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "توقف" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "إسقاط الملفات هنا لإضافتها إلى rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "لا يوجد سلالات لعرضها." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "تعيين الموقع" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "إعداد..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "تحقق من التجزئة" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "نقل البيانات" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "تعيين موقع التورنت" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "المسار الأساسي" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "تعليق" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "تاريخ الإنشاء" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "أضيف" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "سرعة التنزيل" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "تم التحميل" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "مساحة القرص الحرة" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "التجزئة" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "تجاهل المجدول" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "خاص" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "الاسم" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "اكتمل النسبة" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "النسبة" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "حجم الملف" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "الوسوم" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "رسالة تتبع" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "سرعة التحميل" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "تم الرفع" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "إزالة التورنت" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "هل أنت متأكد من أنك تريد إزالة " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " تورنت" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " تورنت" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "حذف البيانات" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "لم تقم باختيار أي تورنات." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "تعيين العلامات" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "أدخل العلامات" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "تعيين العلامات" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "الترتيب حسب" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "ب" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "جيجابايت" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "كيلوبايت" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "ميغابايت" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "تيلبايت" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/ث" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "د" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "ساعة" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "د" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "ث" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "تأجج" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ca.json b/client/src/javascript/i18n/compiled/ca.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/ca.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/cs.json b/client/src/javascript/i18n/compiled/cs.json new file mode 100644 index 000000000..10c4915d0 --- /dev/null +++ b/client/src/javascript/i18n/compiled/cs.json @@ -0,0 +1,2188 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Přidat Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Odebrat Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Spustit Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Zastavit Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Nastavení bylo úspěšně uloženo." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Úspěšně přidáno " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Nepodařilo se přidat " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Úspěšně přesunuto " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Nepodařilo se přesunout " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Úspěšně odstraněno " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Nepodařilo se odstranit " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Přidat uživatele" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "Typ připojení rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unixní raketa" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Vytvořit účet" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Vytvořit účet" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Vítejte v záplavě!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Aktuální uživatel" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Uživatelské jméno nemůže být prázdné." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Přihlásit se" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Přihlásit se" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Uživatel není správce" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Heslo" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "Hostitel rTorrentu" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "Port rTorrentu" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "Raketa rTorrentu" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "Cesta k rtorrentu" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Uživatelské účty" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Uživatelské jméno" + } + ], + "button.add": [ + { + "type": 0, + "value": "Přidat" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Zrušit" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nové" + } + ], + "button.no": [ + { + "type": 0, + "value": "Ne" + } + ], + "button.save": [ + { + "type": 0, + "value": "Uložit nastavení" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Uložit" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Přidávání..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Zkouška" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Ano" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Nelze se připojit k rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Nelze ověřit spojení." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Připojení bylo úspěšné" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Pojďme ověřit nastavení připojení." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Nelze se připojit k rTorrent. Aktualizujte prosím informace nyní." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problém s připojením" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Přidat pravidlo pro stahování" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Přidat kanál" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Použitelný kanál" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Použít štítky" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Procházet kanály" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Vyjmout" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Vyloučit vzor" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existující kanály" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Stávající pravidla" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Popisek" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Zápas" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " shoduje se s" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " se shoduje s" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Vzor zápasu" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Žádné zdroje nejsou k dispozici." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Nebyly definovány žádné kanály." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Nebyla definována žádná pravidla." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Hledat termín" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Vybrat kanál" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Spustit při načítání" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Pravidla pro stahování" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Zdroje" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent kanály" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Štítky" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Dny" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hodiny" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Zápis z jednání" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Cíl Torrentu" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Neplatný regulární výraz." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Musíte vybrat kanál." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Musíte zadat destinaci." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Musíte zadat popisek." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Musíte zadat platnou URL kanálu." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Prázdný adresář." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Záplava nemá oprávnění ke čtení tohoto adresáře." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Tato cesta neexistuje. Bude vytvořena." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Načítání adresářové struktury..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Vše" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Aktivní" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Kontrola" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Stahování" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Chyba" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Neaktivní" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Zastaveno" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrovat podle stavu" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrovat podle tagu" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrovat podle sledovače" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Neoznačeno" + } + ], + "general.ago": [ + { + "type": 0, + "value": "zpět" + } + ], + "general.at": [ + { + "type": 0, + "value": "v" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Zkopírováno" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopírovat" + } + ], + "general.of": [ + { + "type": 0, + "value": "z" + } + ], + "general.to": [ + { + "type": 0, + "value": "do" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automaticky" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Došlo k chybě při běhu mediainfo na serveru. Zkontrolujte, zda je mediainfo nainstalováno a dostupné v PATH na Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Načítání..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo výstup" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Vymazat vše" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Zobrazení" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Nahlášena chyba" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Dokončené stahování" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Nestahovat" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Vysoká" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Nízká" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normální" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "O záplavách" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Stáhnout Slot Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Stáhnout sloty globálně" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Stáhnout Slot Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Dostupnost slotu" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Nahrát rozdělovač slotů" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Nahrát globální sloty" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Nahrát sloty na Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Přednastavení rozbalovacího seznamu: Stáhnout" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Předvolby rozbalovacího seznamu: Nahrát" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Globální rychlost stahování plynu" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Plyn globální rychlosti nahrávání" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Převodní rychlost tahů" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Povolit DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Port DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralizované objevení Klienta" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Příchozí připojení" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Nahlášený IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximální HTTP připojení" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Povolit Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Klienti požadováni" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Klienti" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximální počet klientů" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimální počet klientů" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximální počet Distribucí Klientů" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimální počet Distribucí Klientů" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Otevřít port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Náhodné nastavení portu" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Rozsah portu" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Využití přípojných bodů disku" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Zobrazit" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Ověřit hash po dokončení" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Výchozí adresář pro stahování" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximální počet otevřených souborů" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Paměť" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maximální využití paměti" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "O aplikaci" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Ověření" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Šířka pásma" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Připojení" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Využití disku" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Nastavení" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Zdroje" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Uživatelské rozhraní" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Detailní torrent sloupce" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Jazyk" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Místní prostředí" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Povoleno" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "V rozšířeném zobrazení, značky fungují nejlépe na konci seznamu." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Zobrazení seznamu Torrentů" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Velikost Torrentu" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Zkrácené zobrazení" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Rozšířené zobrazení" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Zdroje" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Odhlásit se" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Oznámení" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Nastavení" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Omezení rychlosti" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Hledat torrenty" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Staženo" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Nahráno" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Bez omezení" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Využití disku" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "z" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Přidat Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Místo určení" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Místo určení" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Přidat torrenty" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Spustit Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "nebo klikněte pro procházení" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Sem přetáhněte některé soubory." + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Podle souboru" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL nebo Magnet odkaz" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Podle URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Štítky" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrenty" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Použít jako základní cestu" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pozastavit" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Začít" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Zastavit" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Detaily" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Soubory" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Stáhněte soubor" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Stáhněte soubory" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Načítání detailu souboru..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Komentář" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " připojen k " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Přidáno" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Datum vytvoření" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Staženo" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Volné místo na disku" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Obecná ustanovení" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Sledování" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Převod" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Poloha" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Nic" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Klienti" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Plánovač" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorováno" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Ovesné" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Semena" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Velikost" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Štítky" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Sledovací zpráva" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Soukromé" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Veřejnost" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Klienti" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Pro tento torrent nejsou k dispozici žádná klientská data." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " vybral soubor" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " vybrané soubory" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Nastavit prioritu" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Sledovače" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Pro tento torrent nejsou k dispozici žádná data trackeru." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Nelze se připojit k rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Vymazat filtry" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Zkontrolovat Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Podrobnosti Torrentu" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Nastavit umístění Torrentu" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pozastavit" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priorita" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Odebrat" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Nastavit štítky" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Začít" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Zastavit" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Přetáhněte soubory pro jejich přidání do rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Žádné torrenty k zobrazení." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Nastavit umístění" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Nastavení..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Zkontrolovat hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Přesunout data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Nastavit umístění Torrentu" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Základní cesta" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Komentář" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Datum vytvoření" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Přidáno" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Rychlost stahování" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Staženo" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Volné místo na disku" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorovat plánovač" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Soukromé" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Název" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Procento dokončeno" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Poměr" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Velikost souboru" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Štítky" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Sledovací zpráva" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Rychlost nahrávání" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Nahráno" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Odebrat Torrenty" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Jste si jisti, že chcete odstranit " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrentů" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Odstranit data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Nevybrali jste žádné torrenty." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Nastavit štítky" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Zadejte štítky" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Nastavit štítky" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Seřadit podle" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "CZ" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hod." + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/da.json b/client/src/javascript/i18n/compiled/da.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/da.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/de.json b/client/src/javascript/i18n/compiled/de.json new file mode 100644 index 000000000..77e0a8b26 --- /dev/null +++ b/client/src/javascript/i18n/compiled/de.json @@ -0,0 +1,2188 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Torrent hinzufügen" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Torrent entfernen" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Torrent starten" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Torrent stoppen" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Einstellungen erfolgreich gespeichert." + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "hinzugefügt." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Fehler beim Hinzufügen von " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " erfolgreich verschoben " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Fehler beim Verschieben von " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " erfolgreich entfernt " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Fehler beim Entfernen von " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Neuer Benutzer" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Verbindungstyp" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix-Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Konto erstellen" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Ein Konto erstellen" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Willkommen bei Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Aktueller Benutzer" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Benutzername darf nicht leer sein." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Anmelden" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Anmelden" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Benutzer ist kein Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Passwort" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent-Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent-Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent-Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent-Socket-Pfad" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Benutzerkonten" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Benutzername" + } + ], + "button.add": [ + { + "type": 0, + "value": "Neu" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Abbrechen" + } + ], + "button.new": [ + { + "type": 0, + "value": "Neu" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nein" + } + ], + "button.save": [ + { + "type": 0, + "value": "Einstellungen speichern" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Speichern" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Hinzufügen..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Testen" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Ja" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Verbindung zu rTorrent nicht möglich" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Verbindung konnte nicht verifiziert werden." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Verbindung erfolgreich" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Überprüfen wir Ihre Verbindungseinstellungen." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Keine Verbindung zu rTorrent. Bitte aktualisieren Sie die Informationen jetzt." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Verbindungsproblem" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Download-Regel hinzufügen" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Neuer Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Anwendbarer Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Tags anwenden" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Feeds durchsuchen" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Ausschließen" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Muster ausschließen" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Vorhandene Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Bestehende Regeln" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Spiel" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Spiel" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Spiele" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match-Muster" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Keine Feeds verfügbar." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Keine Feeds definiert." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Keine Regeln definiert." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Suchbegriff" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Feed auswählen" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervall" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Beim Laden starten" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download-Regeln" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent-Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Tage" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Stunden" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minuten" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent-Ziel" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Ungültiger regulärer Ausdruck." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Sie müssen einen Feed auswählen." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Sie müssen ein Ziel angeben." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Sie müssen ein Label angeben." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Sie müssen eine gültige Feed-URL angeben." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Leeres Verzeichnis." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood hat keine Berechtigung, dieses Verzeichnis zu lesen." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Dieser Pfad existiert nicht. Er wird erstellt." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Lade Verzeichnisstruktur ab..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Alle" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Aktiv" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Prüfe" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Herunterladen" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Fehler" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inaktiv" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stoppt" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Nach Status filtern" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Nach Tag filtern" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Nach Tracker filtern" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Ohne Markierung" + } + ], + "general.ago": [ + { + "type": 0, + "value": "vor" + } + ], + "general.at": [ + { + "type": 0, + "value": "am" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Kopiert" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopieren" + } + ], + "general.of": [ + { + "type": 0, + "value": "von" + } + ], + "general.to": [ + { + "type": 0, + "value": "zu" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatisch" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Beim Ausführen von mediainfo auf dem Server ist ein Fehler aufgetreten. Überprüfen Sie, ob mediainfo installiert ist und im PATH to Flood verfügbar ist." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Abrufe..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo-Ausgabe" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Alles löschen" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Anzeigen" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Fehler gemeldet" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Download abgeschlossen" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Nicht herunterladen" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Hoch" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Niedrig" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Über Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Slots-Trenner herunterladen" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Slots pro Torrent herunterladen" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot-Verfügbarkeit" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Slots-Trenner hochladen" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Hochladen Slots global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Slots pro Torrent hochladen" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown-Voreinstellungen: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown-Voreinstellungen: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Globale Download-Rate drosseln" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Globale Upload-Rate Drosselung" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transferrate Drosseln" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "DHT aktivieren" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT-Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Dezentralisierte Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Eingehende Verbindungen" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Gemeldeter IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximale HTTP-Verbindungen" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Peer-Exchange aktivieren" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Gewünschte Partner" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Partner" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximale Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimale Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximales Verteilen der Teilnehmer" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimale Verteilen der Teilnehmer" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Port öffnen" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Port zufällig" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port-Bereich" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Festplattenauslastungspunkte" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Zeigen" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Hash nach Abschluss verifizieren" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Standard-Download-Verzeichnis" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Platte" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximal geöffnete Dateien" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Speicher" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maximale Speicherauslastung" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Über" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentifizierung" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandbreite" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Verbindung" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Plattennutzung" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Einstellungen" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Ressourcen" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Benutzeroberfläche" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent-Detailspalten" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Sprache" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Lokal" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Aktiviert" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In der erweiterten Ansicht funktionieren Tags am Ende der Liste." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent-Listen-Anzeige" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent-Größe" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Verengte Ansicht" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Erweiterte Ansicht" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Abmelden" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Benachrichtigungen" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Einstellungen" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Geschwindigkeitsbegrenzungen" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Suche Torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Heruntergeladen" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Hochgeladen" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unbegrenzt" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Plattennutzung" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "von" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Torrent hinzufügen" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Ziel" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Ziel" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Torrents hinzufügen" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Torrent starten" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "oder klicken, um zu durchsuchen" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Dateien hier ablegen" + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Nach Datei" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent-URL oder Magnetlink" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Nach URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Als Basispfad verwenden" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stoppen" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Dateien" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download Datei" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Laden Sie Dateien herunter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Lade Dateidetail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " verbunden von " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Hinzugefügt" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Erstellungsdatum" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Heruntergeladen" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Freier Speicherplatz" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Allgemein" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Überweisung" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Standort" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Keine" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Partner" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Zeitplaner" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignoriert" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Samen" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Größe" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker-Nachricht" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Öffentlich" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Partner" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Es gibt keine Peer-Daten für diesen Torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " ausgewählte Datei" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " ausgewählte Dateien" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Priorität setzen" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Es gibt keine Tracker-Daten für diesen Torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Keine Verbindung zu rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Filter löschen" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Hash prüfen" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent-Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Torrent-Standort festlegen" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priorität" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Entfernen" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Tags setzen" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stoppen" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Ziehen Sie Dateien hierher, um sie zu rTorrent hinzuzufügen." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Keine Torrents zum Anzeigen." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Ort festlegen" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Einstellung..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Hash überprüfen" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Daten verschieben" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Torrent-Standort festlegen" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Basispfad" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Erstellungsdatum" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Hinzugefügt" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download-Geschwindigkeit" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Heruntergeladen" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Freier Speicherplatz" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Terminplaner ignorieren" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Prozent abgeschlossen" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Verhältnis" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Größe der Datei" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker-Nachricht" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload-Geschwindigkeit" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Hochgeladen" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Torrents entfernen" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Daten löschen" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Sie haben keine Torrents ausgewählt." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Tags setzen" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Tags eingeben" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Tags setzen" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sortieren nach" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "SF" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MN" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "h" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/el.json b/client/src/javascript/i18n/compiled/el.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/el.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/es.json b/client/src/javascript/i18n/compiled/es.json new file mode 100644 index 000000000..cecda02bc --- /dev/null +++ b/client/src/javascript/i18n/compiled/es.json @@ -0,0 +1,2201 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Añadir Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Eliminar Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Iniciar Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Detener Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Configuración Guardada." + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent agregado" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents agregados" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent fallo al agregar" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents fallaron al agregarse" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent se ha movido" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents se han movido" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent fallo al moverse" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents fallaron al moverse" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent se ha eliminado" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents se han eliminado" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent fallo al eliminarse" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents fallaron al eliminarse" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Agregar usuario" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "tipo de conexión rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Socket Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Crear Cuenta" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Crear una Cuenta" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "¡Bienvenido a Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Usuario actual" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Nombre de usuario no puede estar en blanco." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Iniciar Sesión" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Acceder" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "El Usuario no es Administrador" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Contraseña" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "anfitrión torrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "puerto de torrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "enchufe rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Cuentas de Usuario" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Nombre de Usuario" + } + ], + "button.add": [ + { + "type": 0, + "value": "Agregar" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancelar" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nuevo" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nu" + } + ], + "button.save": [ + { + "type": 0, + "value": "Guardar Configuración" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Guardar" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Agregando..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Prueba" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Sí" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "No se puede conectar con rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "No se pudo verificar la conexión." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Conexión exitosa" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Verifiquemos tu configuración de conexión." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "No se puede conectar a rTorrent. Por favor, actualice la información ahora." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problema de conectividad" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Agregar Regla de Descarga" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Agregar Fuente" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Fuente Correspondiente" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Aplicar Etiquetas" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Ver feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Excluir" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Patrón de Exclusión" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Fuentes Existentes" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Reglas Existentes" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Rótulo" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Encontrado" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Encontrado" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Encontrados" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Patrón de Inclusión" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No hay fuentes disponibles" + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No hay fuentes definidas" + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No hay reglas definidas" + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "Regular" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Buscar término" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Seleccionar Fuente" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervalo" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Iniciar al Cargar" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Reglas de Descarga" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Fuentes" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Fuentes de Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Días" + } + ], + "feeds.time.hr": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " hr" + } + ], + "feeds.time.min": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " min" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Destinación de Torrent" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "RegEx invalida." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Debe seleccionar una fuente" + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Debe seleccionar una destinación." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Debe seleccionar un rotulo" + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Debe seleccionar un URL de fuente valido." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Carpeta vacía" + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood no tiene permisos para leer esta carpeta." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Esta ruta no existe. Se creara." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Cargando estructura de carpeta..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Todo" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Activo" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Comprobando" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Completo" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Descargando" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactivo" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Detenido" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrar por Estado" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrar por Etiqueta" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrar por Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Sin Etiqueta" + } + ], + "general.ago": [ + { + "type": 0, + "value": "hace" + } + ], + "general.at": [ + { + "type": 0, + "value": "en" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copiado" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copiar" + } + ], + "general.of": [ + { + "type": 0, + "value": "de" + } + ], + "general.to": [ + { + "type": 0, + "value": "hasta" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automátic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Se ha encontrado un error al correr Mediainfo. Confirme que Mediainfo este instalado y disponible a Flood en el PATH" + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Obteniendo..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Salida de Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Borrar Todos" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Mostrando" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reportado" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Descarga Completada" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "No Descargar" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Alta" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Baja" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Acerca de Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Divisor de Espacios de Descarga" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Cant. Global de Espacios de Descargas" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Cant. por Torrent de Espacios de Descarga" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Disponibilidad de Espacios" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Divisor de Espacios de Subida" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Cant. Global de Espacios de Subida" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Cant. por Torrent de Espacios de Descarga" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Predeterminados de Desplegable: Descarga" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Predeterminados de Desplegable: Subida" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Regulador Global de Velocidad de Descarga" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Regulador Global de Velocidad de Subida" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Reguladores de Velocidad" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Habilitar DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Puerto para DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Descubrimiento de Peers Descentralizado" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Conexiones Entrantes" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "IP/Hostname Presentado" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Máxima Cant. de Conexiones HTTP" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Habilitar Intercambio de Peers" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Cant. de Peers Deseada" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Pares" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Cant. Máxima de Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Cant. Mínima de Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Cant. Máxima de Peers en Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Cant. Mínima de Peers en Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Puerto Abierto" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Puerto Aleatorio" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Rango de Puertos" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Puntos de Montura de Uso de Disco" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Mostrar" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verificar Hash al Terminar" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Carpeta de Descargas Predeterminada" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disco" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Cant. Máxima de Archivos Abiertos" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memoria" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Utilización Máxima de Memoria" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Acerca de" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autenticación" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Ancho de Banda" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Conectividad" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Uso del disco" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Configuración" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Recursos" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interfaz de Usuario" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Columnas de detalles de torrent" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Idioma" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Región" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Activado" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "En el modo expandido, las etiquetas se ven mejor al final de la lista." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Exhibición de Torrents" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Tamaño de Torrent" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Modo Condensado" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Modo Expandido" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Fuentes" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Cerrar sesión" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notificaciones" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Ajustes" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Limites de Velocidad" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Buscar torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Descargado" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Subido" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Sín Límite" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Uso del disco" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "de" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Agregar Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destinación" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destinación" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Agregar Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Iniciar Descarga" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "o haga clic para navegar" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Arrastrar archivos hacia aquí," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Con Archivo" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "URL de Torrent o Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Con URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Usar como Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pausar" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Comenzar" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Parar" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Detalles" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Archivos" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Archivo" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Archivos" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Cargando detalles del archivo..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comentario" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " conectados de " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Agregado en" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creado en" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Descargado" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Espacio de Disco Libre" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrente" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Rastreador" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transferencia" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Carpeta" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Ninguno" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Pares" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Programador" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorado" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Seguido" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Semillas" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Tamaño" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Mensaje de Tracker" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Tipo" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privado" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publico" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Pares" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "No existen Peers para este torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " archivo seleccionado" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " archivos seleccionados" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Ajustar Prioridad" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Rastreadores" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "No existe información de tracker para este torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Tipo" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "No se puede conectar a rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Borrar Filtros" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Verificar Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Detalles de Torrent" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Configurar Carpeta de Descarga" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pausar" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioridad" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Eliminar" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Configurar Etiquetas" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Comenzar" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Parar" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Arrastra los archivos aquí para añadirlos a rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No hay torrents" + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Configurar" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Guardando..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Comprobar hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Mover archivos" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Configurar Carpeta de Descarga" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Carpeta Base" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comentario" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creado en" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Agregado en" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Velocidad de Descarga" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Cant. Descargada" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Espcio de Disco Libre" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorar Programador" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privado" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nombre" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Porcentaje Descargado" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Tamaño de Archivo" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Mensaje de Tracker" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Velocidad de Subida" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Cant. Subida" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Eliminar Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "¿Seguro que quiere eliminar " + }, + { + "offset": 0, + "options": { + "=0": { + "value": [ + { + "type": 0, + "value": "cero torrents" + } + ] + }, + "=1": { + "value": [ + { + "type": 0, + "value": "un torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Eliminar datos" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "No ha seleccionado un torrent." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Configurar" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Introducir etiquetas" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Configurar Etiquetas" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Ordenar Por" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GR" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "Mb" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "h" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/fi.json b/client/src/javascript/i18n/compiled/fi.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/fi.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/fr.json b/client/src/javascript/i18n/compiled/fr.json new file mode 100644 index 000000000..2da08cc46 --- /dev/null +++ b/client/src/javascript/i18n/compiled/fr.json @@ -0,0 +1,2225 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Ajouter un torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Supprimer le torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Démarrer le Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Arrêter le torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Paramètres modifiés." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "L'ajout de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a réussi." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "L'ajout de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a échoué." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Le déplacement de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a réussi." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Le déplacement de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a échoué." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "La suppression de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a réussi." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "La suppression de " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " a échoué." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Ajouter un Utilisateur" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Administrateur" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "Type de connexion rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Socket Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Créer un Compte" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Créer un Compte" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Bienvenue dans Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Utilisateur actuel" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Le nom d'utilisateur ne peut pas être vide." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Connexion" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Identifiant" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "L'Utilisateur n'est pas Administrateur" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Mot de Passe" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "Hôte rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "Port rTorrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "Socket rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "Chemin de la chaussure rTorrent" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Comptes" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Nom d'Utilisateur" + } + ], + "button.add": [ + { + "type": 0, + "value": "Ajouter" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Annuler" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nouveau" + } + ], + "button.no": [ + { + "type": 0, + "value": "Non" + } + ], + "button.save": [ + { + "type": 0, + "value": "Enregistrer" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Enregistrer" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Ajout..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Tester" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Oui" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Impossible de se connecter à rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "La connexion n'a pas pu être vérifiée." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connexion réussie" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Vérifions vos paramètres de connexion." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Impossible de se connecter à rTorrent. Veuillez mettre à jour les informations maintenant." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problème de connectivité" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Ajouter une règle de téléchargement" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Ajouter un Flux" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Flux Applicable" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Appliquer les Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Parcourir les flux" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclure" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclure le Motif" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Flux Existants" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Règles Existantes" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Étiquette" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Correspondance" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " correspond" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " correspondent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Motif Correspondant" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Aucun flux disponible." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Aucun flux défini." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Aucune règle définie." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Terme de recherche" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Sélectionner un Flux" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervalle" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Démarrer Immédiatement" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Règles de Téléchargement" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Flux" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Flux de Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Jours" + } + ], + "feeds.time.hr": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " h" + } + ], + "feeds.time.min": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " min" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Destination du Torrent" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Expression régulière invalide." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Vous devez choisir un flux." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Vous devez définir un emplacement." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Vous devez définir un label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Vous devez définir une URL de flux valide." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Répertoire vide." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood n'a pas la permission de lire ce répertoire." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Ce chemin n'existe pas. Il sera créé." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Récupération de la structure du répertoire..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Tout" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Actif" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "En cours de vérification" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Terminé" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "En Téléchargement" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Erreur" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactif" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Arrêté" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrer par Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrer par Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrer par Traqueur" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Sans Tag" + } + ], + "general.ago": [ + { + "type": 0, + "value": "il y a" + } + ], + "general.at": [ + { + "type": 0, + "value": "à" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copié" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copie" + } + ], + "general.of": [ + { + "type": 0, + "value": "de" + } + ], + "general.to": [ + { + "type": 0, + "value": "à" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatique" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Une erreur est survenue lors de l'exécution de mediainfo sur le serveur. Vérifiez que mediainfo est installé et disponible dans le PATH à Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Récupération en cours..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Sortie Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Tout effacer" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Affichage en cours" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Erreur signalée" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Téléchargement terminé" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Arrêt" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Haute" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Basse" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normale" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "À propos de Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Diviseur Slots de Réception" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Slots de Réception (Global)" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Slots de Réception par Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Configuration des Slots" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Diviseur Slots d'Envoi" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Slots d'Envoi (Global)" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Slots d'Envoi par Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Pré-réglages du Menu (Réception) :" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Pré-réglages du Menu (Envoi) :" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Limitation Globale de Réception" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Limitation Globale d'Envoi" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Configuration Taux de Transfert" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Activer le DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Port DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Découverte de Pairs Décentralisée" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Connexions Entrantes" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Adresse IP/Nom d'Hôte" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Connexions HTTP Maximum" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Activer l'échange de Pairs" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Pairs Désirés" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Pairs" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Pairs Maximum (Réception)" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Pairs Minimum (Réception)" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Pairs en Partage Maximum (Envoi)" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Pairs en Partage Minimum (Envoi)" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Port Ouvert" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Port Aléatoire" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Plage de Ports" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Points de montage d'utilisation du disque" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Afficher" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Vérifier le hash après le Téléchargement" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Répertoire de Téléchargement par défaut" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disque Dur" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Fichiers Ouverts Maximum" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Mémoire Vive" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Limite d'utilisation Mémoire Vive" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "À propos" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentification" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bande Passante" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivité" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Utilisation du disque" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Paramètres" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Ressources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Colonnes de détail du torrent" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Langue" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Traductions" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Activé" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "Dans la vue étendue, les balises fonctionnent mieux à la fin de la liste." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Affichage de la liste des torrents" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Taille du torrent" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Vue condensée" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Vue étendue" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Flux" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Déconnexion" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Réglages" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Limites de Vitesse" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Rechercher des Torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Reçu" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Envoyé" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Illimité" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Utilisation du disque" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "sur" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Ajouter un Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Ajouter des Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Démarrer" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "ou cliquez pour rechercher" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Glissez les fichiers ici," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Par Fichier" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "URL du Torrent" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Par URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Utiliser comme chemin de base" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Mettre en pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Démarrer" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Arrêter" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Détails" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Fichiers" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Téléchargez le fichier" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Téléchargez les fichiers" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Chargement des détails du fichier..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Commentaires" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connectés sur " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Ajouté" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Création" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Téléchargé" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Espace Disque Libre" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hachage" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Général" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Traqueur" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfert" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Emplacement" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Non" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Pairs" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Planifié" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignoré" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Conforme" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "En Partage" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Taille" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Message du Traqueur" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type de texte" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privé" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publique" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Pairs" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Il n'y a aucun Pair actif pour ce Torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " fichier sélectionné" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " fichiers sélectionnés" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Priorité" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Traqueurs" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Il n'y a aucun Traqueur actif pour ce Torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type de texte" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Impossible de se connecter à rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Vider les Filtres" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Vérifier le Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Détails du torrent" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Déplacer" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Mettre en pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priorité" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Supprimer" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Définir un Tag" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Démarrer" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Arrêter" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Déposez les fichiers ici pour les ajouter à rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Aucun Torrent à afficher." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Emplacement" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Réglages..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Vérifier le hachage" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Déplacer les Données" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Définir l'Emplacement de Téléchargement" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Chemin absolu" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Commentaire" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Date de Création" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Date d'Ajout" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Vitesse de Téléchargement" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Données Reçues" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "Date de fin estimée" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Espace libre" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hachage" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorer le Planificateur" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privé" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nom des Fichiers" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Pourcentage Complété" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Taille des Fichiers" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Message du Tracker" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Vitesse d'Envoi" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Données Envoyées" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Supprimer les Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Êtes-vous certain(e) de vouloir supprimer " + }, + { + "offset": 0, + "options": { + "=0": { + "value": [ + { + "type": 0, + "value": "aucun torrent" + } + ] + }, + "=1": { + "value": [ + { + "type": 0, + "value": "un torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " ?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Supprimer les données" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Vous n'avez sélectionné aucun torrent." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Définir des Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Entrer des Tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Définir des Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Trier par" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "o" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "Go" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "ko" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "Mo" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "To" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "j" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "h" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "min" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "sem" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "an" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/he.json b/client/src/javascript/i18n/compiled/he.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/he.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/hu.json b/client/src/javascript/i18n/compiled/hu.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/hu.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/it.json b/client/src/javascript/i18n/compiled/it.json new file mode 100644 index 000000000..db01ad51f --- /dev/null +++ b/client/src/javascript/i18n/compiled/it.json @@ -0,0 +1,2188 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Aggiungi Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Rimuovi Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Avvia Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Ferma Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Impostazioni salvate con successo." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Hai aggiunto con successo " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Impossibile aggiungere " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Spostato con successo " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Impossibile spostare " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Hai rimosso con successo " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Impossibile rimuovere " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Aggiungi Utente" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Amministratore" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Tipo di Connessione" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Socket Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Crea Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Crea un account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Benvenuto a Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Utente Attuale" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Il nome utente non può essere vuoto." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Accedi" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "L'utente non è amministratore" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "host rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Account Utente" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Aggiungi" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Annulla" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nuovo" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Salva Impostazioni" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Salva" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Aggiungi..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Prova" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Sì" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Impossibile connettersi a rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "La connessione non può essere verificata." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connessione riuscita" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Verifichiamo le impostazioni di connessione." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Impossibile connettersi a rTorrent. Si prega di aggiornare le informazioni ora." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problema Di Connettività" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Aggiungi Regola Download" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Aggiungi Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Alimenti Applicabili" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Applica Etichette" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Sfoglia i feed" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Escludi" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Escludi Motivo" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Feed Esistenti" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Regole Esistenti" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Etichetta" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Partita" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " partita" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " partite" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Modello Di Partita" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Nessun feed disponibile." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Nessun feed definito." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Nessuna regola definita." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Termine di ricerca" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Seleziona Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervallo" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Avvia al caricamento" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Scarica Regole" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feed" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Feed Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Etichette" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Giorni" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Ore" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minuti" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Destinazione Torrent" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Espressione regolare non valida." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Devi selezionare un feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "È necessario specificare una destinazione." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "È necessario specificare un'etichetta." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "È necessario specificare un URL feed valido." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Directory vuota." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood non ha il permesso di leggere questa directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Questo percorso non esiste. Sarà creato." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Recupero struttura directory..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Tutti" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Attivo" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Controllo" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Scaricamento" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Errore" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inattivo" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Fermato" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtra per stato" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtra per Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtra per Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "fa" + } + ], + "general.at": [ + { + "type": 0, + "value": "a" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copiato" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copia" + } + ], + "general.of": [ + { + "type": 0, + "value": "di" + } + ], + "general.to": [ + { + "type": 0, + "value": "a" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatico" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Si è verificato un errore durante l'esecuzione di mediainfo sul server. Verificare che mediainfo sia installato e disponibile nel PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Recupero..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Uscita Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Cancella Tutto" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Mostrando" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Errore Segnalato" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Scaricamento Finito" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Non Scaricare" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Alto" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Basso" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normale" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Informazioni Sull'Inondazione" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Scarica Divisore Slot" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Scarica Slot Globali" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Scarica Slot Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Disponibilità Slot" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Carica Divisore Slot" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Carica Slot Globali" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Carica Slot Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Preimpostazioni A Discesa: Scarica" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Preimpostazioni A Discesa: Carica" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Velocità Di Download Globale Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Acceleratore Globale Del Tasso Di Caricamento" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Velocità Di Trasferimento Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Abilita DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Porta DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Scoperta Peer Decentralizzata" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Connessioni In Entrata" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Ip/Hostname Segnalato" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Connessioni HTTP Massime" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Abilita Scambio Peer" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Pari Desiderati" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Peers Massimo" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Peers Minimo" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Massima Seeding Dei Peers" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Seeding Dei Peers Minimi" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Porta Aperta" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Porta Casuale" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Intervallo Di Porta" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Punti Di Montaggio Utilizzo Disco" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Mostra" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verifica l'hash al completamento" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Directory Di Download Predefinita" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disco" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "File Aperti Massimi" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memoria" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Utilizzo Massimo Della Memoria" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Informazioni" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autenticazione" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Larghezza Di Banda" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connettività" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Uso Del Disco" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Impostazioni" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Risorse" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interfaccia Utente" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Colonne Dettagli Torrent" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Lingua" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Localizzazione" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Abilitato" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "Nella vista espansa, i tag funzionano meglio alla fine dell'elenco." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Visualizzazione Elenco Torrent" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Dimensione Torrent" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Vista Condensata" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Vista Estesa" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feed" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Esci" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifiche" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Impostazioni" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Limiti Di Velocità" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Cerca torrent" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Scaricato" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Caricato" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Illimitato" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Uso Del Disco" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "di" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Aggiungi Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destinazione" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destinazione" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Aggiungi Torrent" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Avvia Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "o clicca per sfogliare" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Trascina qui alcuni file," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Per File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Url Torrent o Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Per URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Etichette" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Usa come percorso base" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pausa" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Inizia" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Ferma" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Dettagli" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "File" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Scarica il file" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Scarica i file" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Caricamento dettagli del file..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Commento" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connesso da " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Aggiunto" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Data Di Creazione" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Scaricato" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Spazio Libero Su Disco" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Generale" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Trasferisci" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Posizione" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Nessuno" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Pianificatore" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorato" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Semi" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Dimensione" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Etichette" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Messaggio Tracker" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Tipo" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privato" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Pubblico" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Non ci sono dati peer per questo torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " file selezionato" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " file selezionati" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Imposta Priorità" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Non ci sono dati tracker per questo torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Tipo" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Impossibile connettersi a rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Cancella Filtri" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Controlla Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Dettagli Torrent" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Imposta Posizione Del Torrent" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pausa" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priorità" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Rimuovi" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Imposta Etichette" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Inizia" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Ferma" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Trascina qui i file per aggiungerli a rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Nessun torrent da visualizzare." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Imposta Posizione" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Impostazione..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Controlla hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Sposta dati" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Imposta Posizione Del Torrent" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Percorso Base" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Commento" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Data Di Creazione" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Aggiunto" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Velocità Di Download" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Scaricato" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Spazio Libero Su Disco" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignora Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privato" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nome" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percentuale Completata" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Rapporto" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Dimensione File" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Etichette" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Messaggio Tracker" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Velocità Di Caricamento" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Caricato" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Rimuovi Torrent" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Sei sicuro di voler rimuovere " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Elimina dati" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Non hai selezionato alcun torrent." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Imposta Etichette" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Inserisci tag" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Imposta Etichette" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Ordina Per" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "g" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "ora" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ja.json b/client/src/javascript/i18n/compiled/ja.json new file mode 100644 index 000000000..12bea97dc --- /dev/null +++ b/client/src/javascript/i18n/compiled/ja.json @@ -0,0 +1,2168 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "トレントを追加" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Torrent を削除" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Torrent を開始" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Torrent を停止" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "設定を正常に保存しました。" + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " を追加しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " の追加に失敗しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " を移動しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " の移動に失敗しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " を削除しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " の削除に失敗しました " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "ユーザーを追加" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "管理者" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent 接続タイプ" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix ソケット" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "アカウントを作成" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "アカウントを作成" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "洪水へようこそ!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "現在のユーザー" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "ユーザー名は空にできません。" + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "ログイン" + } + ], + "auth.login": [ + { + "type": 0, + "value": "ログイン" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "ユーザーは管理者ではありません" + } + ], + "auth.password": [ + { + "type": 0, + "value": "パスワード" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent ホスト" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent ポート" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent ソケットパス" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "ユーザーアカウント" + } + ], + "auth.username": [ + { + "type": 0, + "value": "ユーザー名" + } + ], + "button.add": [ + { + "type": 0, + "value": "追加" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "キャンセル" + } + ], + "button.new": [ + { + "type": 0, + "value": "新規作成" + } + ], + "button.no": [ + { + "type": 0, + "value": "いいえ" + } + ], + "button.save": [ + { + "type": 0, + "value": "設定を保存" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "保存" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "追加中..." + } + ], + "button.test": [ + { + "type": 0, + "value": "テスト" + } + ], + "button.yes": [ + { + "type": 0, + "value": "はい" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "rTorrent に接続できません" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "接続を確認できませんでした。" + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "接続に成功しました" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "接続設定を確認してみましょう。" + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "rTorrent に接続できません。今すぐ情報を更新してください。" + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "接続の問題" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "ダウンロードルールを追加" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "フィードを追加" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "適用されるフィード" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "タグを適用" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "フィードを参照" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "除外" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "パターンを除外" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "既存のフィード" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "既存のルール" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "ラベル" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "一致" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "パターンに一致" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "利用可能なフィードはありません。" + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "フィードが定義されていません。" + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "ルールが定義されていません。" + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "検索キーワード:" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "フィードを選択" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "間隔" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "ロード時に開始" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "ルールをダウンロード" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "フィード" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "トレントフィード" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "タグ" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "日数" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "時間" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "分" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "トレントの宛先" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "無効な正規表現です。" + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "フィードを選択してください。" + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "目的地を指定する必要があります。" + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "ラベルを指定する必要があります。" + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "有効なフィードURLを指定する必要があります。" + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "空のディレクトリ。" + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "このディレクトリを読み込む権限がありません。" + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "このパスは存在しません。作成されます。" + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "ディレクトリ構造を取得しています..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "すべて" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "アクティブ" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "確認中" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "ダウンロード中" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "エラー" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "非アクティブ" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "停止しました" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "ステータスでフィルター" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "タグでフィルター" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "トラッカーでフィルター" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "タグなし" + } + ], + "general.ago": [ + { + "type": 0, + "value": "前" + } + ], + "general.at": [ + { + "type": 0, + "value": "に" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "コピーしました" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "コピー" + } + ], + "general.of": [ + { + "type": 0, + "value": "/" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "自動" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "サーバー上でmediainfoを実行中にエラーが発生しました。mediainfoがインストールされ、PATH to Floodで利用できることを確認してください。" + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "フェッチ中..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo 出力" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "すべてクリア" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "表示" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "報告エラー" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "ダウンロード完了" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "ダウンロードしない" + } + ], + "priority.high": [ + { + "type": 0, + "value": "高い" + } + ], + "priority.low": [ + { + "type": 0, + "value": "低い" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "標準" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "洪水について" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "スロット分割線をダウンロード" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "グローバルスロットをダウンロード" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Torrent ごとにスロットをダウンロード" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "スロットの在庫状況" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "スロット分割線をアップロード" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "グローバルスロットをアップロード" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Torrent ごとにスロットをアップロード" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "ドロップダウンプリセット: ダウンロード" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "ドロップダウンプリセット: アップロード" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "グローバルダウンロードレートスロットル" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "グローバルアップロードレートスロットル" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "スロットル転送レート" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "DHTを有効にする" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHTポート" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "分散型ピアの発見" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "受信接続" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "報告されたIP/ホスト名" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "最大HTTP接続" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "ピア交換を有効にする" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "ピアが望ましいです" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "ピア" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "最大ピア数" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "ピアの最小数" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "ピアシードの最大数" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "ピアシードの最小数" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "ポートを開く" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "ポートをランダム化" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "ポート範囲" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "ディスク使用量マウントポイント" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "表示" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "完了時にハッシュを確認" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "デフォルトのダウンロードディレクトリ" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "ディスク" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "最大開いているファイル" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "メモリ" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "最大メモリ使用量" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "認証" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "接続" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "ディスクの使用量" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "設定" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "リソース" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "ユーザー インターフェイス" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "トレントの詳細列" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "言語" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "ロケール" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "有効" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "展開されたビューでは、タグはリストの最後に最適に動作します。" + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "トレントリストの表示" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "トレントサイズ" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "展開表示" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "フィード" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "ログアウト" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "通知" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "設定" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "速度制限" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Torrent を検索" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "ダウンロード済み" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "アップロードしました" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "無制限です" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "ディスクの使用量" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "/" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "トレントを追加" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "保存先" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "保存先" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Torrent を追加" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Torrent を開始" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "を選択します。" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "ここにファイルをドロップ" + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "ファイル順" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL または Magnet リンク" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "URL順" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "タグ" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "ベースパスとして使用" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "一時停止" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "開始" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "詳細" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "ファイル" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "ファイルをダウンロード" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "ファイルをダウンロード" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "ファイル詳細を読み込んでいます..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "コメント" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " の " + }, + { + "type": 1, + "value": "total" + }, + { + "type": 0, + "value": " が接続されました" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "追加しました" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "作成日" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "ダウンロード済み" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "空きディスク容量" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "ハッシュ" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "全般" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "トラッカー" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "送金" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "場所" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "なし" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "ピア" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "スケジューラ" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "無視" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "種" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "サイズ" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "タグ" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "トラッカーメッセージ" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "タイプ" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "非公開" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "公開" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "ピア" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "このトレントのピアデータはありません。" + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 選択したファイル" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 選択したファイル" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "優先度を設定" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "トラッカー" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "このトレントにはトラッカーデータがありません。" + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "タイプ" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "rTorrent に接続できません。" + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "フィルタをクリア" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "ハッシュを確認" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "トレントの詳細" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "トレントの場所を設定" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "一時停止" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "優先度" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "削除" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "タグを設定" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "開始" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "ここにファイルをドロップして、rTorrentに追加します。" + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "表示するトレントがありません。" + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "場所を設定" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "設定中..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "ハッシュをチェック" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "データを移動" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "トレントの場所を設定" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "ベースパス" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "コメント" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "作成日" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "追加しました" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "ダウンロード速度" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "ダウンロード済み" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "空きディスク容量" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "ハッシュ" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "スケジューラを無視" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "非公開" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "名前" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "完了率" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "ファイルサイズ" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "タグ" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "トラッカーメッセージ" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "アップロード速度" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "アップロードしました" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Torrent を削除" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "削除してもよろしいですか? " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " Torrent" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "データを削除" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "トレントを選択していません。" + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "タグを設定" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "タグを入力" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "タグを設定" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "並び替え" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "時間" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ko.json b/client/src/javascript/i18n/compiled/ko.json new file mode 100644 index 000000000..6402f79ff --- /dev/null +++ b/client/src/javascript/i18n/compiled/ko.json @@ -0,0 +1,2205 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "토렌트 추가" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "토렌트 제거" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "토렌트 시작" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "토렌트 중지" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "설정을 저장했습니다." + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 추가했습니다." + } + ], + "alert.torrent.add.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 추가하지 못했습니다." + } + ], + "alert.torrent.move": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 이동했습니다." + } + ], + "alert.torrent.move.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 이동하지 못했습니다." + } + ], + "alert.torrent.remove": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 제거했습니다." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "토렌트" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "를 제거하지 못했습니다." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "사용자 추가" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "관리자" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent 연결 종류" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "유닉스 소켓" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "계정 생성" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "계정 생성" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "환영합니다, Flood입니다!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "현재 사용자" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "사용자 이름은 비어있을 수 없습니다." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "로그인" + } + ], + "auth.login": [ + { + "type": 0, + "value": "로그인" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "관리자가 아닌 사용자입니다" + } + ], + "auth.password": [ + { + "type": 0, + "value": "비밀번호" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent 호스트" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent 포트" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent 소켓" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent 소켓 경로" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "사용자 계정" + } + ], + "auth.username": [ + { + "type": 0, + "value": "사용자 이름" + } + ], + "button.add": [ + { + "type": 0, + "value": "추가" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "취소" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "아니오" + } + ], + "button.save": [ + { + "type": 0, + "value": "설정 저장" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "추가 중..." + } + ], + "button.test": [ + { + "type": 0, + "value": "테스트" + } + ], + "button.yes": [ + { + "type": 0, + "value": "예" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "rTorrent에 연결하지 못했습니다" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "연결을 검증하지 못했습니다." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "연결 성공" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "연결 설정을 검증해보겠습니다." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "rTorrent에 연결하지 못했습니다. 지금, 설정을 고쳐주세요." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "연결 문제" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "다운로드 규칙 추가" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "피드 추가" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "가용 피드" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "태그 적용" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "제외" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "제외 패턴" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "설정된 피드" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "설정된 규칙" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "라벨" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "일치" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " 일치" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " 일치" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "일치 패턴" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "사용할 수 있는 피드가 없습니다." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "지정된 피드가 없습니다." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "지정된 규칙이 없습니다." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "정규 표현식" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "피드 선택" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "간격" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "시작 시 불러오기" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "다운로드 규칙" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "피드" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "토렌트 피드" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "태그" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " 시간" + } + ], + "feeds.time.min": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " 분" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "토렌트 저장 경로" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "정규 표현식이 잘못되었습니다." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "피드를 선택해야 합니다." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "저장할 경로를 지정해야 합니다." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "라벨을 지정해야 합니다." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "올바른 피드 URL을 지정해야 합니다." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "비어있는 디렉토리입니다." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood에 이 디렉토리를 읽을 권한이 없습니다." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "없는 경로입니다. 생성될 것입니다." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "디렉토리 구조 가져오는 중..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "전체" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "활성" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "완료" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "다운로드 중" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "오류" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "비활성" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "중지" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "필터: 상태" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "필터: 태그" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "필터: 트래커" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "태그 없음" + } + ], + "general.ago": [ + { + "type": 0, + "value": "전" + } + ], + "general.at": [ + { + "type": 0, + "value": "@" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "복사됨" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "복사" + } + ], + "general.of": [ + { + "type": 0, + "value": "/" + } + ], + "general.to": [ + { + "type": 0, + "value": "-" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "자동" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "서버에서 미디어 정보를 가져오는 중 오류가 발생했습니다. mediainfo가 설치되어 있으며 Flood가 쓸 수 있도록 PATH가 지정되어 있는지 확인하세요." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "가져오는 중..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo 출력" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "모두 지우기" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "표시 중" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "오류 보고" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "다운로드 완료" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "다운로드하지 않음" + } + ], + "priority.high": [ + { + "type": 0, + "value": "높음" + } + ], + "priority.low": [ + { + "type": 0, + "value": "낮음" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "보통" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "다운로드 슬롯 나눌 값" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "전체 다운로드 슬롯 개수" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "토렌트당 다운로드 슬롯 개수" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "가용 슬롯" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "업로드 슬롯 나눌 값" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "전체 업로드 슬롯 개수" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "토렌트당 업로드 슬롯 개수" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "드롭다운 메뉴 속도 목록: 다운로드" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "드롭다운 메뉴 속도 목록: 업로드" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "전체 다운로드 속도 제한" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "전체 업로드 속도 제한" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "전송 속도 제한" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "DHT 사용" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT 포트" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "탈중앙 피어 탐색" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "들어오는 연결" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "보고된 IP/호스트명" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "최대 HTTP 연결" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "피어 교환 사용" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "희망 피어 수" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "피어" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "최대 피어 수" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "최소 피어 수" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "시딩할 최대 피어 수" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "시딩할 최소 피어 수" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "포트 열기" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "임의 포트" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "포트 범위" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "완료 시 해시 검증" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "기본 다운로드 경로" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "디스크" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "최대 열어둘 파일 개수" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "메모리" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "최대 메모리 사용량" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "인증" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "대역폭" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "연결" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "설정" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "자원" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "사용자 인터페이스" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "언어" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "지역" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "표시" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "확장 보기에서는, 태그를 목록 끝에 배치하면 제일 잘 작동합니다." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "토렌트 목록 표시" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "토렌트 크기" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "간략히 보기" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "확장 보기" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "피드" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "로그아웃" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "알림" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "설정" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "속도 제한" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "토렌트 검색" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "다운로드한 크기" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "업로드한 크기" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "무제한" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "total" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "connected" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "중" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "토렌트 추가" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "저장 경로" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "저장 경로" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "토렌트 추가" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "토렌트 시작" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "또는 클릭해서 파일 열기" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "파일을 여기로 끌어넣거나," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "파일" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "토렌트 URL 또는 마그넷 주소" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "토렌트" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "기본 경로로 사용" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "일시중지" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "시작" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "중지" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "속성" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "파일" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "선택한 파일 다운로드" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "선택한 파일 다운로드" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "파일 목록 불러오는 중..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "설명" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "total" + }, + { + "type": 0, + "value": " 중 " + }, + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " 연결됨" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "추가한 날" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "만든 날" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "다운로드한 크기" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "남은 디스크 공간" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "해시" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "일반" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "토렌트" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "트래커" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "전송" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "다운로드 경로" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "없음" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "피어" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "스케줄러" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "무시" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "준수" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "시드" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "크기" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "태그" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "트래커 메시지" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "종류" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "비공개" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "공개" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "미디어 정보" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "피어" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "이 토렌트에는 피어 정보가 없습니다." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 파일 선택" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 파일 선택" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "우선순위 지정" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "트래커" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "이 토렌트에는 트래커 정보가 없습니다." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "종류" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "rTorrent에 연결하지 못했습니다." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "필터 지우기" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "해시 검사" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "토렌트 속성" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "토렌트 위치 지정" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "일시중지" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "우선순위" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "제거" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "태그 지정" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "시작" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "중지" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "여기로 파일을 끌어넣어 rTorrent에 추가하세요." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "표시할 토렌트가 없습니다." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "경로 지정" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "이동 중..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "데이터 이동" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "토렌트 경로 지정" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "기본 경로" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "설명" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "만든 날" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "추가한 날" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "다운로드 속도" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "다운로드한 크기" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "예상 남은 시간" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "남은 디스크 공간" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "해시" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "스케줄러 무시" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "비공개" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "이름" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "완료율" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "비율" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "파일 크기" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "태그" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "트래커 메시지" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "업로드 속도" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "업로드 크기" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "토렌트 제거" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "정말 " + }, + { + "offset": 0, + "options": { + "=0": { + "value": [ + { + "type": 0, + "value": "0개 토렌트를" + } + ] + }, + "=1": { + "value": [ + { + "type": 0, + "value": "토렌트 한 개를" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": "개 토렌트를" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " 제거할까요?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "데이터 삭제" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "토렌트를 선택하지 않았습니다." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "태그 지정" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "태그 입력" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "태그 지정" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "정렬 기준" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "일" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "시" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "분" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "초" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "주" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "년" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/nl.json b/client/src/javascript/i18n/compiled/nl.json new file mode 100644 index 000000000..cefe25a39 --- /dev/null +++ b/client/src/javascript/i18n/compiled/nl.json @@ -0,0 +1,2225 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Torrent toevoegen" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Verwijder Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Instellingen zijn opgeslagen." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Het toevoegen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is klaar." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Het toevoegen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is mislukt." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Het verplaatsen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is klaar." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Het verplaatsen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is mislukt." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Het verwijderen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is klaar." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Het verwijderen van " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " is mislukt." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Gebruiker toevoegen" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Beheerder" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent type verbinding" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Maak account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Maak een account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welkom bij Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Huidige gebruiker" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Gebruikersnaam mag niet leeg zijn." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log in" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Aanmelden" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Gebruiker is geen Beheerder" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Wachtwoord" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Poort" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Pad" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Gebruikersnaam" + } + ], + "button.add": [ + { + "type": 0, + "value": "Toevoegen" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Annuleren" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nieuw" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nee" + } + ], + "button.save": [ + { + "type": 0, + "value": "Instellingen opslaan" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Opslaan" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Toevoegen..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Ja" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Kan geen verbinding maken met rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Verbinding kon niet worden geverifieerd." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Verbinding succesvol" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Laten we je verbindingsinstellingen verifiëren." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Kan geen verbinding maken met rTorrent. Update de informatie nu." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Probleem met verbinding" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notificaties" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent lijst" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomie" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Gegevensoverdracht geschiedenis" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Gegevensoverdracht snelheid details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Regel toevoegen" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Feed toevoegen" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Tags toevoegen" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Bekijk feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Uitsluiten" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Overslaan op patroon" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Bestaande feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Regels" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Omschrijving" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Overeenkomst" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Overeenkomst op patroon" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Geen feeds beschikbaar." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Geen feeds toegevoegd." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Geen regels toegevoegd." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "Reguliere expressie" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Zoek term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Selecteer feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start na toevoegen" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Regels" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Labels" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "dagen" + } + ], + "feeds.time.hr": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " uur" + } + ], + "feeds.time.min": [ + { + "type": 1, + "value": "durationValue" + }, + { + "type": 0, + "value": " minuten" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent downloadlocatie" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "Je moet een positief nummer opgeven." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Fout in reguliere expressie." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Je moet een feed selecteren." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Je moet een downloadlocatie opgeven." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Je moet een label selecteren." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Je moet een geldige feed URL opgeven." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Lege map." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood heeft geen toestemming om deze map te lezen." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Dit pad bestaat niet. Het zal worden aangemaakt." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Ophalen van map structuur..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Alles" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Actief" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Controleren" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Klaar" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloaden" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Fout" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactief" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Gestopt" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter op status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter op tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter op tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Niet getagd" + } + ], + "general.ago": [ + { + "type": 0, + "value": "geleden" + } + ], + "general.at": [ + { + "type": 0, + "value": "bij" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Gekoppeld" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopiëren" + } + ], + "general.of": [ + { + "type": 0, + "value": "van" + } + ], + "general.to": [ + { + "type": 0, + "value": "naar" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatisch" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Er is een fout opgetreden tijdens het uitvoeren van mediainfo op de server. Controleer of mediainformatie is geïnstalleerd en beschikbaar is in de PATH naar Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Ophalen..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Uitvoer" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Alles wissen" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Weergegeven" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Fout gerapporteerd" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Downloaden voltooid" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Niet downloaden" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Hoog" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Laag" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normaal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Over Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download slots divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download slots globaal" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download slots per torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slots" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload slots divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload slots globaal" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload slots per torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown downloadbeperking items" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown uploadbeperking items" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Globale downloadbeperking" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Gobale uploadbeperking" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Sneldheidsbeperkingen" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Gebruik DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Poort" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Ongecentraliseerde Peer Ontdekking" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Inkomende Connecties" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Vermeld IP/Hostnaam" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximaal aantal HTTP connecties" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Gebruik Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Gewenst aantal peers" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Leechers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximaal aantal peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimaal aantal peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximaal aantal peers seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimaal aantal peers seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open poort" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Willekeurige poort" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Poortbereik" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Tekenpunten voor schijfgebruik" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Weergeven" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Controleer hash na downloaden" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Standaard downloadlocatie" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Schijf" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximaal aantal open bestanden" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Geheugen" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maximaal geheugengebruik" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Informatie" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authenticatie" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandbreedte" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectiviteit" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Schijf gebruik" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Instellingen" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Hulpmiddelen" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Gebruikersomgeving" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent detail kolommen" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Taal" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Landinstelling" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Ingeschakeld" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In de uitgebreide weergave werken tags het beste aan het einde van de lijst." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent Lijst Weergave" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Grootte" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Gecondenseerde weergave" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Uitgebreide weergave" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log uit" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notificaties" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Instellingen" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Sneldheidsbeperkingen" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Zoek torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Gedownload" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Geupload" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Ongelimiteerd" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Schijf gebruik" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "van" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Torrent toevoegen" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Downloadlocatie" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Downloadlocatie" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Torrents toevoegen" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Torrent starten" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "of klik om te bladeren." + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Sleep bestanden hierheen," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Via bestand" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Via URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Labels" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Gebruiken als basis pad" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pauzeer" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Starten" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stoppen" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Beschrijving" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Bestanden" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download bestand" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download bestanden" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Bestand details laden..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Opmerking" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " verbonden van " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Toegevoegd op" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Aangemaakt op" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Gedownload" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Vrije schijfruimte" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Toegangssleutel" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Algemeen" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Overdracht" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Downloadlocatie" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Geen" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Leechers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Taakplanner" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Genegeerd" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Uitgevoerd" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeders" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Grootte" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Labels" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Bericht van tracker" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privé" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publiek" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Media Info" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Leechers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Er zijn geen peer-gegevens voor deze torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " bestand geselecteerd" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " bestanden geselecteerd" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Wijzig prioriteit" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Er zijn geen tracker-gegevens voor deze torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Kan geen verbinding maken met rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Wis filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Controleer hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Downloadlocatie..." + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pauzeer" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioriteit" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Verwijder" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Tags instellen" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Starten" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stoppen" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Sleep bestanden hier om ze toe te voegen aan Torrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Geen torrents om te laten zien." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Wijzig downloadlocatie" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Wijzigen..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Controleer hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Verplaats bestanden" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Wijzig downloadlocatie" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Standaard pad" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Opmerking" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Aanmaak datum" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Datum toegevoegd" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Downloadsnelheid" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Gedownload" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Vrije schijfruimte" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Toegangssleutel" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Negeer Taakplanner" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privé" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Naam" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percentage compleet" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Verhouding" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeders" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Bestandsgrootte" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Labels" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker bericht" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Uploadsnelheid" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Geupload" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Torrents verwijderen" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Weet je zeker dat je " + }, + { + "offset": 0, + "options": { + "=0": { + "value": [ + { + "type": 0, + "value": "geen torrents" + } + ] + }, + "=1": { + "value": [ + { + "type": 0, + "value": "één torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": " wilt verwijderen?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Gegevens verwijderen" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Je hebt geen torrents geselecteerd." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Tags instellen" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Tags invoeren" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Tags instellen" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sorteer op" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "KB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "h" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "w" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "j" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/no.json b/client/src/javascript/i18n/compiled/no.json new file mode 100644 index 000000000..ccebcce6e --- /dev/null +++ b/client/src/javascript/i18n/compiled/no.json @@ -0,0 +1,2184 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Legg til torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Fjern torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stopp torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Innstillingene ble lagret." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Helt lagt til " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Kunne ikke legge til " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Kunne ikke flytte " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Fjernet " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Kunne ikke fjerne " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Legg til bruker" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Administrator" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent tilkoblingstype" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Enhetlig Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Opprett konto" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Opprett en konto" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Velkommen til flommet!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Gjeldende bruker" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Brukernavnfeltet kan ikke være tomt." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Logg inn" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Innlogging" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Brukeren er ikke Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Passord" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent vert" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent lomme" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Bruker kontoer" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Brukernavn" + } + ], + "button.add": [ + { + "type": 0, + "value": "Legg til" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Avbryt" + } + ], + "button.new": [ + { + "type": 0, + "value": "Ny" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nei" + } + ], + "button.save": [ + { + "type": 0, + "value": "Lagre innstillinger" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Lagre" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Legge til..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Prøve" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Ja" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Kan ikke koble til rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Tilkobling kunne ikke verifiseres." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Tilkobling vellykket" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "La oss verifisere dine tilkoblingsinnstillinger." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Kan ikke koble til rTorrent. Vennligst oppdater informasjonen nå." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Tilkobling problem" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Legg til regler for nedlasting" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Legg til strøm" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Gjeldende Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Legg til etiketter" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Bla gjennom fôr" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Ekskluder" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Utelat Mønster" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Eksisterende Feeder" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Eksisterende regler" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Etikett" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Kamp" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " treff" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matcher" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Matchende mønster" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Ingen fôr tilgjengelig." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Ingen feeds definert." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Ingen regler definert." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEks" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Søk etter uttrykk" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Velg mating" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervall" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start ved lasting" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Last ned regler" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Strøm" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeder" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tagger" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Dager" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Timer" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutter" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent destinasjon" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "Nettadresse" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Ugyldig regulært uttrykk." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Du må velge en mating." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Du må spesifisere en destinasjon." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Du må angi en etikett." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Du må angi en gyldig feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Tom mappe." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flom har ikke tillatelse til å lese denne mappen." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Denne stien finnes ikke. Den vil bli opprettet." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Henter mappestruktur char@@0" + } + ], + "filter.all": [ + { + "type": 0, + "value": "Alle" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Aktiv" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Kontrollerer" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Laster ned" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Feil" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inaktiv" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stoppet" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrer etter status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrer etter tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrer etter tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Umerket" + } + ], + "general.ago": [ + { + "type": 0, + "value": "siden" + } + ], + "general.at": [ + { + "type": 0, + "value": "på" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Kopiert" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopier" + } + ], + "general.of": [ + { + "type": 0, + "value": "av" + } + ], + "general.to": [ + { + "type": 0, + "value": "til" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatisk" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Det oppstod en feil under kjøring av mediainfo på serveren. Sjekk at mediainfo er installert og tilgjengelig i PATH flom." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Henter..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo utdata" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Fjern alle" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Viser" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Feil rapportert" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Nedlasting ferdig" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Ikke last ned" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Høy" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Lav" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Vanlig" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Om Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Last ned loddrett divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Last ned slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Last ned slot per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Spor tilgjengelighet" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Last opp loddretting divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Last opp plasser globalt" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Last opp plasser per torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Forhåndsinnstillinger for rulleliste: Last ned" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Forhåndsinnstillinger for rulleliste: Last opp" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global nedlastingshastighet Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global opplastingshastighet Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Overfør bokstaver" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Aktiver DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Desentralisert Peer Oppdagelse" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Innkommende tilkoblinger" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Rapportert IP/Vertsnavn" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maksimal HTTP-tilkobling (Automatic Translation)" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Aktiver Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Mottakere utsendt" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Likemenn" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maksimalt antall kilder" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum klienter" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maks spredning til klienter" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum kilder for å dele" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Åpne port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Tilfeldig port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Rekkefølge" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Bruk diskens ridningspoeng" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Vis" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verifiser Hash ved ferdigstillelse" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Standard nedlastingsmappe" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maksimalt antall åpne filer" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Minne" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maks minnebruk" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Om" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autentisering" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Båndbredde" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Tilkobling" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Bruk av diskplass" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Innstillinger" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Ressurser" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Brukers grensesnitt" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detalj kolonner" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Språk" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Språk" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Aktivert" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "I den utvidede visningen, fungerer merkelapper best på slutten av listen." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Vis torrent liste" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent størrelse" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Kondensert visning" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Utvidet visning" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Strøm" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Logg ut" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Varsler" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Innstillinger" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Grenseverdier for hastighet" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Søk torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Nedlastet" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Opplastet" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Ubegrenset" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Bruk av diskplass" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "av" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Legg til torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Mål" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Mål" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Legge til torrenter" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "eller klikk for å bla gjennom" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Slipp noen filer her," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Etter fil" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL eller Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Etter URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tagger" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrenter" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Bruk som basis sti" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Begynn" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stopp" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Detaljer" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Filer" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Last ned filen" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Last ned filer" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Laster fildetaljer..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " koblet til " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Lagt" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Opprettet dato" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Nedlastet" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Ledig diskplass" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Generelt" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Sporingsagent" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Overfør" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Sted" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Ingen" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Likemenn" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Oppgaveplanlegging" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorert" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Uhørt" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Frø" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Størrelse" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tagger" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Melding om sporingsagent" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type:" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Offentlig" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Likemenn" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Det er ingen kilder data for denne torren." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " valgt fil" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " valgte filer" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Angi prioritet" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Sporere" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Det finnes ingen data for tracker for denne torren." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type:" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Kan ikke koble til rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Fjern filtre" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Sjekk Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent detaljer" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Angi torrent plassering" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioritet" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Fjern" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Angi Etiketter" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Begynn" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stopp" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Slipp filer her for å legge dem til rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Ingen torrenter å vise." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Angi sted" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Innstillinger..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Sjekk hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Flytt data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Angi torrent plassering" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Basis sti" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Opprettet dato" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Lagt" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Nedlastings hastighet" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Nedlastet" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Ledig diskplass" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorer planlegger" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Navn" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Prosent fullført" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Forhold" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Fil Størrelse" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tagger" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Melding om sporingsagent" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Opplastnings hastighet" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Opplastet" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Fjern torrenter" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Er du sikker på at du vil fjerne " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrenter" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Slett data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Du har ikke valgt noen torrenter." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Angi Etiketter" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Angi tagger" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Angi Etiketter" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sorter etter" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "NO" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "Mb" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "D" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "t" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "min" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "S" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "uke" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/pl.json b/client/src/javascript/i18n/compiled/pl.json new file mode 100644 index 000000000..b2005dad0 --- /dev/null +++ b/client/src/javascript/i18n/compiled/pl.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Dodaj torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Usuń torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Uruchom torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Zatrzymaj torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Zapisano ustawienia." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Pomyślnie dodano " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Nie udało się dodać " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Pomyślnie przeniesiono " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Nie udało się przenieść " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrentów" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrentów" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Pomyślnie usunięto " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrenty" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Nie udało się usunąć " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrentów" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrentów" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Dodaj użytkownika" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Administrator" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "Typ połączenia rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Socket Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Utwórz konto" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Utwórz konto" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Witaj w powodzie!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Bieżący użytkownik" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Nazwa użytkownika nie może być pusta." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Zaloguj się" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Logowanie" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Użytkownik nie jest administratorem" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Hasło" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "Host rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "Port rTorrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "Skieszonka rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "Ścieżka do gniazda rTorrent" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Konta użytkowników" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Nazwa użytkownika" + } + ], + "button.add": [ + { + "type": 0, + "value": "Dodaj" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Anuluj" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nowy" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nie" + } + ], + "button.save": [ + { + "type": 0, + "value": "Zapisz ustawienia" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Zapisz" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Dodawanie..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Badanie" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Tak" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Nie można połączyć się z rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Nie można zweryfikować połączenia." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Połączenie udane" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Sprawdźmy ustawienia połączenia." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Nie można połączyć się z rTorrent. Proszę zaktualizować informacje teraz." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problem z połączeniem" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Dodaj regułę pobierania" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Dodaj kanał" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Stosowany kanał" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Zastosuj tagi" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Przeglądaj kanały" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Wyklucz" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Wyklucz wzór" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Istniejące kanały" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Istniejące reguły" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Etykieta" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Dopasowanie" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " pasuje do" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " pasuje do" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Wzorzec dopasowania" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Brak dostępnych kanałów." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Nie zdefiniowano kanałów." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Nie zdefiniowano reguł." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Szukaj frazy" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Wybierz kanał" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interwał" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Zacznij od załadowania" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Zasady pobierania" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Kanały" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Kanały torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tagi" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Dni" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Godziny" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Protokoły" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Przeznaczenie torrentów" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "Adres URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Nieprawidłowe wyrażenie regularne." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Musisz wybrać kanał." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Musisz określić miejsce docelowe." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Musisz określić etykietę." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Musisz podać poprawny adres URL kanału." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Pusty katalog." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Powódź nie ma uprawnień do odczytu tego katalogu." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Ta ścieżka nie istnieje. Zostanie utworzona." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Pobieranie struktury katalogu..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Wszystkie" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Aktywne" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Sprawdzanie" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Pobieranie" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Błąd" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Nieaktywny" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Zatrzymano" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtruj według statusu" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtruj według tagu" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtruj według trackera" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Nietagowane" + } + ], + "general.ago": [ + { + "type": 0, + "value": "temu" + } + ], + "general.at": [ + { + "type": 0, + "value": "w" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Skopiowano" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopiuj" + } + ], + "general.of": [ + { + "type": 0, + "value": "z" + } + ], + "general.to": [ + { + "type": 0, + "value": "do" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatyczne" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Wystąpił błąd podczas uruchamiania mediainfo na serwerze. Sprawdź, czy mediainfo jest zainstalowany i dostępny w PATH do powodzi." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Pobieranie..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Wyjście Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Wyczyść wszystko" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Wyświetlanie" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Błąd zgłoszony" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Pobieranie zakończone" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Nie pobieraj" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Wysoka" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Niski" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normalny" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "O powodzie" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Pobierz dzielnik slotów" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Pobierz gniazda globalne" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Pobierz miejsca na torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Dostępność miejsca" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Prześlij Dziedzictwo Slotów" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Prześlij Sloty globalne" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Prześlij Sloty na torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Rozwijane ustawienia: Pobierz" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Rozwijane ustawienia: Załaduj" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Globalna przepustnica szybkości pobierania" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Globalna przepustnica Szybkości Wysyłania" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Prędkość transferu przepustnicy" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Włącz DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Port DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Odkrycie zdecentralizowanego peera" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Połączenia przychodzące" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Zgłoszone IP/nazwa hosta" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maksymalna liczba połączeń HTTP" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Włącz wymianę peer" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Pożądane rówieśniki" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Uczestnicy" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maksymalna liczba peerów" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimalna liczba peerów" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maksymalna ilość seedów peerów" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimalne seedowanie peerów" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Otwórz port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Losowy port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Zakres portu" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Punkty montowania dysku" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Pokaż" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Zweryfikuj skrót po zakończeniu" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Domyślny katalog pobierania" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Dysk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maksymalna liczba otwartych plików" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Pamięć" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maksymalne zużycie pamięci" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "O programie" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Uwierzytelnianie" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Przepustowość" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Łączność" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Użycie dysku" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Ustawienia" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Zasoby" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interfejs użytkownika" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Kolumny szczegółów torrenta" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Język" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Język" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Włączone" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "W rozszerzonym widoku tagi działają najlepiej na końcu listy." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Wyświetlanie listy torrentów" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Rozmiar torrenta" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Skondensowany widok" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Widok rozszerzony" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Kanały" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Wyloguj" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Powiadomienia" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Ustawienia" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Ograniczenia prędkości" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Szukaj torrentów" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Pobrano" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Przesłano" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Nieograniczona" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Użycie dysku" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "z" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Dodaj torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Miejsce przeznaczenia" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Miejsce przeznaczenia" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Dodaj torrenty" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Uruchom torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "lub kliknij, aby przeglądać" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Upuść pliki tutaj," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Wg pliku" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "URL torrenta lub Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Według adresu URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tagi" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrenty" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Użyj jako ścieżki bazowej" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Wstrzymaj" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Rozpocznij" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Zatrzymaj" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Szczegóły" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Pliki" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Pobierz plik" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Pobierz pliki" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Ładowanie szczegółów pliku..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Komentarz" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " połączony z " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Dodano" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Data utworzenia" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Pobrano" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Wolne miejsce na dysku" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Ogólny" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Śledzenie" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Przelew" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Lokalizacja" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Brak" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Uczestnicy" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Harmonogram" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorowane" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "obfite" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Nasiona" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Rozmiar" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tagi" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Wiadomość trackera" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Prywatny" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publiczne" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Uczestnicy" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Brak danych peerów dla tego torrentu." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " wybrany plik" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " wybrano pliki" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Ustaw priorytet" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Śledzenie" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Brak danych trackera dla tego torrentu." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Nie można połączyć się z rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Wyczyść filtry" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Sprawdź hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Szczegóły torrenta" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Ustaw lokalizację torrenta" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Wstrzymaj" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priorytet" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Usuń" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Ustaw tagi" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Rozpocznij" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Zatrzymaj" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Upuść pliki tutaj, aby dodać je do rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Brak torrentów do wyświetlenia." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Ustaw lokalizację" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Ustawienie..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Sprawdź skrót" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Przenieś dane" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Ustaw lokalizację torrenta" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Ścieżka bazowa" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Komentarz" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Data utworzenia" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Dodano" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Prędkość pobierania" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Pobrano" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Wolne miejsce na dysku" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignoruj harmonogram" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Prywatny" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nazwisko" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Procent zakończony" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Stosunek" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Rozmiar pliku" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tagi" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Wiadomość trackera" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Prędkość przesyłania" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Przesłano" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Usuń torrenty" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Czy na pewno chcesz usunąć " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrenty" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrentów" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Usuń dane" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Nie wybrałeś żadnych torrentów." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Ustaw tagi" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Wprowadź tagi" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Ustaw tagi" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sortuj wg" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "ob" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "godz." + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "u rot ob" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "tyg." + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/pt.json b/client/src/javascript/i18n/compiled/pt.json new file mode 100644 index 000000000..030411e8b --- /dev/null +++ b/client/src/javascript/i18n/compiled/pt.json @@ -0,0 +1,2180 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Adicionar Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remover Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Iniciar Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Parar Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Configurações salvas com sucesso." + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Falha ao adicionar " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Movido com sucesso " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Falha ao mover " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent removido com sucesso" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Falha ao remover " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Adicionar Usuário" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Administrador" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "Tipo de Conexão rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Encaixe Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Criar conta" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Criar uma conta" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Bem vindo à Inundação!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Usuário atual" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Nome de usuário não pode estar vazio." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Iniciar sessão" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Conectar-se" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Usuário não é Administrador" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Palavra-passe" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "Host do rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "Porta de rTorrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "Encaixe rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "Caminho de soquete rTorrent" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Contas de usuário" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Usuário:" + } + ], + "button.add": [ + { + "type": 0, + "value": "Adicionar" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "cancelar" + } + ], + "button.new": [ + { + "type": 0, + "value": "Novidades" + } + ], + "button.no": [ + { + "type": 0, + "value": "Não" + } + ], + "button.save": [ + { + "type": 0, + "value": "Salvar Configurações" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Guardar" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adicionando..." + } + ], + "button.test": [ + { + "type": 0, + "value": "teste" + } + ], + "button.yes": [ + { + "type": 0, + "value": "sim" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Não é possível conectar-se ao rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "A conexão não pôde ser verificada." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Conexão bem sucedida" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Vamos verificar suas configurações de conexão." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Não é possível conectar-se ao rTorrent. Por favor, atualize a informação agora." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problema de conectividade" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Adicionar regra de download" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Adicionar Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Feed aplicável" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Aplicar Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Procurar feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Excluir" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Excluir padrão" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Feeds existentes" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Regras existentes" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Descrição" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Corresponder" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Padrão da Partida" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Não há feeds disponíveis." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Nenhum feeds definido." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Nenhuma regra definida." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx:" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Termo para pesquisa" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Selecionar Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervalo" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Iniciar ao carregar" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Baixar regras" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Conteúdos" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Feed de Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "dias" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "horas" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "minutos" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Destino do Torrent" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL:" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Expressão regular inválida." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Você precisa selecionar um feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Você deve especificar um destino." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Você deve especificar uma etiqueta." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Você deve especificar uma URL de feed válida." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Diretório vazio." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "O Flood não tem permissão para ler este diretório." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Este caminho não existe. Ele será criado." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Buscando estrutura de diretórios..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "TODOS" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "ativo" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Verificando" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Baixando" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "ERRO" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inativo" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Parado" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrar por status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrar por Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrar por Rastreador" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Desmarcado" + } + ], + "general.ago": [ + { + "type": 0, + "value": "Atrás" + } + ], + "general.at": [ + { + "type": 0, + "value": "em" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copiado" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "copiar" + } + ], + "general.of": [ + { + "type": 0, + "value": "de" + } + ], + "general.to": [ + { + "type": 0, + "value": "para" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automático" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Ocorreu um erro durante a execução de mediainfo no servidor. Verifique se a mediainfo está instalada e disponível no PATH para Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Buscando..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Saída Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Limpar Tudo" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Mostrando" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Erro relatado" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Download concluído" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Não baixar" + } + ], + "priority.high": [ + { + "type": 0, + "value": "alta" + } + ], + "priority.low": [ + { + "type": 0, + "value": "baixa" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Sobre Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Divisor de Slots" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Baixar Slots Globais" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Baixar Slots por Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Disponibilidade de Slot" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Divisor de Slots" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Carregar Slots Globais" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Carregar Slots por Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Predefinições Dropdown: Baixar" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Predefinições do Dropdown: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Taxa de Download Global" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Taxa de envio global" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Limite da Taxa de Transferência" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Habilitar DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Porta DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Descoberta Descentralizada de Pares" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Conexões de entrada" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "IP/Hostname reportado" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Conexões HTTP máximas" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Habilitar Troca de Pares" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Pares Desejados" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Pares" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Máximo de Pares" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Mínimo de Pares" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Semente Máxima de Pares" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Mínimo de Semeamento de Pares" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Porta Aberta" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomizar Porta" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Intervalo de Portas" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Pontos de Uso de Disco" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Apresentar" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verificar o Hash na Conclusão" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Diretório de download padrão" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disco" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Máximo de Arquivos Abertos" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memória" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Uso máximo de memória" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "SOBRE" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autenticação" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Banda" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Conectividade" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Uso do disco" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Confirgurações" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Recursos" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interface do usuário" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Colunas de Detalhes do Torrent" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "IDIOMA" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Localidade" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Ativado" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "Na exibição expandida, as tags funcionam melhor no final da lista." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Exibição de Lista de Torrent" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Tamanho do Torrent" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Vista Condensada" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Vista Expandida" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Conteúdos" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Encerrar Sessão" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "notificações" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Confirgurações" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Limite de Velocidade" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Procurar torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Baixado" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Enviado" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Ilimitado" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Uso do disco" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "de" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Adicionar Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destino" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destino" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Adicionar Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Iniciar Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "ou clique para navegar" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Solte alguns arquivos aqui," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Por Arquivo" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "URL do Torrent ou Link Magnet" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Por URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrentes" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Usar como caminho de base" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Suspender" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Iniciar" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Interromper" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "detalhes" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "arquivos" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Baixe o arquivo" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Baixe arquivos" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Carregando detalhes do arquivo..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comentar" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " conectado a " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Adicionado" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Data de Criação" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Baixado" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Espaço em disco livre" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Gerais" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Rastreador" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transferência" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Local:" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Nenhuma" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Pares" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Agendar" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorado" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obedecido" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Sementes" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Tamanho" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Mensagem do Rastreador" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "tipo" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privado" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Público" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Pares" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Não há dados de par para este torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " arquivo selecionado" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " arquivos selecionados" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Definir prioridade" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Rastreadores" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Não há dados do rastreador para este torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "tipo" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Não é possível conectar-se a rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Limpar Filtros" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Verificar o Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Detalhes do Torrent" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Definir local do Torrent" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Suspender" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioridade" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Excluir" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Definir Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Iniciar" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Interromper" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Solte arquivos aqui para adicioná-los ao rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Não há torrents para exibir." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Definir Local" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Configuração..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Verificar o hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Mover dados" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Definir local do Torrent" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Caminho de base" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comentar" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Data de Criação" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Adicionado" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Velocidade de Download" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Baixado" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Espaço em disco livre" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorar o Agendador" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privado" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nome:" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Porcentagem Completa" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Tarifa" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Tamanho do arquivo" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Etiquetas" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Mensagem do Rastreador" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Velocidade de Upload" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Enviado" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remover Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Você tem certeza que quer remover " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Apagar dados" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Você não selecionou nenhum torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Definir Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Insira tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Definir Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Classificar por" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "BR" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "KB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "Tb" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "HR" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "min" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "Semana" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ro.json b/client/src/javascript/i18n/compiled/ro.json new file mode 100644 index 000000000..275f079bb --- /dev/null +++ b/client/src/javascript/i18n/compiled/ro.json @@ -0,0 +1,2188 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Adaugă Torent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Elimină Torentul" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Pornește Torentul" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Oprește Torentul" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Setări salvate cu succes." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Ai adăugat cu succes " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Nu s-a putut adăuga " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Mutat cu succes " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Nu s-a reușit mutarea " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Ai eliminat cu succes " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Nu s-a reușit ștergerea " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Adaugă utilizator" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "tipul conexiunii rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Socket Unix" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Creare cont" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Creează un cont" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Bine ai venit la inundație!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Utilizator curent" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Numele de utilizator nu poate fi gol." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Autentificare" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Autentificare" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Utilizatorul nu este Administrator" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Parolă" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "gazdă rTorrent" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "port rTorrent" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "Socket rTorrent" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Calea Socket" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Conturi de utilizator" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Nume" + } + ], + "button.add": [ + { + "type": 0, + "value": "Adăugare" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Anulează" + } + ], + "button.new": [ + { + "type": 0, + "value": "Nou" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nr" + } + ], + "button.save": [ + { + "type": 0, + "value": "Salvează setările" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Salvează" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adăugare..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Testare" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Da" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Nu se poate conecta la rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Conexiunea nu a putut fi verificată." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Conexiune reușită" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Să verificăm setările de conexiune." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Nu se poate conecta la rTorrent. Vă rugăm să actualizaţi informaţiile acum." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problemă de conectivitate" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Adaugă Regulă de Descărcare" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Adaugă Flux" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Flux aplicabil" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Aplică etichete" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Răsfoiește feed-uri" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Excludere" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude modelul" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Fluxuri existente" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Reguli existente" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Etichetă" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Meci" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " meci" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " se potrivește" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Model de potrivire" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Nici un flux disponibil." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Nici un flux definit." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Nici o regulă definită." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Termenul de căutare" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Selectare flux" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Începe la încărcare" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Reguli de descărcare" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Fluxuri" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Fluxuri Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Etichete" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Zile" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Ore" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minute" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Destinația Torentului" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Expresie regulată invalidă." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Trebuie să selectaţi un flux." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Trebuie să specificați o destinație." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Trebuie să specificați o etichetă." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Trebuie să specificați un URL de feed valid." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Dosar gol." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Inundațiile nu au permisiunea de a citi acest director." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Această cale nu există. Va fi creată." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Se preia structura directorului..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Toate" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Activ" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Verificare" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Descărcare" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Eroare" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactiv" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Oprit" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrare după stare" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrare după etichetă" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrează după Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Neetichetat" + } + ], + "general.ago": [ + { + "type": 0, + "value": "acum" + } + ], + "general.at": [ + { + "type": 0, + "value": "la" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copiat" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copiază" + } + ], + "general.of": [ + { + "type": 0, + "value": "din" + } + ], + "general.to": [ + { + "type": 0, + "value": "către" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automat" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "A apărut o eroare în timpul executării mediainfo pe server. Verificați dacă mediainfo este instalat și disponibil în PATH pentru Inundație." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Preluare..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Ieșire mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Șterge tot" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Afișare" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Eroare raportată" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Descărcare finalizată" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Nu descărca" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Ridicat" + } + ], + "priority.low": [ + { + "type": 0, + "value": "scazut" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normală" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Despre Inundații" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Descarcă Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Descarcă sloturi globale" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Descarcă sloturi pe torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Disponibilitatea sloturilor" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Încarcă sloturile orare" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Încărcare sloturi globale" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Încarcă sloturi pe torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Presetări derulante: Descărcare" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Presetări derulante: Încărcare" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Globală Rata de Descărcare" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Zbor pentru rata globală de încărcare" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Rata de transfer" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Activează DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "Port DHT" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Descoperirea descentralizată a partenerului" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Conexiuni de intrare" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "IP/Hostname raportat" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maxim conexiuni HTTP" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Activează schimbul de parteneri" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Parteneri dornici" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Parteneri" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maxim Parteneri" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minim Parteneri" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Seeding Maxim Parteneri" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minim Seeding-ul Partenerilor" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Deschide portul" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Port aleator" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Interval port" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Puncte de folosire disc" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Afișare" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verifică Hash la Finalizare" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Directorul implicit pentru descărcări" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disc" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximul de fişiere deschise" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memorie" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Utilizare maximă memorie" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Despre" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autentificare" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Lățimea benzii" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Conectivitate" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Utilizare disc" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Setări" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resurse" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Interfață utilizator" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Coloane Torent Detaliu" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Limba" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Localizare" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Activat" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "În vizualizarea extinsă, etichetele funcționează cel mai bine la sfârșitul listei." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Afișare listă torrent" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Mărimea Torentului" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Vedere Condensată" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Vizualizare extinsă" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Fluxuri" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Ieșire din cont" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notificări" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Setări" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Limite de viteză" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Caută torente" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Descărcat" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Încărcat" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Nelimitat" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Utilizare disc" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "din" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Adaugă Torent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destinație" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destinație" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Adaugă Torente" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Pornește Torentul" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "sau faceţi clic pentru a naviga" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Pune niște fișiere aici," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "După fișier" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "URL-ul torrent-ului sau link-ul Magnet" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "După URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Etichete" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torente" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Folosiți ca cale de bază" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Întrerupeți" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Pornire" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Oprește" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Detalii" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Fișiere" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Descarcă fişierul" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Descarcă fişierele" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Se încarcă detaliile fișierului..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comentariu" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " conectat din " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Adăugat" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Data creării" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Descărcat" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Spațiu liber pe disc" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Generalități" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Urmaritor" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Locaţie" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Niciunul" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Parteneri" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Programator" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorat" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Dincolo" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Semințe" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Dimensiune" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Etichete" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Mesaj de urmărire" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Tip" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publice" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Parteneri" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Nu există date despre parteneri pentru acest torent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " a selectat fişierul" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " fişierele selectate" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Setare prioritate" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackeri" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Nu există date despre tracker pentru acest torent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Tip" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Nu se poate conecta la rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Șterge filtrele" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Verifică Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Detalii Torent" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Setează Locația Torentului" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Întrerupeți" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioritate" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Elimină" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Setare etichete" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Pornire" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Oprește" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Plasați fișierele aici pentru a le adăuga la rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Nu sunt torente de afișat." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Setează locația" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setare..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Verifică hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Mutați datele" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Setează Locația Torentului" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Calea de bază" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comentariu" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Data creării" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Adăugat" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Viteza de Descărcare" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Descărcat" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Spațiu liber pe disc" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignoră planificatorul" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Nume" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Procent complet" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Raport" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Dimensiune fișier" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Etichete" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Mesaj de urmărire" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Viteza de Încărcare" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Încărcat" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Elimină Torentele" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Ești sigur că vrei să ștergi " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrente" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrente" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Ștergere date" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Nu ai selectat niciun torent." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Setare etichete" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Introduceți etichetele" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Setare etichete" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sortează după" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "p" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GO" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "KO" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MO" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "oră" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "S" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/ru.json b/client/src/javascript/i18n/compiled/ru.json new file mode 100644 index 000000000..e2e470253 --- /dev/null +++ b/client/src/javascript/i18n/compiled/ru.json @@ -0,0 +1,2173 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Добавить торрент" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Удалить торрент" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Начать торрент" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Остановить торрент" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Настройки успешно сохранены." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Успешно добавлено " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Не удалось добавить " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Успешно перемещено " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Не удалось переместить " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Удалено " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Не удалось удалить " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрентов" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Добавить пользователя" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Админ" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "Тип соединения rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix сокет" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Создать Аккаунт" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Создать аккаунт" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Добро пожаловать в Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Текущий пользователь" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Имя пользователя не может быть пустым." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Войти" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Логин" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Пользователь не является администратором" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Пароль" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent хост" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Порт" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent сокет" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "Путь к сокету rTorrent" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Учетные записи пользователей" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Имя пользователя" + } + ], + "button.add": [ + { + "type": 0, + "value": "Добавить" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Отмена" + } + ], + "button.new": [ + { + "type": 0, + "value": "Новый" + } + ], + "button.no": [ + { + "type": 0, + "value": "Нет" + } + ], + "button.save": [ + { + "type": 0, + "value": "Сохранить настройки" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Сохранить" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Добавление..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Тест" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Да" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Не удается подключиться к rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Соединение не может быть проверено." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Успешное подключение" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Давайте проверим настройки подключения." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Не удается подключиться к rTorrent. Пожалуйста, обновите информацию сейчас." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Проблема с подключением" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Добавить правило загрузки" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Добавить канал" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Применимая лента" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Применить теги" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Просмотр каналов" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Исключить" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Исключить шаблон" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Существующие каналы" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Существующие правила" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Метка" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Матч" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " совпадает" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " совпадает" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Совпадение с шаблоном" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Нет доступных лент." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Каналы не определены." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Правила не определены." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "РегЭкс" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Поисковый термин" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Выбрать ленту" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Интервал" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Запуск при загрузке" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Правила загрузки" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Ленты" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Каналы торрентов" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Теги" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Дней" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Часы" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Минут" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Назначение торрента" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Неверное регулярное выражение." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Вы должны выбрать канал." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Вы должны указать место назначения." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Необходимо указать метку." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Вы должны указать корректный URL канала." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Пустой каталог." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood не имеет разрешения на чтение этого каталога." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Этот путь не существует. Он будет создан." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Получение структуры директорий..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Все" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Активный" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Проверка" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Скачивание" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Ошибка" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Неактивный" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Остановлено" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Фильтр по статусу" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Фильтр по тегу" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Фильтровать по трекеру" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Без тегов" + } + ], + "general.ago": [ + { + "type": 0, + "value": "назад" + } + ], + "general.at": [ + { + "type": 0, + "value": "в" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Скопировано" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Копировать" + } + ], + "general.of": [ + { + "type": 0, + "value": "из" + } + ], + "general.to": [ + { + "type": 0, + "value": "до" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Автоматически" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Произошла ошибка при запуске mediainfo на сервере. Убедитесь, что mediainfo установлен и доступен в PATH для Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Извлечение..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Вывод Mediainfo" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Очистить все" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Показано" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Сообщение об ошибке" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Загрузка завершена" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Не загружать" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Высокий" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Низкий" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Обычный" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "О Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Скачать Слоты Разделителя" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Скачать слоты по всему" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Скачать слоты на торрент" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Доступность слота" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Разделитель слотов загрузки" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Глобальная загрузка слотов" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Загрузить слоты на торрент" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Шаблоны комбобоксов: Скачать" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Шаблоны комбобоксов: Загрузить" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Глобальная скорость загрузки" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Глобальный тротттл скорости загрузки" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Процент трансфертов" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Включить DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT порт" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Децентрализованное обнаружение пиров" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Входящие соединения" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Сообщил IP/имя хоста" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Максимум HTTP-соединений" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Включить обмен пирами" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Желаемые узлы" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Личеры" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Максимум пиров" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Минимум пиров" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Максимум раздачи пиров" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Минимум раздачи пиров" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Открыть порт" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Случайный порт" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Диапазон портов" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Точки монтирования диска" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Показать" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Проверить хэш при завершении" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Папка загрузок по умолчанию" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Диск" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Максимальное количество открытых файлов" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Память" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Максимальное использование памяти" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "О программе" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Проверка подлинности" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Трафик" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Подключение" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Использование диска" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Настройки" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Ресурсы" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Интерфейс пользователя" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Детали Торрента" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Язык" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Язык" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Включено" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "В расширенном виде теги работают лучше в конце списка." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Отображение списка торрентов" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Размер торрента" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Сжатый вид" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Расширенный вид" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Ленты" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Выйти" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Уведомления" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Настройки" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Ограничения скорости" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Поиск торрентов" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Загружено" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Загружено" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Неограниченный" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Использование диска" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "из" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Добавить торрент" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Назначение" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Назначение" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Добавить торренты" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Начать торрент" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "или нажмите для просмотра" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Перетащите файлы сюда" + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "По файлу" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Торрент URL или Magnet ссылка" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "По URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Теги" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Торренты" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Использовать как базовый путь" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Пауза" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Начать" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Остановить" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Детали" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Файлы" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Скачайте файл" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Загрузите файлы" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Загрузка деталей файла..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Комментарий" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " подключено к " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Добавлено" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Дата создания" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Загружено" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Свободное место на диске" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Хэш" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Общие положения" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Торрент" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Трекер" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Перевод" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Местоположение" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Нет" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Личеры" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Планировщик" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Игнорировать" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Пробежал" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Сиды" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Размер" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Теги" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Сообщение трекера" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Тип" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Приватный" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Публичный" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Личеры" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Нет данных для этого торрента." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " Выбранный файл" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " выбрал файлы" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Установить приоритет" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Трекеры" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Для этого торрента нет данных трекера." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Тип" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Не удается подключиться к rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Очистить фильтры" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Проверить хэш" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Детали торрента" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Установить местоположение торрента" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Пауза" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Приоритет" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Удалить" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Установить теги" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Начать" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Остановить" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Перетащите файлы сюда, чтобы добавить их в rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Нет торрентов для отображения." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Установить местоположение" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Настройка..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Проверять хэш" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Переместить данные" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Установить местоположение торрента" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Базовый путь" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Комментарий" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Дата создания" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Добавлено" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Скорость загрузки" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Загружено" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Свободное место на диске" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Хэш" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Игнорировать планировщик" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Приватный" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Наименование" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Процент завершённых" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Коэффициент" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Размер файла" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Теги" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Сообщение трекера" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Скорость отдачи" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Загружено" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Удалить торренты" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Вы уверены, что хотите удалить " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " торрент" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " торренты" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "? ?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Удалить данные" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Вы не выбрали ни одного торрента." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Установить теги" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Введите теги" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Установить теги" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Сортировать по" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "В" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "Гб" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "кБ" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "МБ" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "ТБ" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/с" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "д" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "час" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "м" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "с" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "ск" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/sr.json b/client/src/javascript/i18n/compiled/sr.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/sr.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/strings.json b/client/src/javascript/i18n/compiled/strings.json new file mode 100644 index 000000000..e99a1f154 --- /dev/null +++ b/client/src/javascript/i18n/compiled/strings.json @@ -0,0 +1,2236 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/sv.json b/client/src/javascript/i18n/compiled/sv.json new file mode 100644 index 000000000..3e085f32b --- /dev/null +++ b/client/src/javascript/i18n/compiled/sv.json @@ -0,0 +1,2200 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Lägg till Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Ta bort Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Starta Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stoppa Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Inställningarna har sparats." + } + ], + "alert.torrent.add": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Kunde inte lägga till " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Framgångsrikt flyttat " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Det gick inte att flytta " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Lyckades ta bort " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Det gick inte att ta bort " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Lägg till användare" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Administratör" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Anslutningstyp" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Skapa konto" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Skapa ett konto" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Välkommen till översvämningen!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Nuvarande användare" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Användarnamnet får inte vara tomt." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Logga in" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Inloggning" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Användaren är inte Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Lösenord" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent värd" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket sökväg" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Användarkonton" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Användarnamn" + } + ], + "button.add": [ + { + "type": 0, + "value": "Lägg till" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Avbryt" + } + ], + "button.new": [ + { + "type": 0, + "value": "Ny" + } + ], + "button.no": [ + { + "type": 0, + "value": "Nej" + } + ], + "button.save": [ + { + "type": 0, + "value": "Spara inställningar" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Spara" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Lägger till..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Testa" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Ja" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Kan inte ansluta till rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Anslutningen kunde inte verifieras." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Anslutningen lyckades" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Låt oss verifiera dina anslutningsinställningar." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Kan inte ansluta till rTorrent. Vänligen uppdatera informationen nu." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Problem med anslutning" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Lägg till nedladdningsregel" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Lägg till flöde" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Tillämplig flöde" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Tillämpa taggar" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Bläddra bland flöden" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exkludera" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exkludera mönster" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Befintliga flöden" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Befintliga regler" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Etikett" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Matcha" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matcha" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matcha" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Matcha mönster" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Inga flöden tillgängliga." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Inga flöden har definierats." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Inga regler definierade." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Sök termin" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Välj flöde" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Intervall" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Starta vid laddning" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Ladda ner regler" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Flöden" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Flöden för Torrent" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Taggar" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Dagar" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Timmar" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minuter" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Ogiltigt reguljärt uttryck." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Du måste välja ett flöde." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Du måste ange en destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Du måste ange en etikett." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Du måste ange en giltig flödes-URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Tom katalog." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Översvämningen har inte behörighet att läsa denna katalog." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Denna väg existerar inte. Den kommer att skapas." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Hämtar katalogstruktur..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Alla" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Aktiv" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Kontrollerar" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Hämtar" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Fel" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inaktiv" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stoppad" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filtrera efter status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filtrera efter tagg" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filtrera efter Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Otaggade" + } + ], + "general.ago": [ + { + "type": 0, + "value": "sedan" + } + ], + "general.at": [ + { + "type": 0, + "value": "vid" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Kopierad" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Kopiera" + } + ], + "general.of": [ + { + "type": 0, + "value": "av" + } + ], + "general.to": [ + { + "type": 0, + "value": "till" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatisk" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Ett fel uppstod när mediainfo kördes på servern. Kontrollera att mediainfo är installerat och tillgängligt i PATH till Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Hämtar..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo utdata" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Rensa alla" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Visar" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Fel rapporterat" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Hämtning slutförd" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Ladda inte ner" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Hög" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Låg" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Om översvämning" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Hämta Slots Delare" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Ladda ner Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Ladda ner Slots per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Tillgänglighet för Slot" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Ladda upp Slots Delare" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Ladda upp Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Ladda upp Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown förinställningar: Ladda ner" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown förinställningar: Ladda upp" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global nedladdningshastighet Trottel" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global uppladdningshastighet Trottel" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Överföring hastighet trottoarer" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Aktivera DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentraliserad Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Inkommande anslutningar" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Rapporterat IP/värdnamn" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximal HTTP-anslutning" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Aktivera Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Jämlikar önskade" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Klienter" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximalt antal klienter" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minsta antal klienter" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximal klientfröning" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minsta antal klienter Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Öppna port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Slumpa port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Portens intervall" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk användning monteringspunkter" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Visa" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verifiera Hash vid slutförd" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Förvald nedladdningsmapp" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Diskett" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximalt antal öppna filer" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Minne" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Maximal minnesanvändning" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Om" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Autentisering" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandbredd" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Anslutning" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Diskanvändning" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Inställningar" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resurser" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Användargränssnitt" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detaljkolumner" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Språk" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Lokalt" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Aktiverad" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "I den utvidgade vyn fungerar taggar bäst i slutet av listan." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Visning av torrentlista" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Storlek" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Kondenserad vy" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Utökad vy" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Flöden" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Logga ut" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Aviseringar" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Inställningar" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Hastighetsgränser" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Sök torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Nedladdad" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uppladdad" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Obegränsad" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Diskanvändning" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "av" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Lägg till Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Mål" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Mål" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Lägg till Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Starta Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "eller klicka för att bläddra" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Släpp några filer här," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "Efter fil" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL eller Magnet länk" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "Efter URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Taggar" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Använd som grundsökväg" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pausa" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Starta" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stoppa" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Detaljer" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Filer" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Ladda ner fil" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Ladda ner filer" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Laddar fildetalj..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " ansluten till " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Tillagd" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Skapad datum" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Nedladdad" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Ledigt diskutrymme" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Allmänt" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Spårare" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Överföring" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Plats" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Ingen" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Klienter" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Schemaläggare" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignorerad" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Lydd" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Frön" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Storlek" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Taggar" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Spårare Meddelande" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Publik" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Klienter" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Det finns inga peer-data för denna torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " vald fil" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " valda filer" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Ange prioritet" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Spårare" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Det finns ingen spårningsdata för denna torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Typ" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Kan inte ansluta till rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Rensa filter" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Kontrollera hasch" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Detaljer" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Ange torrentplats" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pausa" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Prioritet" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Radera" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Ange taggar" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Starta" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stoppa" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Släpp filer här för att lägga till dem i rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Inga torrents att visa." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Ange plats" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Inställer..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Kontrollera hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Flytta data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Ange torrentplats" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Bas sökväg" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Kommentar" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Skapad datum" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Tillagd" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Ladda ner hastighet" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Nedladdad" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Ledigt diskutrymme" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignorera schemaläggare" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Privat" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Namn" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Procent slutförd" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Förhållande" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Filstorlek" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Taggar" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Spårare Meddelande" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Ladda upp hastighet" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uppladdad" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Ta bort torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Är du säker på att du vill ta bort " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Ta bort data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Du har inte valt några torrenter." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Ange taggar" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Ange taggar" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Ange taggar" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sortera efter" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "Tuberkulos" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "tim" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "vk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/tr.json b/client/src/javascript/i18n/compiled/tr.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/tr.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/uk.json b/client/src/javascript/i18n/compiled/uk.json new file mode 100644 index 000000000..726f2a726 --- /dev/null +++ b/client/src/javascript/i18n/compiled/uk.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Додати Торрент" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Прибрати торент" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Почати торент" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Зупинити торрент" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Налаштування успішно збережені." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Успішно додано " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Не вдалося додати " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Успішно переміщено " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Не вдалося перемістити " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Успішно видалено " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Не вдалося видалити " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "торент" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "торрент" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Добавити користувача" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Адмін" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "тип підключення rTorrent" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Унікальний сокет" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Створити обл. запис" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Створити акаунт" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Ласкаво просимо до Флуту!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Поточний користувач" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Ім'я користувача не може бути порожнім." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Увійти" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Логін" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "Користувач не є адміністратором" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Пароль" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Хост" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent порт" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Сокет" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "RTorrent Socket шлях" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "Облікові записи користувачів" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Ім'я користувача" + } + ], + "button.add": [ + { + "type": 0, + "value": "Додати" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Скасувати" + } + ], + "button.new": [ + { + "type": 0, + "value": "Новий" + } + ], + "button.no": [ + { + "type": 0, + "value": "Ні" + } + ], + "button.save": [ + { + "type": 0, + "value": "Зберегти Налаштування" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Зберегти" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Додаємо..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Тест" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Так" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Не вдається підключитися до rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Неможливо перевірити підключення." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "З'єднання успішне" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Давайте перевіримо ваші параметри підключення." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Не вдається підключитися до rTorrent. Зараз необхідно оновити інформацію." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Проблема з підключенням" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Додати правило завантаження" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Добавити RSS Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Стрічка додатків" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Застосувати мітки" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Перегляд стрічок" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Не включати" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Виключити ключ" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Існуючі подачі" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Існуючі правила" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Мітка" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Матч" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " співпадають" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " матчів" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Шаблон матчу" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "Немає доступних каналів." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "Каналів не визначено." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "Правила не визначені." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "Реджекс" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Шукати за словом" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Вибрати стрічку" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Проміжок" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Запустити при завантаженні" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Правила завантаження" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Стрічки новин" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Торент фіди" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Мітки" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Днів" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Годин" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Хвилин" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Призначення торенту" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "Адреса" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Недійсний регулярний вираз." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "Ви повинні вибрати канал." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "Ви повинні вказати місце призначення." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "Будь ласка, вкажіть мітку." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "Необхідно вказати дійсний URL каналу." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Тека порожня." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Флуд не має дозволу на читання цієї теки." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "Цей шлях не існує. Він буде створений." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Отримання структури каталогу..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "Всі" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Активний" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Перевірка" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Завантажується" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Помилка" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Неактивний" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Зупинено" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Фільтр за станом" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Фільтр за ярликами" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Фільтр по трекеру" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Без тегів" + } + ], + "general.ago": [ + { + "type": 0, + "value": "тому" + } + ], + "general.at": [ + { + "type": 0, + "value": "під" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Скопійовано" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Копія" + } + ], + "general.of": [ + { + "type": 0, + "value": "з" + } + ], + "general.to": [ + { + "type": 0, + "value": "по" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Автоматично" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "Виникла помилка під час роботи mediainfo на сервері. Перевірте, що mediainfo встановлений і доступний у PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Отримання..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Вивід Середньовіччя" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Очистити все" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Показано" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Повідомлення про помилку" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Завершене завантаження" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Не завантажувати" + } + ], + "priority.high": [ + { + "type": 0, + "value": "Високий" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Низька" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Нормальний" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "Про Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Завантажити розділювач слотів" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Завантажити слоти глобальним" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Завантажити слоти на торент" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Наявність слоту" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Завантажити розділювач слотів" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Глобальна передача слотів" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Відвантажити слоти за торент" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Пресети випадаючого списку: Завантажити" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Пресети випадаючого списку: Завантаження" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Збільшення швидкості завантаження" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Збільшення швидкості вивантаження" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Збільшення швидкості передачі" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Увімкнути DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT порт" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Децентралізований канал для учасника" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Вхідні підключення" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Повідомлено IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Максимальна HTTP підключень" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Увімкнути обмін учасниками" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Учасників Бажано" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Учасники" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Максимальна кількість учасників" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Мінімум учасників" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Максимальна кількість учасників роздачі" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Мінімум учасників на роздачі" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Відкритий порт" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Перемішати порт" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Діапазон портів" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Очки для використання диску" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Показати" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Перевірити хеш при завершенні" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Тека для завантажень за замовчуванням" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Диск" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Максимум відкритих файлів" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Пам'ять" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Макс. використання пам'яті" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "Про програму" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Автентифікація" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Ширина пропускної здатності" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Підключення" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Використання диску" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Налаштування" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Ресурси" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "Інтерфейс користувача" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Стовпці подробиць торенту" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Мова:" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Локалізація" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Увімкнено" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "У розширеному перегляді теги в кінці списку працюють найкраще." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Відображення торрентів" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Розмір торенту" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Стиснутий вигляд" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Розширений вигляд" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Стрічки новин" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Вийти з системи" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Сповіщення" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Налаштування" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Обмеження швидкості" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Пошук торентів" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Завантажено" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Відвантажено" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Необмежено" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Використання диску" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "з" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Додати Торрент" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Пункт призначення" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Пункт призначення" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Додати торенти" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Почати торент" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "або клацніть для перегляду" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Перетягніть сюди файли," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "За файлом" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Адреса торенту або Magnet-посилання" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "За URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Мітки" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Торенти" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Використовувати як Базовий шлях" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Пауза" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Старт" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Зупинити" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Подробиці" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Файли" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Завантажити файл" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Завантажити файл" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Завантаження подробиць файлу..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Коментар" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " підключено до " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Додано" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Дата створення" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Завантажено" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Вільний дисковий простір" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Хеш" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "Загальні налаштування" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Торент" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Трекер" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Переказ" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Місцезнаходження" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "Без ефекту" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Учасники" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Планувальник" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ігнорується" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Підборіддя" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Насіння" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Розмір" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Мітки" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Трекер повідомлення" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Тип" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Приватний" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Загальнодоступна" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Учасники" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "Немає даних для учасників цього торенту." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " Обраний файл" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " обрані файли" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Встановити пріоритет" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Трекери" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "Немає даних трекеру для цього торенту." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Тип" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Не вдалося підключитися до rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Скинути фільтри" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Перевірити хеш" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Деталі торенту" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Встановити розташування торентів" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Пауза" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Пріоритет" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Видалити" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Встановити позначки" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Старт" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Зупинити" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Перетягніть файли сюди, щоб додати їх в rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "Немає торентів для відображення." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Задати місцезнаходження" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Налаштування..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Перевірити хеш" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Переміщення даних" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Встановити розташування торентів" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Основний шлях" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Коментар" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Дата створення" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Додано" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Швидкість завантаження" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Завантажено" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Вільний дисковий простір" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Хеш" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ігнорувати планувальник" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Приватний" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Ім'я" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Процент завершено" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Співвідношення" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "Розмір файлу" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Мітки" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Трекер повідомлення" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Швидкість вивантаження" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Відвантажено" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Вилучити торенти" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Ви впевнені, що хочете видалити " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " торент" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " торрентів" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Видалити дані" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "Ви не вибрали жодного торенту." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Встановити позначки" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Введіть мітки" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Встановити позначки" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Сортувати за" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "Сі" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "ГБ" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "кБ" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "МБ" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "ТБ" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/с" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "д" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "год" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "м" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "с" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "тижд" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/vi.json b/client/src/javascript/i18n/compiled/vi.json new file mode 100644 index 000000000..ee4074b4e --- /dev/null +++ b/client/src/javascript/i18n/compiled/vi.json @@ -0,0 +1,2212 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "Remove Torrent" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "Stop Torrent" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "Successfully saved settings." + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "Successfully added " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "Failed to add " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "Successfully moved " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "Failed to move " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "Successfully removed " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "Failed to remove " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "." + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "Add User" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "Admin" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent Connection Type" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "Create Account" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "Create an account" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "Welcome to Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "Current User" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "Username cannot be empty." + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "Log In" + } + ], + "auth.login": [ + { + "type": 0, + "value": "Login" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "User is not Admin" + } + ], + "auth.password": [ + { + "type": 0, + "value": "Password" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent Host" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent Port" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket Path" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "User Accounts" + } + ], + "auth.username": [ + { + "type": 0, + "value": "Username" + } + ], + "button.add": [ + { + "type": 0, + "value": "Add" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "Cancel" + } + ], + "button.new": [ + { + "type": 0, + "value": "New" + } + ], + "button.no": [ + { + "type": 0, + "value": "No" + } + ], + "button.save": [ + { + "type": 0, + "value": "Save Settings" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "Save" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "Adding..." + } + ], + "button.test": [ + { + "type": 0, + "value": "Test" + } + ], + "button.yes": [ + { + "type": 0, + "value": "Yes" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "Cannot connect to rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "Connection could not be verified." + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "Connection successful" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "Let's verify your connection settings." + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "Cannot connect to rTorrent. Please update the information now." + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "Connectivity Issue" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "Add Download Rule" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "Add Feed" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "Applicable Feed" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "Apply Tags" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "Browse feeds" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "Exclude" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "Exclude Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "Existing Feeds" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "Existing Rules" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "Label" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "Match" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "Match Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "No feeds available." + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "No feeds defined." + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "No rules defined." + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "RegEx" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "Search term" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "Select Feed" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "Interval" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "Start on load" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "Download Rules" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "Torrent Feeds" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "Days" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "Hours" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "Minutes" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "Torrent Destination" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "URL" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "Invalid regular expression." + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "You must select a feed." + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "You must specify a destination." + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "You must specify a label." + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "You must specify a valid feed URL." + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "Empty directory." + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood does not have permission to read this directory." + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "This path does not exist. It will be created." + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "Fetching directory structure..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "All" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "Active" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "Checking" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "Complete" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "Downloading" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "Error" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "Inactive" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "Stopped" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "Filter by Status" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "Filter by Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "Filter by Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "Untagged" + } + ], + "general.ago": [ + { + "type": 0, + "value": "ago" + } + ], + "general.at": [ + { + "type": 0, + "value": "at" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "Copied" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "Copy" + } + ], + "general.of": [ + { + "type": 0, + "value": "of" + } + ], + "general.to": [ + { + "type": 0, + "value": "to" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "Automatic" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood." + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "Fetching..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo Output" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "Clear All" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "Showing" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "Error Reported" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "Finished Downloading" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "Don't Download" + } + ], + "priority.high": [ + { + "type": 0, + "value": "High" + } + ], + "priority.low": [ + { + "type": 0, + "value": "Low" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "Normal" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "About Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "Download Slots Divider" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "Download Slots Global" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "Download Slots Per Torrent" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "Slot Availability" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "Upload Slots Divider" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "Upload Slots Global" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "Upload Slots Per Torrent" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "Dropdown Presets: Download" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "Dropdown Presets: Upload" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "Global Download Rate Throttle" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "Global Upload Rate Throttle" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "Transfer Rate Throttles" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "Enable DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT Port" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "Decentralized Peer Discovery" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "Incoming Connections" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "Reported IP/Hostname" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "Maximum HTTP Connections" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "Enable Peer Exchange" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "Peers Desired" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "Peers" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "Maximum Peers" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "Minimum Peers" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "Maximum Peers Seeding" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "Minimum Peers Seeding" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "Open Port" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "Randomize Port" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "Port Range" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "Disk Usage Mount Points" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "Show" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "Verify Hash on Completion" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "Default Download Directory" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "Disk" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "Maximum Open Files" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "Memory" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "Max Memory Usage" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "About" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "Authentication" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "Bandwidth" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "Connectivity" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "Settings" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "Resources" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "User Interface" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "Torrent Detail Columns" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "Language" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "Locale" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "Enabled" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "In the expanded view, tags work best at the end of the list." + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "Torrent List Display" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "Torrent Size" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "Condensed View" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "Expanded View" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "Feeds" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "Log Out" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "Settings" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "Speed Limits" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "Search torrents" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "Unlimited" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "Disk Usage" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "of" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "of" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "Add Torrent" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "Destination" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "Add Torrents" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "Start Torrent" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "or click to browse" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "Drop some files here," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "By File" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "Torrent URL or Magnet Link" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "By URL" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "Torrents" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "Use as Base Path" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "Details" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "Files" + } + ], + "torrents.details.files.download.file": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "Download File" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "Download Files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "Loading file detail..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.details.general.connected": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " connected of " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "General" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "Torrent" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "Transfer" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "Location" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "None" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "Scheduler" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "Ignored" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "Obeyed" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "Size" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "Public" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "There is no peer data for this torrent." + } + ], + "torrents.details.selected.files": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected file" + } + ] + }, + "other": { + "value": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " selected files" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "Set Priority" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "There is no tracker data for this torrent." + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "Type" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "Cannot connect to rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "Clear Filters" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "Check Hash" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "Torrent Details" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "Pause" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "Priority" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "Remove" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "Start" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "Stop" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "Drop files here to add them to rTorrent." + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "No torrents to display." + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "Set Location" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "Setting..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "Check hash" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "Move data" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "Set Torrent Location" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "Base Path" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "Comment" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "Creation Date" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "Added" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "Download Speed" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "Downloaded" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "ETA" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "Free Disk Space" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "Ignore Scheduler" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "Private" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "Name" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "Percent Complete" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "Ratio" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "File Size" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "Tags" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker Message" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "Upload Speed" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "Uploaded" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "Remove Torrents" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "Are you sure you want to remove " + }, + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrent" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " torrents" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + }, + { + "type": 0, + "value": "?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "Delete data" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "You haven't selected any torrents." + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "Enter tags" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "Set Tags" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "Sort By" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "d" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "hr" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "m" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "s" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "wk" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "yr" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/zh-Hans.json b/client/src/javascript/i18n/compiled/zh-Hans.json new file mode 100644 index 000000000..adb7579cd --- /dev/null +++ b/client/src/javascript/i18n/compiled/zh-Hans.json @@ -0,0 +1,1928 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "添加种子" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "移除种子" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "启动种子" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "停止种子" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "设置保存成功!" + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "成功添加 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子。" + } + ], + "alert.torrent.add.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子添加失败。" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "移动 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子成功。" + } + ], + "alert.torrent.move.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子移动失败。" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "成功移除 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子。" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个种子移除失败。" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "增加用户" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "管理员" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent 连接类型" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "创建账号" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "创建一个账号" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "欢迎使用 Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "当前用户" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "用户名不能为空" + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "登录" + } + ], + "auth.login": [ + { + "type": 0, + "value": "登录" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "用户不是管理员" + } + ], + "auth.password": [ + { + "type": 0, + "value": "密码" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent 主机" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent 端口" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket 路径" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "用户账号" + } + ], + "auth.username": [ + { + "type": 0, + "value": "用户名" + } + ], + "button.add": [ + { + "type": 0, + "value": "新增" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "取消" + } + ], + "button.new": [ + { + "type": 0, + "value": "添加" + } + ], + "button.no": [ + { + "type": 0, + "value": "取消" + } + ], + "button.save": [ + { + "type": 0, + "value": "保存设置" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "保存" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "正在添加..." + } + ], + "button.test": [ + { + "type": 0, + "value": "测试" + } + ], + "button.yes": [ + { + "type": 0, + "value": "是" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "无法连接到 rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "无法建立连接。" + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "连接成功!" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "检查您的连接设置" + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "无法连接至 rTorrent. 请更新信息!" + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "连接失败" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "增加下载规则" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "添加订阅源" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "可用的订阅源" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "变更标签" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "浏览订阅源" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "排除" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "排除规则" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "现有的订阅源" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "现有的规则" + } + ], + "feeds.label": [ + { + "type": 0, + "value": "标签" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "匹配" + } + ], + "feeds.match.count": [ + { + "type": 0, + "value": "# 个匹配" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "匹配规则" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "没有可用的订阅源。" + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "没有定义订阅源。" + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "没有定义规则。" + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "正则" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "搜索关键词" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "选择订阅源" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "间隔" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "读取后开始" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "下载规则" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "订阅源" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "种子源" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "标签" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "天" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "时" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "分" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "下载位置" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "网址" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "无效的RegEx。" + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "你必须选择一个订阅源。" + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "你必须指定下载位置。" + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "你必须指定标签。" + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "你必须指定有效的订阅源网址。" + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "空目录。" + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood没有权限读取此目录。" + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "路径不存在,将会创建此目录。" + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "获取目录结构..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "全部" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "活动中" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "校验中" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "已完成" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "下载中" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "错误" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "非活动中" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "已停止" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "按状态筛选" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "按标签筛选" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "按Tracker筛选" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "无标签" + } + ], + "general.ago": [ + { + "type": 0, + "value": "前" + } + ], + "general.at": [ + { + "type": 0, + "value": "在" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "复制成功" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "复制" + } + ], + "general.of": [ + { + "type": 0, + "value": "的" + } + ], + "general.to": [ + { + "type": 0, + "value": "到" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "自动" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "在服务器上运行mediainfo时发生错误。检查mediainfo是否已经安装,并且在PATH中!" + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "获取中..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo 输出" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "全部清除" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "显示" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "错误报告" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "下载完成!" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "不下载" + } + ], + "priority.high": [ + { + "type": 0, + "value": "高" + } + ], + "priority.low": [ + { + "type": 0, + "value": "低" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "正常" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "关于Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "下载槽分配器" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "全局下载槽数" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "每个种子下载槽数" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "传输槽位限制" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "上传槽分配器" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "全局上传槽数" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "每个种子上传槽数" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "下载速度限制菜单" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "上传速度限制菜单" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "全局下载速度限制" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "全局上传速度限制" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "传输速度限制" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "开启 DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT 端口" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "分散式节点发现" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "传入连接" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "上报 IP/主机名" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "最大HTTP连接数" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "启用节点交换" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "期望节点数" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "节点" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "最大节点数" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "最小节点数" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "最大做种数" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "最小做种数" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "开放端口" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "随机端口" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "端口范围" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "磁盘挂载点" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "显示" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "完成后校验" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "默认下载目录" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "磁盘" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "最大打开文件数" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "内存" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "最大内存使用" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "关于" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "认证" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "带宽" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "连接" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "磁盘使用" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "设置" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "资源" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "用户接口" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "种子详情列表" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "语言" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "本地化" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "启用" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "在展开模式中,标签最好能够在列表末尾。" + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "种子列表显示模式" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "种子大小" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "紧凑模式" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "展开模式" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "订阅源" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "登出" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "通知" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "设置" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "速度限制" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "搜索种子" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "已下载" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "已上传" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "无限制" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "磁盘使用量" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " / " + }, + { + "type": 1, + "value": "total" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "/" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "添加种子" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "下载位置" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "下载位置" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "添加种子" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "开始下载" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "或点击浏览" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "将文件拖至此处," + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "上传文件" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "种子网址或磁力链接" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "从网址" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "标签" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "种子" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "作为基础路径" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "暂停" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "开始" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "详情" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "文件" + } + ], + "torrents.details.files.download.file": [ + { + "type": 0, + "value": "下载文件" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "正在加载详细信息..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "评论" + } + ], + "torrents.details.general.connected": [ + { + "type": 0, + "value": "已连接到 " + }, + { + "type": 1, + "value": "connected" + }, + { + "type": 0, + "value": " / " + }, + { + "type": 1, + "value": "total" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "添加时间" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "创建时间" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "已下载" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "可用磁盘空间" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "概况" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "种子" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "传输" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "位置" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "无" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "节点" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "调度器" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "已忽略" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "已遵守" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "做种者" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "大小" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "标签" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker 信息" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "类型" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "私有" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "公开" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "节点" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "这个种子没有节点信息。" + } + ], + "torrents.details.selected.files": [ + { + "type": 0, + "value": "已选择 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 个文件" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "设置优先级" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Tracker 服务器" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "这个种子没有 Tracker 信息。" + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "类型" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "无法连接到 rTorrent." + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "清除筛选" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "校验" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "种子详情" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "设置种子位置" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "暂停" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "优先级" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "移除" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "设置标签" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "开始" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "将文件拖放到此处,以添加到 rTorrent。" + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "没有可显示的种子。" + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "设置路径" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "设置中..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "校验" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "移动数据" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "设置种子路径" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "位置" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "备注" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "创建时间" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "添加时间" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "下载速度" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "已下载" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "剩余时间" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "可用磁盘空间" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "Hash" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "忽略调度器" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "私有" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "名称" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "完成百分比" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "分享率" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "文件大小" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "标签" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker 信息" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "上传速度" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "已上传" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "移除种子" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "你确定你想要删除 # 个种子" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "删除数据" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "您没有选择任何种子。" + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "设置标签" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "输入标签" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "设置标签" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "排序方式" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "kB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "天" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "时" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "分" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "秒" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "周" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "年" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/compiled/zh-Hant.json b/client/src/javascript/i18n/compiled/zh-Hant.json new file mode 100644 index 000000000..3fc5f335b --- /dev/null +++ b/client/src/javascript/i18n/compiled/zh-Hant.json @@ -0,0 +1,1966 @@ +{ + "actionbar.button.add.torrent": [ + { + "type": 0, + "value": "新增種子" + } + ], + "actionbar.button.remove.torrent": [ + { + "type": 0, + "value": "移除種子" + } + ], + "actionbar.button.start.torrent": [ + { + "type": 0, + "value": "開始下載" + } + ], + "actionbar.button.stop.torrent": [ + { + "type": 0, + "value": "停止下載" + } + ], + "alert.settings.saved": [ + { + "type": 0, + "value": "設定儲存成功。" + } + ], + "alert.torrent.add": [ + { + "type": 0, + "value": "成功新增 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子。" + } + ], + "alert.torrent.add.failed": [ + { + "type": 0, + "value": "新增 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子失敗。" + } + ], + "alert.torrent.move": [ + { + "type": 0, + "value": "成功移動 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子。" + } + ], + "alert.torrent.move.failed": [ + { + "type": 0, + "value": "移動 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子失敗。" + } + ], + "alert.torrent.remove": [ + { + "type": 0, + "value": "成功移除 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子。" + } + ], + "alert.torrent.remove.failed": [ + { + "type": 0, + "value": "移除 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個種子失敗。" + } + ], + "auth.add.user": [ + { + "type": 0, + "value": "新增使用者" + } + ], + "auth.admin": [ + { + "type": 0, + "value": "管理員" + } + ], + "auth.connectionType": [ + { + "type": 0, + "value": "rTorrent 連線類型" + } + ], + "auth.connectionType.socket": [ + { + "type": 0, + "value": "Unix Socket" + } + ], + "auth.connectionType.tcp": [ + { + "type": 0, + "value": "TCP" + } + ], + "auth.create.account": [ + { + "type": 0, + "value": "建立帳號" + } + ], + "auth.create.an.account": [ + { + "type": 0, + "value": "建立一個帳號" + } + ], + "auth.create.an.account.intro": [ + { + "type": 0, + "value": "歡迎使用 Flood!" + } + ], + "auth.current.user": [ + { + "type": 0, + "value": "目前使用者" + } + ], + "auth.error.username.empty": [ + { + "type": 0, + "value": "使用者名稱不可以留空!" + } + ], + "auth.log.in": [ + { + "type": 0, + "value": "登入" + } + ], + "auth.login": [ + { + "type": 0, + "value": "登入" + } + ], + "auth.login.intro": [ + { + "type": 0, + "value": "Log in to your account." + } + ], + "auth.message.not.admin": [ + { + "type": 0, + "value": "使用者不是管理員" + } + ], + "auth.password": [ + { + "type": 0, + "value": "密碼" + } + ], + "auth.rtorrentHost": [ + { + "type": 0, + "value": "rTorrent 主機" + } + ], + "auth.rtorrentPort": [ + { + "type": 0, + "value": "rTorrent 連接埠" + } + ], + "auth.rtorrentSocket": [ + { + "type": 0, + "value": "rTorrent Socket" + } + ], + "auth.rtorrentSocketPath": [ + { + "type": 0, + "value": "rTorrent Socket 路徑" + } + ], + "auth.user.accounts": [ + { + "type": 0, + "value": "使用者帳號" + } + ], + "auth.username": [ + { + "type": 0, + "value": "使用者名稱" + } + ], + "button.add": [ + { + "type": 0, + "value": "新增" + } + ], + "button.cancel": [ + { + "type": 0, + "value": "取消" + } + ], + "button.new": [ + { + "type": 0, + "value": "新增" + } + ], + "button.no": [ + { + "type": 0, + "value": "否" + } + ], + "button.save": [ + { + "type": 0, + "value": "儲存設定" + } + ], + "button.save.feed": [ + { + "type": 0, + "value": "儲存" + } + ], + "button.state.adding": [ + { + "type": 0, + "value": "新增中..." + } + ], + "button.test": [ + { + "type": 0, + "value": "測試" + } + ], + "button.yes": [ + { + "type": 0, + "value": "是" + } + ], + "connection-interruption.heading": [ + { + "type": 0, + "value": "無法連線到 rTorrent" + } + ], + "connection-interruption.verification-error": [ + { + "type": 0, + "value": "無法建立連線。" + } + ], + "connection-interruption.verification-success": [ + { + "type": 0, + "value": "連線成功" + } + ], + "connection-interruption.verify-settings-prompt": [ + { + "type": 0, + "value": "檢查連線設定。" + } + ], + "connectivity.modal.content": [ + { + "type": 0, + "value": "無法連線到 rTorrent。請更新連線資訊。" + } + ], + "connectivity.modal.title": [ + { + "type": 0, + "value": "連線問題" + } + ], + "dependency.loading.notifications": [ + { + "type": 0, + "value": "Notifications" + } + ], + "dependency.loading.torrent.list": [ + { + "type": 0, + "value": "Torrent List" + } + ], + "dependency.loading.torrent.taxonomy": [ + { + "type": 0, + "value": "Torrent Taxonomy" + } + ], + "dependency.loading.transfer.history": [ + { + "type": 0, + "value": "Data Transfer History" + } + ], + "dependency.loading.transfer.rate.details": [ + { + "type": 0, + "value": "Data Transfer Rate Details" + } + ], + "feeds.add.automatic.download.rule": [ + { + "type": 0, + "value": "新增下載規則" + } + ], + "feeds.add.feed": [ + { + "type": 0, + "value": "新增訊息來源" + } + ], + "feeds.applicable.feed": [ + { + "type": 0, + "value": "可使用的訊息來源" + } + ], + "feeds.apply.tags": [ + { + "type": 0, + "value": "套用標籤" + } + ], + "feeds.browse.feeds": [ + { + "type": 0, + "value": "瀏覽訊息來源" + } + ], + "feeds.exclude": [ + { + "type": 0, + "value": "除外" + } + ], + "feeds.exclude.pattern": [ + { + "type": 0, + "value": "例外Pattern" + } + ], + "feeds.existing.feeds": [ + { + "type": 0, + "value": "已存在的訊息來源" + } + ], + "feeds.existing.rules": [ + { + "type": 0, + "value": "已存在的規則 " + } + ], + "feeds.label": [ + { + "type": 0, + "value": "標籤" + } + ], + "feeds.match": [ + { + "type": 0, + "value": "符合" + } + ], + "feeds.match.count": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " match" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " matches" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "count" + } + ], + "feeds.match.pattern": [ + { + "type": 0, + "value": "符合Pattern" + } + ], + "feeds.no.feeds.available": [ + { + "type": 0, + "value": "沒有可用的訊息來源" + } + ], + "feeds.no.feeds.defined": [ + { + "type": 0, + "value": "沒有任何訊息來源" + } + ], + "feeds.no.rules.defined": [ + { + "type": 0, + "value": "沒有任何規則。" + } + ], + "feeds.regEx": [ + { + "type": 0, + "value": "正則表達式" + } + ], + "feeds.search": [ + { + "type": 0, + "value": "搜尋關鍵字" + } + ], + "feeds.select.feed": [ + { + "type": 0, + "value": "選擇訊息來源" + } + ], + "feeds.select.interval": [ + { + "type": 0, + "value": "內部" + } + ], + "feeds.start.on.load": [ + { + "type": 0, + "value": "讀取後開始" + } + ], + "feeds.tabs.download.rules": [ + { + "type": 0, + "value": "下載規則" + } + ], + "feeds.tabs.feeds": [ + { + "type": 0, + "value": "訊息來源(Feeds)" + } + ], + "feeds.tabs.heading": [ + { + "type": 0, + "value": "種子訊息來源(Feeds)" + } + ], + "feeds.tags": [ + { + "type": 0, + "value": "標籤" + } + ], + "feeds.time.day": [ + { + "type": 0, + "value": "日" + } + ], + "feeds.time.hr": [ + { + "type": 0, + "value": "小時" + } + ], + "feeds.time.min": [ + { + "type": 0, + "value": "分鐘" + } + ], + "feeds.torrent.destination": [ + { + "type": 0, + "value": "下載位置" + } + ], + "feeds.url": [ + { + "type": 0, + "value": "網址" + } + ], + "feeds.validation.interval.not.positive": [ + { + "type": 0, + "value": "The interval must be a positive integer." + } + ], + "feeds.validation.invalid.regular.expression": [ + { + "type": 0, + "value": "無效的正則表達式。" + } + ], + "feeds.validation.must.select.feed": [ + { + "type": 0, + "value": "你必須選擇一個訊息來源。" + } + ], + "feeds.validation.must.specify.destination": [ + { + "type": 0, + "value": "您必須指定下載位置。" + } + ], + "feeds.validation.must.specify.label": [ + { + "type": 0, + "value": "你必須指定標籤。" + } + ], + "feeds.validation.must.specify.valid.feed.url": [ + { + "type": 0, + "value": "你必須指定一個有效的訊息來源網址。" + } + ], + "filesystem.empty.directory": [ + { + "type": 0, + "value": "空白資料夾。" + } + ], + "filesystem.error.eacces": [ + { + "type": 0, + "value": "Flood 沒有權限去讀取資料夾的內容。" + } + ], + "filesystem.error.enoent": [ + { + "type": 0, + "value": "路徑不存在,系統會自動建立。" + } + ], + "filesystem.fetching": [ + { + "type": 0, + "value": "抓取資料夾結構中..." + } + ], + "filter.all": [ + { + "type": 0, + "value": "全部" + } + ], + "filter.status.active": [ + { + "type": 0, + "value": "活躍的" + } + ], + "filter.status.checking": [ + { + "type": 0, + "value": "檢查中" + } + ], + "filter.status.completed": [ + { + "type": 0, + "value": "已完成" + } + ], + "filter.status.downloading": [ + { + "type": 0, + "value": "下載中" + } + ], + "filter.status.error": [ + { + "type": 0, + "value": "錯誤" + } + ], + "filter.status.inactive": [ + { + "type": 0, + "value": "不活躍的" + } + ], + "filter.status.stopped": [ + { + "type": 0, + "value": "已停止" + } + ], + "filter.status.title": [ + { + "type": 0, + "value": "篩選狀態" + } + ], + "filter.tag.title": [ + { + "type": 0, + "value": "篩選 Tag" + } + ], + "filter.tracker.title": [ + { + "type": 0, + "value": "篩選 Tracker" + } + ], + "filter.untagged": [ + { + "type": 0, + "value": "未標籤" + } + ], + "general.ago": [ + { + "type": 0, + "value": "前" + } + ], + "general.at": [ + { + "type": 0, + "value": "於" + } + ], + "general.clipboard.copied": [ + { + "type": 0, + "value": "已複製" + } + ], + "general.clipboard.copy": [ + { + "type": 0, + "value": "複製" + } + ], + "general.of": [ + { + "type": 0, + "value": "的" + } + ], + "general.to": [ + { + "type": 0, + "value": "給" + } + ], + "locale.language.auto": [ + { + "type": 0, + "value": "自動" + } + ], + "mediainfo.execError": [ + { + "type": 0, + "value": "執行 MediaInfo 發生錯誤,請確認系統中有安裝 mediainfo 且該執行檔位於 PATH 變數中。" + } + ], + "mediainfo.fetching": [ + { + "type": 0, + "value": "抓取中..." + } + ], + "mediainfo.heading": [ + { + "type": 0, + "value": "Mediainfo輸出" + } + ], + "notification.clear.all": [ + { + "type": 0, + "value": "全部清除" + } + ], + "notification.showing": [ + { + "type": 0, + "value": "檢視" + } + ], + "notification.torrent.errored.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.errored.heading": [ + { + "type": 0, + "value": "錯誤回報" + } + ], + "notification.torrent.finished.body": [ + { + "type": 1, + "value": "name" + } + ], + "notification.torrent.finished.heading": [ + { + "type": 0, + "value": "下載完成" + } + ], + "priority.dont.download": [ + { + "type": 0, + "value": "不要下載" + } + ], + "priority.high": [ + { + "type": 0, + "value": "高優先權" + } + ], + "priority.low": [ + { + "type": 0, + "value": "低優先權" + } + ], + "priority.normal": [ + { + "type": 0, + "value": "中優先權" + } + ], + "settings.about.flood": [ + { + "type": 0, + "value": "關於Flood" + } + ], + "settings.bandwidth.slots.download.divider.label": [ + { + "type": 0, + "value": "下載數間隔" + } + ], + "settings.bandwidth.slots.download.global.label": [ + { + "type": 0, + "value": "最大同時下載數" + } + ], + "settings.bandwidth.slots.download.label": [ + { + "type": 0, + "value": "每個 Torrent 最大下載數" + } + ], + "settings.bandwidth.slots.heading": [ + { + "type": 0, + "value": "傳輸個數限制" + } + ], + "settings.bandwidth.slots.upload.divider.label": [ + { + "type": 0, + "value": "上傳數間隔" + } + ], + "settings.bandwidth.slots.upload.global.label": [ + { + "type": 0, + "value": "最大同時上傳數" + } + ], + "settings.bandwidth.slots.upload.label": [ + { + "type": 0, + "value": "每個 Torrent 最大上傳數" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.download.label": [ + { + "type": 0, + "value": "下拉選單可選擇下載速度" + } + ], + "settings.bandwidth.transferrate.dropdown.preset.upload.label": [ + { + "type": 0, + "value": "下拉選單可選擇上傳速度" + } + ], + "settings.bandwidth.transferrate.global.throttle.download": [ + { + "type": 0, + "value": "總下載速度限制" + } + ], + "settings.bandwidth.transferrate.global.throttle.upload": [ + { + "type": 0, + "value": "總上傳速度限制" + } + ], + "settings.bandwidth.transferrate.heading": [ + { + "type": 0, + "value": "傳輸速度限制" + } + ], + "settings.connectivity.dht.label": [ + { + "type": 0, + "value": "啟用 DHT" + } + ], + "settings.connectivity.dht.port.label": [ + { + "type": 0, + "value": "DHT 連接埠" + } + ], + "settings.connectivity.dpd.heading": [ + { + "type": 0, + "value": "分散式節點發現" + } + ], + "settings.connectivity.incoming.heading": [ + { + "type": 0, + "value": "連入連線" + } + ], + "settings.connectivity.ip.hostname.label": [ + { + "type": 0, + "value": "回報IP/主機名稱" + } + ], + "settings.connectivity.max.http.connections": [ + { + "type": 0, + "value": "最大 HTTP 連線" + } + ], + "settings.connectivity.peer.exchange.label": [ + { + "type": 0, + "value": "啟用節點交換" + } + ], + "settings.connectivity.peers.desired.label": [ + { + "type": 0, + "value": "需要節點數" + } + ], + "settings.connectivity.peers.heading": [ + { + "type": 0, + "value": "節點" + } + ], + "settings.connectivity.peers.max.label": [ + { + "type": 0, + "value": "最大節點數" + } + ], + "settings.connectivity.peers.min.label": [ + { + "type": 0, + "value": "最小節點數" + } + ], + "settings.connectivity.peers.seeding.max.label": [ + { + "type": 0, + "value": "最大作種節點數" + } + ], + "settings.connectivity.peers.seeding.min.label": [ + { + "type": 0, + "value": "最小作種節點數" + } + ], + "settings.connectivity.port.open.label": [ + { + "type": 0, + "value": "開放連接埠" + } + ], + "settings.connectivity.port.randomize.label": [ + { + "type": 0, + "value": "隨機連接埠" + } + ], + "settings.connectivity.port.range.label": [ + { + "type": 0, + "value": "連接埠範圍" + } + ], + "settings.diskusage.mount.points": [ + { + "type": 0, + "value": "掛載節點磁碟空間使用量" + } + ], + "settings.diskusage.show": [ + { + "type": 0, + "value": "顯示" + } + ], + "settings.resources.disk.check.hash.label": [ + { + "type": 0, + "value": "完成時驗證雜湊" + } + ], + "settings.resources.disk.download.location.label": [ + { + "type": 0, + "value": "預設下載資料夾" + } + ], + "settings.resources.disk.heading": [ + { + "type": 0, + "value": "磁碟" + } + ], + "settings.resources.max.open.files": [ + { + "type": 0, + "value": "最大開啟檔案數" + } + ], + "settings.resources.memory.heading": [ + { + "type": 0, + "value": "記憶體" + } + ], + "settings.resources.memory.max.label": [ + { + "type": 0, + "value": "最大記憶體使用量" + } + ], + "settings.tabs.about": [ + { + "type": 0, + "value": "關於" + } + ], + "settings.tabs.authentication": [ + { + "type": 0, + "value": "驗證" + } + ], + "settings.tabs.bandwidth": [ + { + "type": 0, + "value": "頻寬" + } + ], + "settings.tabs.connectivity": [ + { + "type": 0, + "value": "連線" + } + ], + "settings.tabs.diskusage": [ + { + "type": 0, + "value": "磁碟使用量" + } + ], + "settings.tabs.heading": [ + { + "type": 0, + "value": "設定" + } + ], + "settings.tabs.resources": [ + { + "type": 0, + "value": "資源" + } + ], + "settings.tabs.userinterface": [ + { + "type": 0, + "value": "使用者介面" + } + ], + "settings.ui.displayed.details": [ + { + "type": 0, + "value": "種子詳細資訊欄位" + } + ], + "settings.ui.language": [ + { + "type": 0, + "value": "語言" + } + ], + "settings.ui.locale": [ + { + "type": 0, + "value": "語系" + } + ], + "settings.ui.torrent.details.enabled": [ + { + "type": 0, + "value": "啟用" + } + ], + "settings.ui.torrent.details.tags.placement": [ + { + "type": 0, + "value": "在展開模式中,把標籤放在列表的最後一項會比較好。" + } + ], + "settings.ui.torrent.list": [ + { + "type": 0, + "value": "種子列表顯示模式" + } + ], + "settings.ui.torrent.size": [ + { + "type": 0, + "value": "種子大小" + } + ], + "settings.ui.torrent.size.condensed": [ + { + "type": 0, + "value": "壓縮模式" + } + ], + "settings.ui.torrent.size.expanded": [ + { + "type": 0, + "value": "展開模式" + } + ], + "sidebar.button.feeds": [ + { + "type": 0, + "value": "訊息來源" + } + ], + "sidebar.button.log.out": [ + { + "type": 0, + "value": "登出" + } + ], + "sidebar.button.notifications": [ + { + "type": 0, + "value": "通知" + } + ], + "sidebar.button.settings": [ + { + "type": 0, + "value": "設定" + } + ], + "sidebar.button.speedlimits": [ + { + "type": 0, + "value": "速度限制" + } + ], + "sidebar.search.placeholder": [ + { + "type": 0, + "value": "搜尋種子" + } + ], + "sidebar.speedlimits.download": [ + { + "type": 0, + "value": "DOWNLOAD" + } + ], + "sidebar.speedlimits.upload": [ + { + "type": 0, + "value": "UPLOAD" + } + ], + "sidebar.transferdata.downloaded": [ + { + "type": 0, + "value": "已下載" + } + ], + "sidebar.transferdata.uploaded": [ + { + "type": 0, + "value": "已上傳" + } + ], + "speed.unlimited": [ + { + "type": 0, + "value": "無限制" + } + ], + "status.diskusage.title": [ + { + "type": 0, + "value": "磁碟空間使用量" + } + ], + "torrent.list.peers": [ + { + "type": 1, + "value": "total" + }, + { + "type": 0, + "value": " 中的 " + }, + { + "type": 1, + "value": "connected" + } + ], + "torrent.list.peers.of": [ + { + "type": 0, + "value": "中的" + } + ], + "torrents.add.button.add": [ + { + "type": 0, + "value": "新增種子" + } + ], + "torrents.add.destination.label": [ + { + "type": 0, + "value": "下載位置" + } + ], + "torrents.add.destination.placeholder": [ + { + "type": 0, + "value": "下載位置" + } + ], + "torrents.add.heading": [ + { + "type": 0, + "value": "新增種子" + } + ], + "torrents.add.start.label": [ + { + "type": 0, + "value": "開始下載" + } + ], + "torrents.add.tab.file.browse": [ + { + "type": 0, + "value": "或點擊瀏覽" + } + ], + "torrents.add.tab.file.drop": [ + { + "type": 0, + "value": "拖曳檔案到這個視窗" + } + ], + "torrents.add.tab.file.title": [ + { + "type": 0, + "value": "從檔案" + } + ], + "torrents.add.tab.url.input.placeholder": [ + { + "type": 0, + "value": "種子網址或磁力連結" + } + ], + "torrents.add.tab.url.title": [ + { + "type": 0, + "value": "從網址" + } + ], + "torrents.add.tags": [ + { + "type": 0, + "value": "標籤" + } + ], + "torrents.add.torrents.label": [ + { + "type": 0, + "value": "種子" + } + ], + "torrents.destination.base_path": [ + { + "type": 0, + "value": "當作基本路徑" + } + ], + "torrents.details.actions.pause": [ + { + "type": 0, + "value": "暫停" + } + ], + "torrents.details.actions.start": [ + { + "type": 0, + "value": "開始" + } + ], + "torrents.details.actions.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.details.details": [ + { + "type": 0, + "value": "詳細資訊" + } + ], + "torrents.details.files": [ + { + "type": 0, + "value": "檔案" + } + ], + "torrents.details.files.download.file": [ + { + "type": 0, + "value": "下載檔案" + } + ], + "torrents.details.files.loading": [ + { + "type": 0, + "value": "讀取檔案詳細資訊..." + } + ], + "torrents.details.general.comment": [ + { + "type": 0, + "value": "評論" + } + ], + "torrents.details.general.connected": [ + { + "type": 0, + "value": "已連線到 " + }, + { + "type": 1, + "value": "total" + }, + { + "type": 0, + "value": " 中的 " + }, + { + "type": 1, + "value": "connected" + } + ], + "torrents.details.general.date.added": [ + { + "type": 0, + "value": "新增日期" + } + ], + "torrents.details.general.date.created": [ + { + "type": 0, + "value": "建立日期" + } + ], + "torrents.details.general.downloaded": [ + { + "type": 0, + "value": "已下載" + } + ], + "torrents.details.general.free.disk.space": [ + { + "type": 0, + "value": "可用磁碟空間" + } + ], + "torrents.details.general.hash": [ + { + "type": 0, + "value": "雜湊值" + } + ], + "torrents.details.general.heading.general": [ + { + "type": 0, + "value": "通用" + } + ], + "torrents.details.general.heading.torrent": [ + { + "type": 0, + "value": "種子" + } + ], + "torrents.details.general.heading.tracker": [ + { + "type": 0, + "value": "Tracker" + } + ], + "torrents.details.general.heading.transfer": [ + { + "type": 0, + "value": "傳輸" + } + ], + "torrents.details.general.location": [ + { + "type": 0, + "value": "位置" + } + ], + "torrents.details.general.none": [ + { + "type": 0, + "value": "無" + } + ], + "torrents.details.general.peers": [ + { + "type": 0, + "value": "節點" + } + ], + "torrents.details.general.scheduler": [ + { + "type": 0, + "value": "排程" + } + ], + "torrents.details.general.scheduler.ignored": [ + { + "type": 0, + "value": "忽略" + } + ], + "torrents.details.general.scheduler.obeyed": [ + { + "type": 0, + "value": "直接下載" + } + ], + "torrents.details.general.seeds": [ + { + "type": 0, + "value": "節點使用者" + } + ], + "torrents.details.general.size": [ + { + "type": 0, + "value": "大小" + } + ], + "torrents.details.general.tags": [ + { + "type": 0, + "value": "標籤" + } + ], + "torrents.details.general.tracker.message": [ + { + "type": 0, + "value": "Tracker訊息" + } + ], + "torrents.details.general.type": [ + { + "type": 0, + "value": "類型" + } + ], + "torrents.details.general.type.private": [ + { + "type": 0, + "value": "私有" + } + ], + "torrents.details.general.type.public": [ + { + "type": 0, + "value": "公開" + } + ], + "torrents.details.mediainfo": [ + { + "type": 0, + "value": "Mediainfo" + } + ], + "torrents.details.peers": [ + { + "type": 0, + "value": "節點" + } + ], + "torrents.details.peers.no.data": [ + { + "type": 0, + "value": "這個種子沒有任何節點資訊。" + } + ], + "torrents.details.selected.files": [ + { + "type": 0, + "value": "已選擇 " + }, + { + "type": 1, + "value": "countElement" + }, + { + "type": 0, + "value": " 個檔案" + } + ], + "torrents.details.selected.files.set.priority": [ + { + "type": 0, + "value": "設定優先權" + } + ], + "torrents.details.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.details.trackers.no.data": [ + { + "type": 0, + "value": "這個種子沒有任何 tracker 資訊。" + } + ], + "torrents.details.trackers.type": [ + { + "type": 0, + "value": "類型" + } + ], + "torrents.list.cannot.connect": [ + { + "type": 0, + "value": "無法連線到 rTorrent。" + } + ], + "torrents.list.clear.filters": [ + { + "type": 0, + "value": "清除篩選條件" + } + ], + "torrents.list.context.check.hash": [ + { + "type": 0, + "value": "檢查雜湊" + } + ], + "torrents.list.context.details": [ + { + "type": 0, + "value": "種子詳細資訊" + } + ], + "torrents.list.context.download": [ + { + "type": 0, + "value": "Download" + } + ], + "torrents.list.context.move": [ + { + "type": 0, + "value": "設定種子位置" + } + ], + "torrents.list.context.pause": [ + { + "type": 0, + "value": "暫停" + } + ], + "torrents.list.context.priority": [ + { + "type": 0, + "value": "優先權" + } + ], + "torrents.list.context.remove": [ + { + "type": 0, + "value": "移除" + } + ], + "torrents.list.context.set.tags": [ + { + "type": 0, + "value": "設定標籤" + } + ], + "torrents.list.context.start": [ + { + "type": 0, + "value": "開始" + } + ], + "torrents.list.context.stop": [ + { + "type": 0, + "value": "停止" + } + ], + "torrents.list.drop": [ + { + "type": 0, + "value": "將檔案拖曳到這裡來新增到 rTorrent。" + } + ], + "torrents.list.no.torrents": [ + { + "type": 0, + "value": "沒有任何種子可以顯示。" + } + ], + "torrents.move.button.set.location": [ + { + "type": 0, + "value": "設定下載位置" + } + ], + "torrents.move.button.state.setting": [ + { + "type": 0, + "value": "設定中..." + } + ], + "torrents.move.check_hash.label": [ + { + "type": 0, + "value": "檢查雜湊" + } + ], + "torrents.move.data.label": [ + { + "type": 0, + "value": "移動資料" + } + ], + "torrents.move.heading": [ + { + "type": 0, + "value": "設定下載位置" + } + ], + "torrents.properties.base.path": [ + { + "type": 0, + "value": "下載位置" + } + ], + "torrents.properties.comment": [ + { + "type": 0, + "value": "評論" + } + ], + "torrents.properties.creation.date": [ + { + "type": 0, + "value": "建立日期" + } + ], + "torrents.properties.date.added": [ + { + "type": 0, + "value": "新增日期" + } + ], + "torrents.properties.download.speed": [ + { + "type": 0, + "value": "下載速度" + } + ], + "torrents.properties.download.total": [ + { + "type": 0, + "value": "已下載" + } + ], + "torrents.properties.eta": [ + { + "type": 0, + "value": "剩餘時間" + } + ], + "torrents.properties.free.disk.space": [ + { + "type": 0, + "value": "可用磁碟空間" + } + ], + "torrents.properties.hash": [ + { + "type": 0, + "value": "雜湊" + } + ], + "torrents.properties.ignore.schedule": [ + { + "type": 0, + "value": "忽略排程" + } + ], + "torrents.properties.is.private": [ + { + "type": 0, + "value": "私有" + } + ], + "torrents.properties.name": [ + { + "type": 0, + "value": "任務名稱" + } + ], + "torrents.properties.peers": [ + { + "type": 0, + "value": "Peers" + } + ], + "torrents.properties.percentage": [ + { + "type": 0, + "value": "完成比例" + } + ], + "torrents.properties.ratio": [ + { + "type": 0, + "value": "分享率" + } + ], + "torrents.properties.seeds": [ + { + "type": 0, + "value": "Seeds" + } + ], + "torrents.properties.size": [ + { + "type": 0, + "value": "檔案大小" + } + ], + "torrents.properties.tags": [ + { + "type": 0, + "value": "標籤" + } + ], + "torrents.properties.tracker.message": [ + { + "type": 0, + "value": "Tracker 訊息" + } + ], + "torrents.properties.trackers": [ + { + "type": 0, + "value": "Trackers" + } + ], + "torrents.properties.upload.speed": [ + { + "type": 0, + "value": "上傳速度" + } + ], + "torrents.properties.upload.total": [ + { + "type": 0, + "value": "已上傳" + } + ], + "torrents.remove": [ + { + "type": 0, + "value": "移除種子" + } + ], + "torrents.remove.are.you.sure": [ + { + "type": 0, + "value": "你確定要移除這些種子嗎?" + } + ], + "torrents.remove.delete.data": [ + { + "type": 0, + "value": "刪除已下載檔案" + } + ], + "torrents.remove.error.no.torrents.selected": [ + { + "type": 0, + "value": "你沒有選擇任何種子。" + } + ], + "torrents.set.tags.button.set": [ + { + "type": 0, + "value": "設定標籤" + } + ], + "torrents.set.tags.enter.tags": [ + { + "type": 0, + "value": "輸入標籤" + } + ], + "torrents.set.tags.heading": [ + { + "type": 0, + "value": "設定標籤" + } + ], + "torrents.sort.title": [ + { + "type": 0, + "value": "排序方式" + } + ], + "unit.size.byte": [ + { + "type": 0, + "value": "B" + } + ], + "unit.size.gigabyte": [ + { + "type": 0, + "value": "GB" + } + ], + "unit.size.kilobyte": [ + { + "type": 0, + "value": "KB" + } + ], + "unit.size.megabyte": [ + { + "type": 0, + "value": "MB" + } + ], + "unit.size.terabyte": [ + { + "type": 0, + "value": "TB" + } + ], + "unit.speed": [ + { + "type": 1, + "value": "baseUnit" + }, + { + "type": 0, + "value": "/s" + } + ], + "unit.time.day": [ + { + "type": 0, + "value": "天" + } + ], + "unit.time.hour": [ + { + "type": 0, + "value": "時" + } + ], + "unit.time.infinity": [ + { + "type": 0, + "value": "∞" + } + ], + "unit.time.minute": [ + { + "type": 0, + "value": "分" + } + ], + "unit.time.second": [ + { + "type": 0, + "value": "秒" + } + ], + "unit.time.week": [ + { + "type": 0, + "value": "週" + } + ], + "unit.time.year": [ + { + "type": 0, + "value": "年" + } + ], + "window.title": [ + { + "type": 0, + "value": "↓ " + }, + { + "type": 1, + "value": "down" + }, + { + "type": 0, + "value": " ↑ " + }, + { + "type": 1, + "value": "up" + }, + { + "type": 0, + "value": " - Flood" + } + ] +} diff --git a/client/src/javascript/i18n/languages.ts b/client/src/javascript/i18n/languages.ts index fecb4ea46..212c875f0 100644 --- a/client/src/javascript/i18n/languages.ts +++ b/client/src/javascript/i18n/languages.ts @@ -1,23 +1,23 @@ -import EN from './strings.json'; +import EN from './compiled/strings.json'; -import CS from './translations/cs.json'; -import DE from './translations/de.json'; -import ES from './translations/es.json'; -import FR from './translations/fr.json'; -import IT from './translations/it.json'; -import NL from './translations/nl.json'; -import NO from './translations/no.json'; -import PL from './translations/pl.json'; -import PT from './translations/pt.json'; -import RU from './translations/ru.json'; -import RO from './translations/ro.json'; -import SV from './translations/sv.json'; -import UK from './translations/uk.json'; -import KO from './translations/ko.json'; -import JA from './translations/ja.json'; -import ZH_HANS from './translations/zh-Hans.json'; -import ZH_HANT from './translations/zh-Hant.json'; -import AR from './translations/ar.json'; +import CS from './compiled/cs.json'; +import DE from './compiled/de.json'; +import ES from './compiled/es.json'; +import FR from './compiled/fr.json'; +import IT from './compiled/it.json'; +import NL from './compiled/nl.json'; +import NO from './compiled/no.json'; +import PL from './compiled/pl.json'; +import PT from './compiled/pt.json'; +import RU from './compiled/ru.json'; +import RO from './compiled/ro.json'; +import SV from './compiled/sv.json'; +import UK from './compiled/uk.json'; +import KO from './compiled/ko.json'; +import JA from './compiled/ja.json'; +import ZH_HANS from './compiled/zh-Hans.json'; +import ZH_HANT from './compiled/zh-Hant.json'; +import AR from './compiled/ar.json'; export const languages = { auto: EN, diff --git a/package-lock.json b/package-lock.json index e01d0a252..8c75c8e9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1190,6 +1190,75 @@ "to-fast-properties": "^2.0.0" } }, + "@formatjs/cli": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-2.7.2.tgz", + "integrity": "sha512-n35hXbFKu25zMm3EzRbVZ5nJF8nn5EtOouhx1eTkLuPb1qfK2QyQsBCOth/yP3eaUgiTPnMwwHwZpa2TQPoVcA==", + "requires": { + "@formatjs/ts-transformer": "^2.7.1", + "@types/json-stable-stringify": "^1.0.32", + "@types/lodash": "^4.14.150", + "@types/loud-rejection": "^2.0.0", + "@types/node": "14", + "chalk": "^4.0.0", + "commander": "5.1.0", + "fast-glob": "^3.2.4", + "fs-extra": "^9.0.0", + "intl-messageformat-parser": "^5.4.0", + "json-stable-stringify": "^1.0.1", + "lodash": "^4.17.15", + "loud-rejection": "^2.2.0", + "typescript": "^3.8" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "@types/node": { + "version": "14.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", + "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==" + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, "@formatjs/intl-datetimeformat": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-2.4.1.tgz", @@ -1254,6 +1323,15 @@ } } }, + "@formatjs/ts-transformer": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.7.1.tgz", + "integrity": "sha512-Z5HGtKJ+rxTxpQ5niCogmTSbltdYJXHfpX99VnDJqt9g9W89eUsfRf7AJ3U1ItvBI+6+lGLzYIHoUuVkURPrBA==", + "requires": { + "intl-messageformat-parser": "^5.4.0", + "typescript": "^3.8" + } + }, "@hapi/address": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", @@ -1299,7 +1377,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" @@ -1308,8 +1385,7 @@ "@nodelib/fs.stat": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" } } }, @@ -1323,7 +1399,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" @@ -1495,12 +1570,30 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" }, + "@types/json-stable-stringify": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz", + "integrity": "sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw==" + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, + "@types/lodash": { + "version": "4.14.159", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.159.tgz", + "integrity": "sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg==" + }, + "@types/loud-rejection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/loud-rejection/-/loud-rejection-2.0.0.tgz", + "integrity": "sha512-oTHISsIybJGoh3b3Ay/10csbAd2k0su7G7DGrE1QWciC+IdydPm0WMw1+Gr9YMYjPiJ5poB3g5Ev73IlLoavLw==", + "requires": { + "loud-rejection": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -7655,7 +7748,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -10151,6 +10243,14 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -10192,6 +10292,11 @@ "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -10659,8 +10764,7 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -14212,8 +14316,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { "version": "3.0.2", @@ -14246,8 +14349,7 @@ "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" }, "run-queue": { "version": "1.0.3", @@ -16242,8 +16344,7 @@ "typescript": { "version": "3.9.7", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" }, "ua-parser-js": { "version": "0.7.19", diff --git a/package.json b/package.json index bc86f4bbb..a80f77b7f 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,10 @@ "build": "node client/scripts/build.js", "build-assets": "UPDATED_SCRIPT=build npm run deprecated-warning && npm run build", "build-docs": "jsdoc -c ./.jsdoc.json", + "build-i18n": "formatjs compile-folder --ast --format simple client/src/javascript/i18n client/src/javascript/i18n/compiled && formatjs compile-folder --ast --format simple client/src/javascript/i18n/translations client/src/javascript/i18n/compiled", "deprecated-warning": "node client/scripts/deprecated-warning.js && sleep 10", "format-source": "node scripts/prettier.js formatSource", + "check-compiled-i18n": "npm run build-i18n && npm run format-source && git diff --quiet client/src/javascript/i18n/compiled", "check-source-formatting": "node scripts/prettier.js check", "check-types": "tsc", "lint": "NODE_ENV=development eslint --max-warnings 0 . --ext .js --ext .jsx --ext .ts --ext .tsx", @@ -31,6 +33,7 @@ "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", "@babel/preset-typescript": "^7.10.4", + "@formatjs/cli": "^2.7.2", "@types/react-dom": "^16.9.8", "argon2": "^0.27.0", "autoprefixer": "^9.8.6", From d48c99f0e1790722c29a93bb0950678b07dec48b Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Fri, 14 Aug 2020 20:39:35 +0800 Subject: [PATCH 059/651] i18n: new placeholders (#12) --- client/src/javascript/i18n/compiled/af.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ar.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ca.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/cs.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/da.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/de.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/el.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/es.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/fi.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/fr.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/he.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/hu.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/it.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ja.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ko.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/nl.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/no.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/pl.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/pt.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ro.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/ru.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/sr.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/sv.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/tr.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/uk.json | 24 +++++++++++++++++++ client/src/javascript/i18n/compiled/vi.json | 24 +++++++++++++++++++ .../src/javascript/i18n/compiled/zh-Hans.json | 24 +++++++++++++++++++ .../src/javascript/i18n/compiled/zh-Hant.json | 24 +++++++++++++++++++ .../src/javascript/i18n/translations/af.json | 4 ++++ .../src/javascript/i18n/translations/ar.json | 4 ++++ .../src/javascript/i18n/translations/ca.json | 4 ++++ .../src/javascript/i18n/translations/cs.json | 4 ++++ .../src/javascript/i18n/translations/da.json | 4 ++++ .../src/javascript/i18n/translations/de.json | 4 ++++ .../src/javascript/i18n/translations/el.json | 4 ++++ .../src/javascript/i18n/translations/es.json | 4 ++++ .../src/javascript/i18n/translations/fi.json | 4 ++++ .../src/javascript/i18n/translations/fr.json | 4 ++++ .../src/javascript/i18n/translations/he.json | 4 ++++ .../src/javascript/i18n/translations/hu.json | 4 ++++ .../src/javascript/i18n/translations/it.json | 4 ++++ .../src/javascript/i18n/translations/ja.json | 4 ++++ .../src/javascript/i18n/translations/ko.json | 4 ++++ .../src/javascript/i18n/translations/nl.json | 4 ++++ .../src/javascript/i18n/translations/no.json | 4 ++++ .../src/javascript/i18n/translations/pl.json | 4 ++++ .../src/javascript/i18n/translations/pt.json | 4 ++++ .../src/javascript/i18n/translations/ro.json | 4 ++++ .../src/javascript/i18n/translations/ru.json | 4 ++++ .../src/javascript/i18n/translations/sr.json | 4 ++++ .../src/javascript/i18n/translations/sv.json | 4 ++++ .../src/javascript/i18n/translations/tr.json | 4 ++++ .../src/javascript/i18n/translations/uk.json | 4 ++++ .../src/javascript/i18n/translations/vi.json | 4 ++++ .../javascript/i18n/translations/zh-Hans.json | 4 ++++ .../javascript/i18n/translations/zh-Hant.json | 4 ++++ 56 files changed, 784 insertions(+) diff --git a/client/src/javascript/i18n/compiled/af.json b/client/src/javascript/i18n/compiled/af.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/af.json +++ b/client/src/javascript/i18n/compiled/af.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ar.json b/client/src/javascript/i18n/compiled/ar.json index 1cf645ad1..5ac512e9d 100644 --- a/client/src/javascript/i18n/compiled/ar.json +++ b/client/src/javascript/i18n/compiled/ar.json @@ -769,6 +769,12 @@ "value": "جلب بنية الدليل..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1351,12 +1357,30 @@ "value": "غير محدود" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "استخدام القرص" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ca.json b/client/src/javascript/i18n/compiled/ca.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/ca.json +++ b/client/src/javascript/i18n/compiled/ca.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/cs.json b/client/src/javascript/i18n/compiled/cs.json index 10c4915d0..ddbe2b359 100644 --- a/client/src/javascript/i18n/compiled/cs.json +++ b/client/src/javascript/i18n/compiled/cs.json @@ -769,6 +769,12 @@ "value": "Načítání adresářové struktury..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1351,12 +1357,30 @@ "value": "Bez omezení" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Využití disku" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/da.json b/client/src/javascript/i18n/compiled/da.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/da.json +++ b/client/src/javascript/i18n/compiled/da.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/de.json b/client/src/javascript/i18n/compiled/de.json index 77e0a8b26..9443a040c 100644 --- a/client/src/javascript/i18n/compiled/de.json +++ b/client/src/javascript/i18n/compiled/de.json @@ -769,6 +769,12 @@ "value": "Lade Verzeichnisstruktur ab..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1351,12 +1357,30 @@ "value": "Unbegrenzt" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Plattennutzung" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/el.json b/client/src/javascript/i18n/compiled/el.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/el.json +++ b/client/src/javascript/i18n/compiled/el.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/es.json b/client/src/javascript/i18n/compiled/es.json index cecda02bc..62d5dfe01 100644 --- a/client/src/javascript/i18n/compiled/es.json +++ b/client/src/javascript/i18n/compiled/es.json @@ -777,6 +777,12 @@ "value": "Cargando estructura de carpeta..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1359,12 +1365,30 @@ "value": "Sín Límite" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Uso del disco" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/fi.json b/client/src/javascript/i18n/compiled/fi.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/fi.json +++ b/client/src/javascript/i18n/compiled/fi.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/fr.json b/client/src/javascript/i18n/compiled/fr.json index 2da08cc46..5cbd35889 100644 --- a/client/src/javascript/i18n/compiled/fr.json +++ b/client/src/javascript/i18n/compiled/fr.json @@ -801,6 +801,12 @@ "value": "Récupération de la structure du répertoire..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1383,12 +1389,30 @@ "value": "Illimité" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Utilisation du disque" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/he.json b/client/src/javascript/i18n/compiled/he.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/he.json +++ b/client/src/javascript/i18n/compiled/he.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/hu.json b/client/src/javascript/i18n/compiled/hu.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/hu.json +++ b/client/src/javascript/i18n/compiled/hu.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/it.json b/client/src/javascript/i18n/compiled/it.json index db01ad51f..f978f038e 100644 --- a/client/src/javascript/i18n/compiled/it.json +++ b/client/src/javascript/i18n/compiled/it.json @@ -769,6 +769,12 @@ "value": "Recupero struttura directory..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1351,12 +1357,30 @@ "value": "Illimitato" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Uso Del Disco" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ja.json b/client/src/javascript/i18n/compiled/ja.json index 12bea97dc..a67be59f6 100644 --- a/client/src/javascript/i18n/compiled/ja.json +++ b/client/src/javascript/i18n/compiled/ja.json @@ -745,6 +745,12 @@ "value": "ディレクトリ構造を取得しています..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1327,12 +1333,30 @@ "value": "無制限です" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "ディスクの使用量" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ko.json b/client/src/javascript/i18n/compiled/ko.json index 6402f79ff..e2f3ded60 100644 --- a/client/src/javascript/i18n/compiled/ko.json +++ b/client/src/javascript/i18n/compiled/ko.json @@ -777,6 +777,12 @@ "value": "디렉토리 구조 가져오는 중..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1359,12 +1365,30 @@ "value": "무제한" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/nl.json b/client/src/javascript/i18n/compiled/nl.json index cefe25a39..89153a27b 100644 --- a/client/src/javascript/i18n/compiled/nl.json +++ b/client/src/javascript/i18n/compiled/nl.json @@ -801,6 +801,12 @@ "value": "Ophalen van map structuur..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1383,12 +1389,30 @@ "value": "Ongelimiteerd" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Schijf gebruik" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/no.json b/client/src/javascript/i18n/compiled/no.json index ccebcce6e..71c984e31 100644 --- a/client/src/javascript/i18n/compiled/no.json +++ b/client/src/javascript/i18n/compiled/no.json @@ -765,6 +765,12 @@ "value": "Henter mappestruktur char@@0" } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1347,12 +1353,30 @@ "value": "Ubegrenset" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Bruk av diskplass" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/pl.json b/client/src/javascript/i18n/compiled/pl.json index b2005dad0..fb6d7dfd2 100644 --- a/client/src/javascript/i18n/compiled/pl.json +++ b/client/src/javascript/i18n/compiled/pl.json @@ -793,6 +793,12 @@ "value": "Pobieranie struktury katalogu..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Nieograniczona" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Użycie dysku" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/pt.json b/client/src/javascript/i18n/compiled/pt.json index 030411e8b..a63612c98 100644 --- a/client/src/javascript/i18n/compiled/pt.json +++ b/client/src/javascript/i18n/compiled/pt.json @@ -761,6 +761,12 @@ "value": "Buscando estrutura de diretórios..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1343,12 +1349,30 @@ "value": "Ilimitado" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Uso do disco" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ro.json b/client/src/javascript/i18n/compiled/ro.json index 275f079bb..2dacfac4a 100644 --- a/client/src/javascript/i18n/compiled/ro.json +++ b/client/src/javascript/i18n/compiled/ro.json @@ -769,6 +769,12 @@ "value": "Se preia structura directorului..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1351,12 +1357,30 @@ "value": "Nelimitat" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Utilizare disc" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/ru.json b/client/src/javascript/i18n/compiled/ru.json index e2e470253..043365462 100644 --- a/client/src/javascript/i18n/compiled/ru.json +++ b/client/src/javascript/i18n/compiled/ru.json @@ -754,6 +754,12 @@ "value": "Получение структуры директорий..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1336,12 +1342,30 @@ "value": "Неограниченный" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Использование диска" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/sr.json b/client/src/javascript/i18n/compiled/sr.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/sr.json +++ b/client/src/javascript/i18n/compiled/sr.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/sv.json b/client/src/javascript/i18n/compiled/sv.json index 3e085f32b..c25e25941 100644 --- a/client/src/javascript/i18n/compiled/sv.json +++ b/client/src/javascript/i18n/compiled/sv.json @@ -781,6 +781,12 @@ "value": "Hämtar katalogstruktur..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1363,12 +1369,30 @@ "value": "Obegränsad" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Diskanvändning" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/tr.json b/client/src/javascript/i18n/compiled/tr.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/tr.json +++ b/client/src/javascript/i18n/compiled/tr.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/uk.json b/client/src/javascript/i18n/compiled/uk.json index 726f2a726..9b93912f2 100644 --- a/client/src/javascript/i18n/compiled/uk.json +++ b/client/src/javascript/i18n/compiled/uk.json @@ -793,6 +793,12 @@ "value": "Отримання структури каталогу..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Необмежено" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Використання диску" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/vi.json b/client/src/javascript/i18n/compiled/vi.json index ee4074b4e..e99a1f154 100644 --- a/client/src/javascript/i18n/compiled/vi.json +++ b/client/src/javascript/i18n/compiled/vi.json @@ -793,6 +793,12 @@ "value": "Fetching directory structure..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1375,12 +1381,30 @@ "value": "Unlimited" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "Disk Usage" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/zh-Hans.json b/client/src/javascript/i18n/compiled/zh-Hans.json index adb7579cd..62863ef0f 100644 --- a/client/src/javascript/i18n/compiled/zh-Hans.json +++ b/client/src/javascript/i18n/compiled/zh-Hans.json @@ -587,6 +587,12 @@ "value": "获取目录结构..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1169,12 +1175,30 @@ "value": "无限制" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "磁盘使用量" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/compiled/zh-Hant.json b/client/src/javascript/i18n/compiled/zh-Hant.json index 3fc5f335b..d80227fd9 100644 --- a/client/src/javascript/i18n/compiled/zh-Hant.json +++ b/client/src/javascript/i18n/compiled/zh-Hant.json @@ -625,6 +625,12 @@ "value": "抓取資料夾結構中..." } ], + "filesystem.parent.directory": [ + { + "type": 0, + "value": "Parent Directory" + } + ], "filter.all": [ { "type": 0, @@ -1207,12 +1213,30 @@ "value": "無限制" } ], + "status.diskusage.free": [ + { + "type": 0, + "value": "Free" + } + ], "status.diskusage.title": [ { "type": 0, "value": "磁碟空間使用量" } ], + "status.diskusage.total": [ + { + "type": 0, + "value": "Total" + } + ], + "status.diskusage.used": [ + { + "type": 0, + "value": "Used" + } + ], "torrent.list.peers": [ { "type": 1, diff --git a/client/src/javascript/i18n/translations/af.json b/client/src/javascript/i18n/translations/af.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/af.json +++ b/client/src/javascript/i18n/translations/af.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ar.json b/client/src/javascript/i18n/translations/ar.json index f18469d8e..5260edac6 100644 --- a/client/src/javascript/i18n/translations/ar.json +++ b/client/src/javascript/i18n/translations/ar.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "الفيضان ليس لديه الصلاحية لقراءة هذا الدليل.", "filesystem.error.enoent": "هذا المسار غير موجود. سيتم إنشاؤه.", "filesystem.fetching": "جلب بنية الدليل...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "الكل", "filter.status.title": "تصفية حسب الحالة", "filter.status.downloading": "تنزيل", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "تعذر التحقق من الاتصال.", "connection-interruption.verification-success": "تم الاتصال بنجاح", "status.diskusage.title": "استخدام القرص", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "تلقائي", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ca.json b/client/src/javascript/i18n/translations/ca.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/ca.json +++ b/client/src/javascript/i18n/translations/ca.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/cs.json b/client/src/javascript/i18n/translations/cs.json index e40ef8a15..b1334e3df 100644 --- a/client/src/javascript/i18n/translations/cs.json +++ b/client/src/javascript/i18n/translations/cs.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Záplava nemá oprávnění ke čtení tohoto adresáře.", "filesystem.error.enoent": "Tato cesta neexistuje. Bude vytvořena.", "filesystem.fetching": "Načítání adresářové struktury...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Vše", "filter.status.title": "Filtrovat podle stavu", "filter.status.downloading": "Stahování", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Nelze ověřit spojení.", "connection-interruption.verification-success": "Připojení bylo úspěšné", "status.diskusage.title": "Využití disku", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automaticky", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/da.json b/client/src/javascript/i18n/translations/da.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/da.json +++ b/client/src/javascript/i18n/translations/da.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/de.json b/client/src/javascript/i18n/translations/de.json index a7ebb40b1..1f7510b31 100644 --- a/client/src/javascript/i18n/translations/de.json +++ b/client/src/javascript/i18n/translations/de.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood hat keine Berechtigung, dieses Verzeichnis zu lesen.", "filesystem.error.enoent": "Dieser Pfad existiert nicht. Er wird erstellt.", "filesystem.fetching": "Lade Verzeichnisstruktur ab...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Alle", "filter.status.title": "Nach Status filtern", "filter.status.downloading": "Herunterladen", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Verbindung konnte nicht verifiziert werden.", "connection-interruption.verification-success": "Verbindung erfolgreich", "status.diskusage.title": "Plattennutzung", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatisch", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/el.json b/client/src/javascript/i18n/translations/el.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/el.json +++ b/client/src/javascript/i18n/translations/el.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/es.json b/client/src/javascript/i18n/translations/es.json index f49514488..c7cada589 100644 --- a/client/src/javascript/i18n/translations/es.json +++ b/client/src/javascript/i18n/translations/es.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood no tiene permisos para leer esta carpeta.", "filesystem.error.enoent": "Esta ruta no existe. Se creara.", "filesystem.fetching": "Cargando estructura de carpeta...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Todo", "filter.status.title": "Filtrar por Estado", "filter.status.downloading": "Descargando", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "No se pudo verificar la conexión.", "connection-interruption.verification-success": "Conexión exitosa", "status.diskusage.title": "Uso del disco", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automátic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/fi.json b/client/src/javascript/i18n/translations/fi.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/fi.json +++ b/client/src/javascript/i18n/translations/fi.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/fr.json b/client/src/javascript/i18n/translations/fr.json index 1c89183b8..5558d6fdc 100644 --- a/client/src/javascript/i18n/translations/fr.json +++ b/client/src/javascript/i18n/translations/fr.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood n'a pas la permission de lire ce répertoire.", "filesystem.error.enoent": "Ce chemin n'existe pas. Il sera créé.", "filesystem.fetching": "Récupération de la structure du répertoire...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Tout", "filter.status.title": "Filtrer par Status", "filter.status.downloading": "En Téléchargement", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "La connexion n'a pas pu être vérifiée.", "connection-interruption.verification-success": "Connexion réussie", "status.diskusage.title": "Utilisation du disque", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatique", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/he.json b/client/src/javascript/i18n/translations/he.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/he.json +++ b/client/src/javascript/i18n/translations/he.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/hu.json b/client/src/javascript/i18n/translations/hu.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/hu.json +++ b/client/src/javascript/i18n/translations/hu.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/it.json b/client/src/javascript/i18n/translations/it.json index ee75da835..a64638db8 100644 --- a/client/src/javascript/i18n/translations/it.json +++ b/client/src/javascript/i18n/translations/it.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood non ha il permesso di leggere questa directory.", "filesystem.error.enoent": "Questo percorso non esiste. Sarà creato.", "filesystem.fetching": "Recupero struttura directory...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Tutti", "filter.status.title": "Filtra per stato", "filter.status.downloading": "Scaricamento", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "La connessione non può essere verificata.", "connection-interruption.verification-success": "Connessione riuscita", "status.diskusage.title": "Uso Del Disco", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatico", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ja.json b/client/src/javascript/i18n/translations/ja.json index 89fb0b12f..7920d6e57 100644 --- a/client/src/javascript/i18n/translations/ja.json +++ b/client/src/javascript/i18n/translations/ja.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "このディレクトリを読み込む権限がありません。", "filesystem.error.enoent": "このパスは存在しません。作成されます。", "filesystem.fetching": "ディレクトリ構造を取得しています...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "すべて", "filter.status.title": "ステータスでフィルター", "filter.status.downloading": "ダウンロード中", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "接続を確認できませんでした。", "connection-interruption.verification-success": "接続に成功しました", "status.diskusage.title": "ディスクの使用量", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "自動", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ko.json b/client/src/javascript/i18n/translations/ko.json index 33227761c..eafd06be2 100644 --- a/client/src/javascript/i18n/translations/ko.json +++ b/client/src/javascript/i18n/translations/ko.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood에 이 디렉토리를 읽을 권한이 없습니다.", "filesystem.error.enoent": "없는 경로입니다. 생성될 것입니다.", "filesystem.fetching": "디렉토리 구조 가져오는 중...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "전체", "filter.status.title": "필터: 상태", "filter.status.downloading": "다운로드 중", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "연결을 검증하지 못했습니다.", "connection-interruption.verification-success": "연결 성공", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "자동", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/nl.json b/client/src/javascript/i18n/translations/nl.json index a87e20da1..ad23cb52c 100644 --- a/client/src/javascript/i18n/translations/nl.json +++ b/client/src/javascript/i18n/translations/nl.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood heeft geen toestemming om deze map te lezen.", "filesystem.error.enoent": "Dit pad bestaat niet. Het zal worden aangemaakt.", "filesystem.fetching": "Ophalen van map structuur...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Alles", "filter.status.title": "Filter op status", "filter.status.downloading": "Downloaden", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Verbinding kon niet worden geverifieerd.", "connection-interruption.verification-success": "Verbinding succesvol", "status.diskusage.title": "Schijf gebruik", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatisch", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notificaties", diff --git a/client/src/javascript/i18n/translations/no.json b/client/src/javascript/i18n/translations/no.json index aae081f35..a98ac1410 100644 --- a/client/src/javascript/i18n/translations/no.json +++ b/client/src/javascript/i18n/translations/no.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flom har ikke tillatelse til å lese denne mappen.", "filesystem.error.enoent": "Denne stien finnes ikke. Den vil bli opprettet.", "filesystem.fetching": "Henter mappestruktur char@@0", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Alle", "filter.status.title": "Filtrer etter status", "filter.status.downloading": "Laster ned", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Tilkobling kunne ikke verifiseres.", "connection-interruption.verification-success": "Tilkobling vellykket", "status.diskusage.title": "Bruk av diskplass", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatisk", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/pl.json b/client/src/javascript/i18n/translations/pl.json index d10083d1e..9b93d14eb 100644 --- a/client/src/javascript/i18n/translations/pl.json +++ b/client/src/javascript/i18n/translations/pl.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Powódź nie ma uprawnień do odczytu tego katalogu.", "filesystem.error.enoent": "Ta ścieżka nie istnieje. Zostanie utworzona.", "filesystem.fetching": "Pobieranie struktury katalogu...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Wszystkie", "filter.status.title": "Filtruj według statusu", "filter.status.downloading": "Pobieranie", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Nie można zweryfikować połączenia.", "connection-interruption.verification-success": "Połączenie udane", "status.diskusage.title": "Użycie dysku", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatyczne", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/pt.json b/client/src/javascript/i18n/translations/pt.json index ab3e3a231..94e5d93f1 100644 --- a/client/src/javascript/i18n/translations/pt.json +++ b/client/src/javascript/i18n/translations/pt.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "O Flood não tem permissão para ler este diretório.", "filesystem.error.enoent": "Este caminho não existe. Ele será criado.", "filesystem.fetching": "Buscando estrutura de diretórios...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "TODOS", "filter.status.title": "Filtrar por status", "filter.status.downloading": "Baixando", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "A conexão não pôde ser verificada.", "connection-interruption.verification-success": "Conexão bem sucedida", "status.diskusage.title": "Uso do disco", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automático", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ro.json b/client/src/javascript/i18n/translations/ro.json index 52464cd32..3ab6306c4 100644 --- a/client/src/javascript/i18n/translations/ro.json +++ b/client/src/javascript/i18n/translations/ro.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Inundațiile nu au permisiunea de a citi acest director.", "filesystem.error.enoent": "Această cale nu există. Va fi creată.", "filesystem.fetching": "Se preia structura directorului...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Toate", "filter.status.title": "Filtrare după stare", "filter.status.downloading": "Descărcare", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Conexiunea nu a putut fi verificată.", "connection-interruption.verification-success": "Conexiune reușită", "status.diskusage.title": "Utilizare disc", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automat", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/ru.json b/client/src/javascript/i18n/translations/ru.json index c8f9b847e..9b7a3714b 100644 --- a/client/src/javascript/i18n/translations/ru.json +++ b/client/src/javascript/i18n/translations/ru.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood не имеет разрешения на чтение этого каталога.", "filesystem.error.enoent": "Этот путь не существует. Он будет создан.", "filesystem.fetching": "Получение структуры директорий...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Все", "filter.status.title": "Фильтр по статусу", "filter.status.downloading": "Скачивание", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Соединение не может быть проверено.", "connection-interruption.verification-success": "Успешное подключение", "status.diskusage.title": "Использование диска", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Автоматически", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/sr.json b/client/src/javascript/i18n/translations/sr.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/sr.json +++ b/client/src/javascript/i18n/translations/sr.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/sv.json b/client/src/javascript/i18n/translations/sv.json index b631ec495..62e99db8d 100644 --- a/client/src/javascript/i18n/translations/sv.json +++ b/client/src/javascript/i18n/translations/sv.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Översvämningen har inte behörighet att läsa denna katalog.", "filesystem.error.enoent": "Denna väg existerar inte. Den kommer att skapas.", "filesystem.fetching": "Hämtar katalogstruktur...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Alla", "filter.status.title": "Filtrera efter status", "filter.status.downloading": "Hämtar", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Anslutningen kunde inte verifieras.", "connection-interruption.verification-success": "Anslutningen lyckades", "status.diskusage.title": "Diskanvändning", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatisk", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/tr.json b/client/src/javascript/i18n/translations/tr.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/tr.json +++ b/client/src/javascript/i18n/translations/tr.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/uk.json b/client/src/javascript/i18n/translations/uk.json index c0dc42798..0b8d0e7f6 100644 --- a/client/src/javascript/i18n/translations/uk.json +++ b/client/src/javascript/i18n/translations/uk.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Флуд не має дозволу на читання цієї теки.", "filesystem.error.enoent": "Цей шлях не існує. Він буде створений.", "filesystem.fetching": "Отримання структури каталогу...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "Всі", "filter.status.title": "Фільтр за станом", "filter.status.downloading": "Завантажується", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Неможливо перевірити підключення.", "connection-interruption.verification-success": "З'єднання успішне", "status.diskusage.title": "Використання диску", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Автоматично", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/vi.json b/client/src/javascript/i18n/translations/vi.json index 8a8b62212..19f894103 100644 --- a/client/src/javascript/i18n/translations/vi.json +++ b/client/src/javascript/i18n/translations/vi.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood does not have permission to read this directory.", "filesystem.error.enoent": "This path does not exist. It will be created.", "filesystem.fetching": "Fetching directory structure...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "All", "filter.status.title": "Filter by Status", "filter.status.downloading": "Downloading", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "Connection could not be verified.", "connection-interruption.verification-success": "Connection successful", "status.diskusage.title": "Disk Usage", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "Automatic", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/zh-Hans.json b/client/src/javascript/i18n/translations/zh-Hans.json index a9cde25a2..07ef97dc6 100644 --- a/client/src/javascript/i18n/translations/zh-Hans.json +++ b/client/src/javascript/i18n/translations/zh-Hans.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood没有权限读取此目录。", "filesystem.error.enoent": "路径不存在,将会创建此目录。", "filesystem.fetching": "获取目录结构...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "全部", "filter.status.title": "按状态筛选", "filter.status.downloading": "下载中", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "无法建立连接。", "connection-interruption.verification-success": "连接成功!", "status.diskusage.title": "磁盘使用量", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "自动", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", diff --git a/client/src/javascript/i18n/translations/zh-Hant.json b/client/src/javascript/i18n/translations/zh-Hant.json index a96594a11..a415d8e8b 100644 --- a/client/src/javascript/i18n/translations/zh-Hant.json +++ b/client/src/javascript/i18n/translations/zh-Hant.json @@ -82,6 +82,7 @@ "filesystem.error.eacces": "Flood 沒有權限去讀取資料夾的內容。", "filesystem.error.enoent": "路徑不存在,系統會自動建立。", "filesystem.fetching": "抓取資料夾結構中...", + "filesystem.parent.directory": "Parent Directory", "filter.all": "全部", "filter.status.title": "篩選狀態", "filter.status.downloading": "下載中", @@ -299,6 +300,9 @@ "connection-interruption.verification-error": "無法建立連線。", "connection-interruption.verification-success": "連線成功", "status.diskusage.title": "磁碟空間使用量", + "status.diskusage.used": "Used", + "status.diskusage.free": "Free", + "status.diskusage.total": "Total", "locale.language.auto": "自動", "window.title": "↓ {down} ↑ {up} - Flood", "dependency.loading.notifications": "Notifications", From c23fa718755cff6351e04ccfd8672068e123cdfe Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Sat, 15 Aug 2020 21:59:17 +0800 Subject: [PATCH 060/651] i18n: new translations for Chinese Traditional (#14) --- .../src/javascript/i18n/compiled/zh-Hant.json | 30 +++++++++---------- .../javascript/i18n/translations/zh-Hant.json | 30 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/client/src/javascript/i18n/compiled/zh-Hant.json b/client/src/javascript/i18n/compiled/zh-Hant.json index d80227fd9..4ba4f8df4 100644 --- a/client/src/javascript/i18n/compiled/zh-Hant.json +++ b/client/src/javascript/i18n/compiled/zh-Hant.json @@ -188,7 +188,7 @@ "auth.login.intro": [ { "type": 0, - "value": "Log in to your account." + "value": "登入你的帳號" } ], "auth.message.not.admin": [ @@ -332,13 +332,13 @@ "dependency.loading.notifications": [ { "type": 0, - "value": "Notifications" + "value": "通知" } ], "dependency.loading.torrent.list": [ { "type": 0, - "value": "Torrent List" + "value": "種子列表" } ], "dependency.loading.torrent.taxonomy": [ @@ -350,13 +350,13 @@ "dependency.loading.transfer.history": [ { "type": 0, - "value": "Data Transfer History" + "value": "資料傳輸紀錄" } ], "dependency.loading.transfer.rate.details": [ { "type": 0, - "value": "Data Transfer Rate Details" + "value": "詳細資料傳輸率" } ], "feeds.add.automatic.download.rule": [ @@ -568,7 +568,7 @@ "feeds.validation.interval.not.positive": [ { "type": 0, - "value": "The interval must be a positive integer." + "value": "警告限制必須是正整數" } ], "feeds.validation.invalid.regular.expression": [ @@ -628,7 +628,7 @@ "filesystem.parent.directory": [ { "type": 0, - "value": "Parent Directory" + "value": "上一層目錄" } ], "filter.all": [ @@ -1186,13 +1186,13 @@ "sidebar.speedlimits.download": [ { "type": 0, - "value": "DOWNLOAD" + "value": "下載速度" } ], "sidebar.speedlimits.upload": [ { "type": 0, - "value": "UPLOAD" + "value": "上傳速度" } ], "sidebar.transferdata.downloaded": [ @@ -1216,7 +1216,7 @@ "status.diskusage.free": [ { "type": 0, - "value": "Free" + "value": "可用" } ], "status.diskusage.title": [ @@ -1228,13 +1228,13 @@ "status.diskusage.total": [ { "type": 0, - "value": "Total" + "value": "總計" } ], "status.diskusage.used": [ { "type": 0, - "value": "Used" + "value": "已使用" } ], "torrent.list.peers": [ @@ -1616,7 +1616,7 @@ "torrents.list.context.download": [ { "type": 0, - "value": "Download" + "value": "下載" } ], "torrents.list.context.move": [ @@ -1778,7 +1778,7 @@ "torrents.properties.peers": [ { "type": 0, - "value": "Peers" + "value": "節點" } ], "torrents.properties.percentage": [ @@ -1796,7 +1796,7 @@ "torrents.properties.seeds": [ { "type": 0, - "value": "Seeds" + "value": "種子" } ], "torrents.properties.size": [ diff --git a/client/src/javascript/i18n/translations/zh-Hant.json b/client/src/javascript/i18n/translations/zh-Hant.json index a415d8e8b..39d5f1faa 100644 --- a/client/src/javascript/i18n/translations/zh-Hant.json +++ b/client/src/javascript/i18n/translations/zh-Hant.json @@ -21,7 +21,7 @@ "auth.error.username.empty": "使用者名稱不可以留空!", "auth.log.in": "登入", "auth.login": "登入", - "auth.login.intro": "Log in to your account.", + "auth.login.intro": "登入你的帳號", "auth.password": "密碼", "auth.user.accounts": "使用者帳號", "auth.username": "使用者名稱", @@ -76,13 +76,13 @@ "feeds.validation.must.specify.destination": "您必須指定下載位置。", "feeds.validation.must.specify.label": "你必須指定標籤。", "feeds.validation.must.specify.valid.feed.url": "你必須指定一個有效的訊息來源網址。", - "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.validation.interval.not.positive": "警告限制必須是正整數", "feeds.browse.feeds": "瀏覽訊息來源", "filesystem.empty.directory": "空白資料夾。", "filesystem.error.eacces": "Flood 沒有權限去讀取資料夾的內容。", "filesystem.error.enoent": "路徑不存在,系統會自動建立。", "filesystem.fetching": "抓取資料夾結構中...", - "filesystem.parent.directory": "Parent Directory", + "filesystem.parent.directory": "上一層目錄", "filter.all": "全部", "filter.status.title": "篩選狀態", "filter.status.downloading": "下載中", @@ -176,8 +176,8 @@ "sidebar.search.placeholder": "搜尋種子", "sidebar.transferdata.downloaded": "已下載", "sidebar.transferdata.uploaded": "已上傳", - "sidebar.speedlimits.download": "DOWNLOAD", - "sidebar.speedlimits.upload": "UPLOAD", + "sidebar.speedlimits.download": "下載速度", + "sidebar.speedlimits.upload": "上傳速度", "speed.unlimited": "無限制", "unit.size.byte": "B", "unit.size.kilobyte": "KB", @@ -249,7 +249,7 @@ "torrents.list.context.details": "種子詳細資訊", "torrents.list.context.move": "設定種子位置", "torrents.list.context.pause": "暫停", - "torrents.list.context.download": "Download", + "torrents.list.context.download": "下載", "torrents.list.context.priority": "優先權", "torrents.list.context.remove": "移除", "torrents.list.context.set.tags": "設定標籤", @@ -284,8 +284,8 @@ "torrents.properties.tracker.message": "Tracker 訊息", "torrents.properties.upload.speed": "上傳速度", "torrents.properties.upload.total": "已上傳", - "torrents.properties.seeds": "Seeds", - "torrents.properties.peers": "Peers", + "torrents.properties.seeds": "種子", + "torrents.properties.peers": "節點", "torrents.properties.trackers": "Trackers", "torrents.remove.are.you.sure": "你確定要移除這些種子嗎?", "torrents.remove.delete.data": "刪除已下載檔案", @@ -300,14 +300,14 @@ "connection-interruption.verification-error": "無法建立連線。", "connection-interruption.verification-success": "連線成功", "status.diskusage.title": "磁碟空間使用量", - "status.diskusage.used": "Used", - "status.diskusage.free": "Free", - "status.diskusage.total": "Total", + "status.diskusage.used": "已使用", + "status.diskusage.free": "可用", + "status.diskusage.total": "總計", "locale.language.auto": "自動", "window.title": "↓ {down} ↑ {up} - Flood", - "dependency.loading.notifications": "Notifications", + "dependency.loading.notifications": "通知", "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", - "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", - "dependency.loading.transfer.history": "Data Transfer History", - "dependency.loading.torrent.list": "Torrent List" + "dependency.loading.transfer.rate.details": "詳細資料傳輸率", + "dependency.loading.transfer.history": "資料傳輸紀錄", + "dependency.loading.torrent.list": "種子列表" } From ee83e8f3aab7f7f4d8aa87cb04eef3b0eee8fd79 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Mon, 17 Aug 2020 02:16:36 +0800 Subject: [PATCH 061/651] diskUsageService: exclude squashfs/tmpfs mount points for linux squashfs is strictly read-only while tmpfs stores to volatile memory. This change prevents unuseful mount points from spamming the list. --- server/services/diskUsageService.js | 60 ++++++++++++++++++----------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/server/services/diskUsageService.js b/server/services/diskUsageService.js index 2ed899560..d5904cb97 100644 --- a/server/services/diskUsageService.js +++ b/server/services/diskUsageService.js @@ -18,29 +18,45 @@ const filterMountPoint = (mountpoint) => config.diskUsageService.watchMountPoints.includes(mountpoint) : () => true; // include all mounted file systems by default -const linuxDfParsing = () => - execFile('df | tail -n+2', { - shell: true, - maxBuffer: MAX_BUFFER_SIZE, - }).then(({stdout}) => - stdout - .trim() - .split('\n') - .map((disk) => disk.split(/\s+/)) - .filter((disk) => filterMountPoint(disk[5])) - .map(([_fs, size, used, avail, _pcent, target]) => { - return { - size: Number.parseInt(size, 10) * 1024, - used: Number.parseInt(used, 10) * 1024, - avail: Number.parseInt(avail, 10) * 1024, - target, - }; - }), - ); - const diskUsage = { - linux: linuxDfParsing, - freebsd: linuxDfParsing, + linux: () => + execFile('df -xsquashfs -xtmpfs -xdevtmpfs | tail -n+2', { + shell: true, + maxBuffer: MAX_BUFFER_SIZE, + }).then(({stdout}) => + stdout + .trim() + .split('\n') + .map((disk) => disk.split(/\s+/)) + .filter((disk) => filterMountPoint(disk[5])) + .map(([_fs, size, used, avail, _pcent, target]) => { + return { + size: Number.parseInt(size, 10) * 1024, + used: Number.parseInt(used, 10) * 1024, + avail: Number.parseInt(avail, 10) * 1024, + target, + }; + }), + ), + freebsd: () => + execFile('df | tail -n+2', { + shell: true, + maxBuffer: MAX_BUFFER_SIZE, + }).then(({stdout}) => + stdout + .trim() + .split('\n') + .map((disk) => disk.split(/\s+/)) + .filter((disk) => filterMountPoint(disk[5])) + .map(([_fs, size, used, avail, _pcent, target]) => { + return { + size: Number.parseInt(size, 10) * 1024, + used: Number.parseInt(used, 10) * 1024, + avail: Number.parseInt(avail, 10) * 1024, + target, + }; + }), + ), darwin: () => execFile('df -kl | tail -n+2', { shell: true, From a2d90d355011ea440a70b2f909e1959d11d372ad Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Tue, 18 Aug 2020 20:05:00 +0800 Subject: [PATCH 062/651] TorrentList: allow long press to open context menu Bug: #16, Flood-UI/flood#826 --- client/src/index.html | 1 + .../components/torrent-list/Torrent.js | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/client/src/index.html b/client/src/index.html index 2daa27eb9..498c8142c 100644 --- a/client/src/index.html +++ b/client/src/index.html @@ -12,6 +12,7 @@ +
diff --git a/client/src/javascript/components/torrent-list/Torrent.js b/client/src/javascript/components/torrent-list/Torrent.js index cfc0bd206..255b2d465 100644 --- a/client/src/javascript/components/torrent-list/Torrent.js +++ b/client/src/javascript/components/torrent-list/Torrent.js @@ -78,6 +78,12 @@ class Torrent extends React.Component { }); } + componentDidMount() { + if (this.torrentRef != null) { + this.torrentRef.addEventListener('long-press', this.handleRightClick); + } + } + shouldComponentUpdate(nextProps) { if (nextProps.isSelected !== this.props.isSelected || nextProps.isCondensed !== this.props.isCondensed) { return true; @@ -191,7 +197,10 @@ class Torrent extends React.Component { className={torrentClasses} onClick={this.handleClick} onContextMenu={this.handleRightClick} - onDoubleClick={this.handleDoubleClick}> + onDoubleClick={this.handleDoubleClick} + ref={(ref) => { + this.torrentRef = ref; + }}> {torrentPropertyColumns} ); @@ -241,7 +250,10 @@ class Torrent extends React.Component { className={torrentClasses} onClick={this.handleClick} onContextMenu={this.handleRightClick} - onDoubleClick={this.handleDoubleClick}> + onDoubleClick={this.handleDoubleClick} + ref={(ref) => { + this.torrentRef = ref; + }}>
{sections.primary}
{sections.secondary}
From 864b23d7496e51e9671275c7b8372b3dcc7598b0 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Tue, 18 Aug 2020 20:25:01 +0800 Subject: [PATCH 063/651] styles: action-bar: disallow browser's text selection menu Action bar doesn't contain anything meaningful for user to copy. This fixes the problem that text selection is triggered in the process of long press (for context menu) on iOS/Safari clients. --- client/src/sass/components/_action-bar.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/src/sass/components/_action-bar.scss b/client/src/sass/components/_action-bar.scss index e77379707..723e116bf 100644 --- a/client/src/sass/components/_action-bar.scss +++ b/client/src/sass/components/_action-bar.scss @@ -17,6 +17,9 @@ $torrent-list--border: rgba($sidebar--background, 0.15); height: 60px; position: relative; + -webkit-user-select: none; + -webkit-touch-callout: none; + &--is-condensed { flex-basis: 30px; height: 30px; From b7bdfa4186ec32e5c91137b55e7c2118988d7d8b Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Tue, 18 Aug 2020 20:34:14 +0800 Subject: [PATCH 064/651] TorrentList: remove "More Info" button in expanded view It often obstructs the view. Hover-based logics simply don't work well. More often than not, it shows and hides at the wrong time. This impairs user experience so it should be removed. --- .../components/torrent-list/Torrent.js | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/client/src/javascript/components/torrent-list/Torrent.js b/client/src/javascript/components/torrent-list/Torrent.js index 255b2d465..8f4a3bd8d 100644 --- a/client/src/javascript/components/torrent-list/Torrent.js +++ b/client/src/javascript/components/torrent-list/Torrent.js @@ -1,18 +1,9 @@ import React from 'react'; -import CalendarIcon from '../icons/CalendarIcon'; -import ClockIcon from '../icons/ClockIcon'; -import DiskIcon from '../icons/DiskIcon'; -import DownloadThickIcon from '../icons/DownloadThickIcon'; -import InformationIcon from '../icons/InformationIcon'; -import PeersIcon from '../icons/PeersIcon'; import ProgressBar from '../general/ProgressBar'; -import RatioIcon from '../icons/RatioIcon'; -import SeedsIcon from '../icons/SeedsIcon'; import {torrentStatusIcons} from '../../util/torrentStatusIcons'; import {torrentStatusClasses} from '../../util/torrentStatusClasses'; import TorrentDetail from './TorrentDetail'; -import UploadThickIcon from '../icons/UploadThickIcon'; const condensedValueTransformers = { downloadTotal: (torrent) => torrent.bytesDone, @@ -47,18 +38,6 @@ const expandedSecondaryValueTransformers = { percentComplete: (torrent) => torrent.bytesDone, }; -const ICONS = { - clock: , - disk: , - downloadThick: , - information: , - calendar: , - peers: , - ratio: , - seeds: , - uploadThick: , -}; - const METHODS_TO_BIND = ['handleClick', 'handleDoubleClick', 'handleRightClick']; const TORRENT_PRIMITIVES_TO_OBSERVE = ['bytesDone', 'downRate', 'peersTotal', 'seedsTotal', 'upRate']; @@ -262,12 +241,6 @@ class Torrent extends React.Component {
- ); } From 2ac6b5d40316ab4b8ff487708d3935ab5adb5293 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Tue, 18 Aug 2020 20:58:25 +0800 Subject: [PATCH 065/651] strings: add missing strings in Feeds --- .../src/javascript/i18n/compiled/strings.json | 36 +++++++++++++++++++ client/src/javascript/i18n/strings.json | 6 ++++ 2 files changed, 42 insertions(+) diff --git a/client/src/javascript/i18n/compiled/strings.json b/client/src/javascript/i18n/compiled/strings.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/strings.json +++ b/client/src/javascript/i18n/compiled/strings.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/strings.json b/client/src/javascript/i18n/strings.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/strings.json +++ b/client/src/javascript/i18n/strings.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", From ff36bfd42cd531be5407e0ba195a5bebd914163e Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Wed, 19 Aug 2020 13:09:29 +0800 Subject: [PATCH 066/651] i18n: new translations for Portuguese and add placeholders (#17) --- client/src/javascript/i18n/compiled/af.json | 36 ++++ client/src/javascript/i18n/compiled/ar.json | 36 ++++ client/src/javascript/i18n/compiled/ca.json | 36 ++++ client/src/javascript/i18n/compiled/cs.json | 36 ++++ client/src/javascript/i18n/compiled/da.json | 36 ++++ client/src/javascript/i18n/compiled/de.json | 36 ++++ client/src/javascript/i18n/compiled/el.json | 36 ++++ client/src/javascript/i18n/compiled/es.json | 36 ++++ client/src/javascript/i18n/compiled/fi.json | 36 ++++ client/src/javascript/i18n/compiled/fr.json | 36 ++++ client/src/javascript/i18n/compiled/he.json | 36 ++++ client/src/javascript/i18n/compiled/hu.json | 36 ++++ client/src/javascript/i18n/compiled/it.json | 36 ++++ client/src/javascript/i18n/compiled/ja.json | 36 ++++ client/src/javascript/i18n/compiled/ko.json | 36 ++++ client/src/javascript/i18n/compiled/nl.json | 36 ++++ client/src/javascript/i18n/compiled/no.json | 36 ++++ client/src/javascript/i18n/compiled/pl.json | 36 ++++ client/src/javascript/i18n/compiled/pt.json | 192 ++++++++++++------ client/src/javascript/i18n/compiled/ro.json | 36 ++++ client/src/javascript/i18n/compiled/ru.json | 36 ++++ client/src/javascript/i18n/compiled/sr.json | 36 ++++ client/src/javascript/i18n/compiled/sv.json | 36 ++++ client/src/javascript/i18n/compiled/tr.json | 36 ++++ client/src/javascript/i18n/compiled/uk.json | 36 ++++ client/src/javascript/i18n/compiled/vi.json | 36 ++++ .../src/javascript/i18n/compiled/zh-Hans.json | 36 ++++ .../src/javascript/i18n/compiled/zh-Hant.json | 36 ++++ .../src/javascript/i18n/translations/af.json | 6 + .../src/javascript/i18n/translations/ar.json | 6 + .../src/javascript/i18n/translations/ca.json | 6 + .../src/javascript/i18n/translations/cs.json | 6 + .../src/javascript/i18n/translations/da.json | 6 + .../src/javascript/i18n/translations/de.json | 6 + .../src/javascript/i18n/translations/el.json | 6 + .../src/javascript/i18n/translations/es.json | 6 + .../src/javascript/i18n/translations/fi.json | 6 + .../src/javascript/i18n/translations/fr.json | 6 + .../src/javascript/i18n/translations/he.json | 6 + .../src/javascript/i18n/translations/hu.json | 6 + .../src/javascript/i18n/translations/it.json | 6 + .../src/javascript/i18n/translations/ja.json | 6 + .../src/javascript/i18n/translations/ko.json | 6 + .../src/javascript/i18n/translations/nl.json | 6 + .../src/javascript/i18n/translations/no.json | 6 + .../src/javascript/i18n/translations/pl.json | 6 + .../src/javascript/i18n/translations/pt.json | 144 ++++++------- .../src/javascript/i18n/translations/ro.json | 6 + .../src/javascript/i18n/translations/ru.json | 6 + .../src/javascript/i18n/translations/sr.json | 6 + .../src/javascript/i18n/translations/sv.json | 6 + .../src/javascript/i18n/translations/tr.json | 6 + .../src/javascript/i18n/translations/uk.json | 6 + .../src/javascript/i18n/translations/vi.json | 6 + .../javascript/i18n/translations/zh-Hans.json | 6 + .../javascript/i18n/translations/zh-Hant.json | 6 + 56 files changed, 1337 insertions(+), 133 deletions(-) diff --git a/client/src/javascript/i18n/compiled/af.json b/client/src/javascript/i18n/compiled/af.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/af.json +++ b/client/src/javascript/i18n/compiled/af.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/ar.json b/client/src/javascript/i18n/compiled/ar.json index 5ac512e9d..585d19cba 100644 --- a/client/src/javascript/i18n/compiled/ar.json +++ b/client/src/javascript/i18n/compiled/ar.json @@ -395,6 +395,12 @@ "value": "إلغاء" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "تصفح الخلاصات" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "القواعد الحالية" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "لم يتم تعريف أي تغذية." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "مصطلح البحث" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "الوسوم" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/ca.json b/client/src/javascript/i18n/compiled/ca.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/ca.json +++ b/client/src/javascript/i18n/compiled/ca.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/cs.json b/client/src/javascript/i18n/compiled/cs.json index ddbe2b359..dcc49afee 100644 --- a/client/src/javascript/i18n/compiled/cs.json +++ b/client/src/javascript/i18n/compiled/cs.json @@ -395,6 +395,12 @@ "value": "Zrušit" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Procházet kanály" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "Stávající pravidla" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "Nebyly definovány žádné kanály." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Hledat termín" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "Štítky" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/da.json b/client/src/javascript/i18n/compiled/da.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/da.json +++ b/client/src/javascript/i18n/compiled/da.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/de.json b/client/src/javascript/i18n/compiled/de.json index 9443a040c..443110866 100644 --- a/client/src/javascript/i18n/compiled/de.json +++ b/client/src/javascript/i18n/compiled/de.json @@ -395,6 +395,12 @@ "value": "Abbrechen" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Feeds durchsuchen" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "Bestehende Regeln" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "Keine Feeds definiert." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Suchbegriff" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/el.json b/client/src/javascript/i18n/compiled/el.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/el.json +++ b/client/src/javascript/i18n/compiled/el.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/es.json b/client/src/javascript/i18n/compiled/es.json index 62d5dfe01..1accae890 100644 --- a/client/src/javascript/i18n/compiled/es.json +++ b/client/src/javascript/i18n/compiled/es.json @@ -395,6 +395,12 @@ "value": "Cancelar" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Ver feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "Reglas Existentes" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "No hay fuentes definidas" } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Buscar término" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "Etiquetas" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/fi.json b/client/src/javascript/i18n/compiled/fi.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/fi.json +++ b/client/src/javascript/i18n/compiled/fi.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/fr.json b/client/src/javascript/i18n/compiled/fr.json index 5cbd35889..fe573438a 100644 --- a/client/src/javascript/i18n/compiled/fr.json +++ b/client/src/javascript/i18n/compiled/fr.json @@ -419,6 +419,12 @@ "value": "Annuler" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Parcourir les flux" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Règles Existantes" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "Aucun flux défini." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Terme de recherche" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/he.json b/client/src/javascript/i18n/compiled/he.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/he.json +++ b/client/src/javascript/i18n/compiled/he.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/hu.json b/client/src/javascript/i18n/compiled/hu.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/hu.json +++ b/client/src/javascript/i18n/compiled/hu.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/it.json b/client/src/javascript/i18n/compiled/it.json index f978f038e..8f132ba6a 100644 --- a/client/src/javascript/i18n/compiled/it.json +++ b/client/src/javascript/i18n/compiled/it.json @@ -395,6 +395,12 @@ "value": "Annulla" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Sfoglia i feed" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "Regole Esistenti" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "Nessun feed definito." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Termine di ricerca" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "Etichette" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/ja.json b/client/src/javascript/i18n/compiled/ja.json index a67be59f6..c6f13f74e 100644 --- a/client/src/javascript/i18n/compiled/ja.json +++ b/client/src/javascript/i18n/compiled/ja.json @@ -371,6 +371,12 @@ "value": "キャンセル" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -509,6 +515,12 @@ "value": "フィードを参照" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -533,6 +545,12 @@ "value": "既存のルール" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -595,6 +613,12 @@ "value": "フィードが定義されていません。" } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -613,6 +637,12 @@ "value": "検索キーワード:" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -655,6 +685,12 @@ "value": "タグ" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/ko.json b/client/src/javascript/i18n/compiled/ko.json index e2f3ded60..947c310e7 100644 --- a/client/src/javascript/i18n/compiled/ko.json +++ b/client/src/javascript/i18n/compiled/ko.json @@ -395,6 +395,12 @@ "value": "취소" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "설정된 규칙" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "지정된 피드가 없습니다." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "태그" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/nl.json b/client/src/javascript/i18n/compiled/nl.json index 89153a27b..c86e867f6 100644 --- a/client/src/javascript/i18n/compiled/nl.json +++ b/client/src/javascript/i18n/compiled/nl.json @@ -419,6 +419,12 @@ "value": "Annuleren" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Bekijk feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Regels" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "Geen feeds toegevoegd." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Zoek term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Labels" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/no.json b/client/src/javascript/i18n/compiled/no.json index 71c984e31..fdcba30f4 100644 --- a/client/src/javascript/i18n/compiled/no.json +++ b/client/src/javascript/i18n/compiled/no.json @@ -391,6 +391,12 @@ "value": "Avbryt" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -529,6 +535,12 @@ "value": "Bla gjennom fôr" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -553,6 +565,12 @@ "value": "Eksisterende regler" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -615,6 +633,12 @@ "value": "Ingen feeds definert." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -633,6 +657,12 @@ "value": "Søk etter uttrykk" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -675,6 +705,12 @@ "value": "Tagger" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/pl.json b/client/src/javascript/i18n/compiled/pl.json index fb6d7dfd2..d2f820c74 100644 --- a/client/src/javascript/i18n/compiled/pl.json +++ b/client/src/javascript/i18n/compiled/pl.json @@ -419,6 +419,12 @@ "value": "Anuluj" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Przeglądaj kanały" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Istniejące reguły" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "Nie zdefiniowano kanałów." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Szukaj frazy" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tagi" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/pt.json b/client/src/javascript/i18n/compiled/pt.json index a63612c98..db97ae77f 100644 --- a/client/src/javascript/i18n/compiled/pt.json +++ b/client/src/javascript/i18n/compiled/pt.json @@ -26,10 +26,14 @@ "alert.settings.saved": [ { "type": 0, - "value": "Configurações salvas com sucesso." + "value": "Configurações guardas com sucesso." } ], "alert.torrent.add": [ + { + "type": 0, + "value": "Adicionado com sucesso " + }, { "type": 1, "value": "countElement" @@ -61,6 +65,10 @@ "pluralType": "cardinal", "type": 6, "value": "count" + }, + { + "type": 0, + "value": "." } ], "alert.torrent.add.failed": [ @@ -99,6 +107,10 @@ "pluralType": "cardinal", "type": 6, "value": "count" + }, + { + "type": 0, + "value": "." } ], "alert.torrent.move": [ @@ -175,9 +187,17 @@ "pluralType": "cardinal", "type": 6, "value": "count" + }, + { + "type": 0, + "value": "." } ], "alert.torrent.remove": [ + { + "type": 0, + "value": "Removido com sucesso " + }, { "type": 1, "value": "countElement" @@ -209,6 +229,10 @@ "pluralType": "cardinal", "type": 6, "value": "count" + }, + { + "type": 0, + "value": "." } ], "alert.torrent.remove.failed": [ @@ -247,12 +271,16 @@ "pluralType": "cardinal", "type": 6, "value": "count" + }, + { + "type": 0, + "value": "." } ], "auth.add.user": [ { "type": 0, - "value": "Adicionar Usuário" + "value": "Adicionar Utilizador" } ], "auth.admin": [ @@ -270,7 +298,7 @@ "auth.connectionType.socket": [ { "type": 0, - "value": "Encaixe Unix" + "value": "Unix Socket" } ], "auth.connectionType.tcp": [ @@ -294,19 +322,19 @@ "auth.create.an.account.intro": [ { "type": 0, - "value": "Bem vindo à Inundação!" + "value": "Bem vindo ao Flood!" } ], "auth.current.user": [ { "type": 0, - "value": "Usuário atual" + "value": "Utilizador atual" } ], "auth.error.username.empty": [ { "type": 0, - "value": "Nome de usuário não pode estar vazio." + "value": "Nome de utilizador não pode estar vazio." } ], "auth.log.in": [ @@ -318,19 +346,19 @@ "auth.login": [ { "type": 0, - "value": "Conectar-se" + "value": "Iniciar sessão" } ], "auth.login.intro": [ { "type": 0, - "value": "Log in to your account." + "value": "Inicie sessão na sua conta." } ], "auth.message.not.admin": [ { "type": 0, - "value": "Usuário não é Administrador" + "value": "Utilizador não é Administrador" } ], "auth.password": [ @@ -354,25 +382,25 @@ "auth.rtorrentSocket": [ { "type": 0, - "value": "Encaixe rTorrent" + "value": "Socket do rTorrent" } ], "auth.rtorrentSocketPath": [ { "type": 0, - "value": "Caminho de soquete rTorrent" + "value": "Localização da Socket do rTorrent" } ], "auth.user.accounts": [ { "type": 0, - "value": "Contas de usuário" + "value": "Contas dos utilizadores" } ], "auth.username": [ { "type": 0, - "value": "Usuário:" + "value": "Nome de Utilizador" } ], "button.add": [ @@ -384,7 +412,13 @@ "button.cancel": [ { "type": 0, - "value": "cancelar" + "value": "Cancelar" + } + ], + "button.download": [ + { + "type": 0, + "value": "Transferir" } ], "button.new": [ @@ -402,7 +436,7 @@ "button.save": [ { "type": 0, - "value": "Salvar Configurações" + "value": "Guardar Configurações" } ], "button.save.feed": [ @@ -420,13 +454,13 @@ "button.test": [ { "type": 0, - "value": "teste" + "value": "Testar" } ], "button.yes": [ { "type": 0, - "value": "sim" + "value": "Sim" } ], "connection-interruption.heading": [ @@ -456,7 +490,7 @@ "connectivity.modal.content": [ { "type": 0, - "value": "Não é possível conectar-se ao rTorrent. Por favor, atualize a informação agora." + "value": "Não é possível conectar-se ao rTorrent. Por favor atualize a informação agora." } ], "connectivity.modal.title": [ @@ -468,31 +502,31 @@ "dependency.loading.notifications": [ { "type": 0, - "value": "Notifications" + "value": "Notificações" } ], "dependency.loading.torrent.list": [ { "type": 0, - "value": "Torrent List" + "value": "Lista de Torrents" } ], "dependency.loading.torrent.taxonomy": [ { "type": 0, - "value": "Torrent Taxonomy" + "value": "Taxonomia do Torrent" } ], "dependency.loading.transfer.history": [ { "type": 0, - "value": "Data Transfer History" + "value": "Histórico de Transferências de Dados" } ], "dependency.loading.transfer.rate.details": [ { "type": 0, - "value": "Data Transfer Rate Details" + "value": "Detalhes da Taxa de Transferência de Dados" } ], "feeds.add.automatic.download.rule": [ @@ -516,7 +550,7 @@ "feeds.apply.tags": [ { "type": 0, - "value": "Aplicar Tags" + "value": "Aplicar Etiquetas" } ], "feeds.browse.feeds": [ @@ -525,6 +559,12 @@ "value": "Procurar feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Padrão de Teste de Partida" + } + ], "feeds.exclude": [ { "type": 0, @@ -549,10 +589,16 @@ "value": "Regras existentes" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Intervalo" + } + ], "feeds.label": [ { "type": 0, - "value": "Descrição" + "value": "Etiqueta" } ], "feeds.match": [ @@ -596,7 +642,7 @@ "feeds.match.pattern": [ { "type": 0, - "value": "Padrão da Partida" + "value": "Padrão Correspondente" } ], "feeds.no.feeds.available": [ @@ -608,7 +654,13 @@ "feeds.no.feeds.defined": [ { "type": 0, - "value": "Nenhum feeds definido." + "value": "Não foi definido nenhum feed." + } + ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "Nenhum item corresponde ao termo de pesquisa." } ], "feeds.no.rules.defined": [ @@ -620,13 +672,19 @@ "feeds.regEx": [ { "type": 0, - "value": "RegEx:" + "value": "RegEx" } ], "feeds.search": [ { "type": 0, - "value": "Termo para pesquisa" + "value": "Termo de pesquisa" + } + ], + "feeds.search.term": [ + { + "type": 0, + "value": "Termo de pesquisa" } ], "feeds.select.feed": [ @@ -650,19 +708,19 @@ "feeds.tabs.download.rules": [ { "type": 0, - "value": "Baixar regras" + "value": "Regras de Transferência" } ], "feeds.tabs.feeds": [ { "type": 0, - "value": "Conteúdos" + "value": "Feeds" } ], "feeds.tabs.heading": [ { "type": 0, - "value": "Feed de Torrent" + "value": "Feeds de Torrent" } ], "feeds.tags": [ @@ -671,22 +729,28 @@ "value": "Etiquetas" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Testar Padrão Correspondente" + } + ], "feeds.time.day": [ { "type": 0, - "value": "dias" + "value": "Dias" } ], "feeds.time.hr": [ { "type": 0, - "value": "horas" + "value": "Horas" } ], "feeds.time.min": [ { "type": 0, - "value": "minutos" + "value": "Minutos" } ], "feeds.torrent.destination": [ @@ -698,13 +762,13 @@ "feeds.url": [ { "type": 0, - "value": "URL:" + "value": "URL" } ], "feeds.validation.interval.not.positive": [ { "type": 0, - "value": "The interval must be a positive integer." + "value": "O intervalo deve ser um número inteiro positivo." } ], "feeds.validation.invalid.regular.expression": [ @@ -716,25 +780,25 @@ "feeds.validation.must.select.feed": [ { "type": 0, - "value": "Você precisa selecionar um feed." + "value": "Precisa selecionar um feed." } ], "feeds.validation.must.specify.destination": [ { "type": 0, - "value": "Você deve especificar um destino." + "value": "Precisa especificar um destino." } ], "feeds.validation.must.specify.label": [ { "type": 0, - "value": "Você deve especificar uma etiqueta." + "value": "Precisa especificar uma etiqueta." } ], "feeds.validation.must.specify.valid.feed.url": [ { "type": 0, - "value": "Você deve especificar uma URL de feed válida." + "value": "Precisa especificar um URL de feed válido." } ], "filesystem.empty.directory": [ @@ -746,37 +810,37 @@ "filesystem.error.eacces": [ { "type": 0, - "value": "O Flood não tem permissão para ler este diretório." + "value": "O Flood não tem permissão para aceder a este diretório." } ], "filesystem.error.enoent": [ { "type": 0, - "value": "Este caminho não existe. Ele será criado." + "value": "Este caminho não existe. Vai ser criado." } ], "filesystem.fetching": [ { "type": 0, - "value": "Buscando estrutura de diretórios..." + "value": "Obtendo a estrutura de diretórios..." } ], "filesystem.parent.directory": [ { "type": 0, - "value": "Parent Directory" + "value": "Diretório Superior" } ], "filter.all": [ { "type": 0, - "value": "TODOS" + "value": "Todos" } ], "filter.status.active": [ { "type": 0, - "value": "ativo" + "value": "Ativo" } ], "filter.status.checking": [ @@ -788,19 +852,19 @@ "filter.status.completed": [ { "type": 0, - "value": "Complete" + "value": "Concluído" } ], "filter.status.downloading": [ { "type": 0, - "value": "Baixando" + "value": "Transferindo" } ], "filter.status.error": [ { "type": 0, - "value": "ERRO" + "value": "Erro" } ], "filter.status.inactive": [ @@ -836,13 +900,13 @@ "filter.untagged": [ { "type": 0, - "value": "Desmarcado" + "value": "Sem etiqueta" } ], "general.ago": [ { "type": 0, - "value": "Atrás" + "value": "atrás" } ], "general.at": [ @@ -860,7 +924,7 @@ "general.clipboard.copy": [ { "type": 0, - "value": "copiar" + "value": "Copiar" } ], "general.of": [ @@ -1322,13 +1386,13 @@ "sidebar.speedlimits.download": [ { "type": 0, - "value": "DOWNLOAD" + "value": "TRANSFERIR" } ], "sidebar.speedlimits.upload": [ { "type": 0, - "value": "UPLOAD" + "value": "ENVIAR" } ], "sidebar.transferdata.downloaded": [ @@ -1352,7 +1416,7 @@ "status.diskusage.free": [ { "type": 0, - "value": "Free" + "value": "Livre" } ], "status.diskusage.title": [ @@ -1370,7 +1434,7 @@ "status.diskusage.used": [ { "type": 0, - "value": "Used" + "value": "Utilizado" } ], "torrent.list.peers": [ @@ -1696,7 +1760,7 @@ "torrents.details.mediainfo": [ { "type": 0, - "value": "Mediainfo" + "value": "Informações de mídia" } ], "torrents.details.peers": [ @@ -1796,7 +1860,7 @@ "torrents.list.context.download": [ { "type": 0, - "value": "Download" + "value": "Transferir" } ], "torrents.list.context.move": [ @@ -1922,7 +1986,7 @@ "torrents.properties.eta": [ { "type": 0, - "value": "ETA" + "value": "Tempo Estimado" } ], "torrents.properties.free.disk.space": [ @@ -1958,7 +2022,7 @@ "torrents.properties.peers": [ { "type": 0, - "value": "Peers" + "value": "Pares" } ], "torrents.properties.percentage": [ @@ -1976,7 +2040,7 @@ "torrents.properties.seeds": [ { "type": 0, - "value": "Seeds" + "value": "Sementes" } ], "torrents.properties.size": [ @@ -2000,7 +2064,7 @@ "torrents.properties.trackers": [ { "type": 0, - "value": "Trackers" + "value": "Rastreadores" } ], "torrents.properties.upload.speed": [ @@ -2176,7 +2240,7 @@ "unit.time.year": [ { "type": 0, - "value": "yr" + "value": "a" } ], "window.title": [ diff --git a/client/src/javascript/i18n/compiled/ro.json b/client/src/javascript/i18n/compiled/ro.json index 2dacfac4a..34ea87b65 100644 --- a/client/src/javascript/i18n/compiled/ro.json +++ b/client/src/javascript/i18n/compiled/ro.json @@ -395,6 +395,12 @@ "value": "Anulează" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -533,6 +539,12 @@ "value": "Răsfoiește feed-uri" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -557,6 +569,12 @@ "value": "Reguli existente" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -619,6 +637,12 @@ "value": "Nici un flux definit." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -637,6 +661,12 @@ "value": "Termenul de căutare" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -679,6 +709,12 @@ "value": "Etichete" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/ru.json b/client/src/javascript/i18n/compiled/ru.json index 043365462..ce8368dac 100644 --- a/client/src/javascript/i18n/compiled/ru.json +++ b/client/src/javascript/i18n/compiled/ru.json @@ -380,6 +380,12 @@ "value": "Отмена" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -518,6 +524,12 @@ "value": "Просмотр каналов" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -542,6 +554,12 @@ "value": "Существующие правила" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -604,6 +622,12 @@ "value": "Каналы не определены." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -622,6 +646,12 @@ "value": "Поисковый термин" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -664,6 +694,12 @@ "value": "Теги" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/sr.json b/client/src/javascript/i18n/compiled/sr.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/sr.json +++ b/client/src/javascript/i18n/compiled/sr.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/sv.json b/client/src/javascript/i18n/compiled/sv.json index c25e25941..7bc37f168 100644 --- a/client/src/javascript/i18n/compiled/sv.json +++ b/client/src/javascript/i18n/compiled/sv.json @@ -407,6 +407,12 @@ "value": "Avbryt" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -545,6 +551,12 @@ "value": "Bläddra bland flöden" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -569,6 +581,12 @@ "value": "Befintliga regler" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -631,6 +649,12 @@ "value": "Inga flöden har definierats." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -649,6 +673,12 @@ "value": "Sök termin" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -691,6 +721,12 @@ "value": "Taggar" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/tr.json b/client/src/javascript/i18n/compiled/tr.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/tr.json +++ b/client/src/javascript/i18n/compiled/tr.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/uk.json b/client/src/javascript/i18n/compiled/uk.json index 9b93912f2..fc8640e5b 100644 --- a/client/src/javascript/i18n/compiled/uk.json +++ b/client/src/javascript/i18n/compiled/uk.json @@ -419,6 +419,12 @@ "value": "Скасувати" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Перегляд стрічок" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Існуючі правила" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "Каналів не визначено." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Шукати за словом" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Мітки" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/vi.json b/client/src/javascript/i18n/compiled/vi.json index e99a1f154..4bca3cfaf 100644 --- a/client/src/javascript/i18n/compiled/vi.json +++ b/client/src/javascript/i18n/compiled/vi.json @@ -419,6 +419,12 @@ "value": "Cancel" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -557,6 +563,12 @@ "value": "Browse feeds" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -581,6 +593,12 @@ "value": "Existing Rules" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -643,6 +661,12 @@ "value": "No feeds defined." } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -661,6 +685,12 @@ "value": "Search term" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -703,6 +733,12 @@ "value": "Tags" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/zh-Hans.json b/client/src/javascript/i18n/compiled/zh-Hans.json index 62863ef0f..ee03aea26 100644 --- a/client/src/javascript/i18n/compiled/zh-Hans.json +++ b/client/src/javascript/i18n/compiled/zh-Hans.json @@ -239,6 +239,12 @@ "value": "取消" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -377,6 +383,12 @@ "value": "浏览订阅源" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -401,6 +413,12 @@ "value": "现有的规则" } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -437,6 +455,12 @@ "value": "没有定义订阅源。" } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -455,6 +479,12 @@ "value": "搜索关键词" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -497,6 +527,12 @@ "value": "标签" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/compiled/zh-Hant.json b/client/src/javascript/i18n/compiled/zh-Hant.json index 4ba4f8df4..635d5e303 100644 --- a/client/src/javascript/i18n/compiled/zh-Hant.json +++ b/client/src/javascript/i18n/compiled/zh-Hant.json @@ -251,6 +251,12 @@ "value": "取消" } ], + "button.download": [ + { + "type": 0, + "value": "Download" + } + ], "button.new": [ { "type": 0, @@ -389,6 +395,12 @@ "value": "瀏覽訊息來源" } ], + "feeds.check": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.exclude": [ { "type": 0, @@ -413,6 +425,12 @@ "value": "已存在的規則 " } ], + "feeds.interval": [ + { + "type": 0, + "value": "Interval" + } + ], "feeds.label": [ { "type": 0, @@ -475,6 +493,12 @@ "value": "沒有任何訊息來源" } ], + "feeds.no.items.matching": [ + { + "type": 0, + "value": "No items matching search term." + } + ], "feeds.no.rules.defined": [ { "type": 0, @@ -493,6 +517,12 @@ "value": "搜尋關鍵字" } ], + "feeds.search.term": [ + { + "type": 0, + "value": "Search term" + } + ], "feeds.select.feed": [ { "type": 0, @@ -535,6 +565,12 @@ "value": "標籤" } ], + "feeds.test.match": [ + { + "type": 0, + "value": "Test Match Pattern" + } + ], "feeds.time.day": [ { "type": 0, diff --git a/client/src/javascript/i18n/translations/af.json b/client/src/javascript/i18n/translations/af.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/af.json +++ b/client/src/javascript/i18n/translations/af.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/ar.json b/client/src/javascript/i18n/translations/ar.json index 5260edac6..47b51951d 100644 --- a/client/src/javascript/i18n/translations/ar.json +++ b/client/src/javascript/i18n/translations/ar.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "مسار مقبس rTorrent", "button.add": "إضافة", "button.cancel": "إلغاء", + "button.download": "Download", "button.no": "لا", "button.save": "حفظ الإعدادات", "button.save.feed": "حفظ", @@ -46,9 +47,11 @@ "feeds.add.feed": "إضافة موجز ويب", "feeds.applicable.feed": "تغذية قابلة للتطبيق", "feeds.apply.tags": "تطبيق العلامات", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "استبعاد النمط", "feeds.existing.feeds": "التحديثات الموجودة", "feeds.existing.rules": "القواعد الحالية", + "feeds.interval": "Interval", "feeds.label": "تسمية", "feeds.match.count": "{count, plural, =1 {# تطابق} other {# يتطابق}}", "feeds.match.pattern": "نمط المطابقة", @@ -56,6 +59,7 @@ "feeds.exclude": "استبعاد", "feeds.no.feeds.available": "لا توجد تغذية متاحة.", "feeds.no.feeds.defined": "لم يتم تعريف أي تغذية.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "لا توجد قواعد معرفة.", "feeds.regEx": "ريريكس", "feeds.select.feed": "حدد موجز الويب", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "التحديثات", "feeds.tabs.heading": "تغذية تورنت", "feeds.tags": "الوسوم", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "الساعات", "feeds.time.min": "دقائق", "feeds.time.day": "أيام", "feeds.torrent.destination": "وجهة تورنت", "feeds.url": "الرابط", "feeds.search": "مصطلح البحث", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "تعبير عادي غير صالح.", "feeds.validation.must.select.feed": "يجب عليك تحديد التغذية.", "feeds.validation.must.specify.destination": "يجب عليك تحديد الوجهة.", diff --git a/client/src/javascript/i18n/translations/ca.json b/client/src/javascript/i18n/translations/ca.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/ca.json +++ b/client/src/javascript/i18n/translations/ca.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/cs.json b/client/src/javascript/i18n/translations/cs.json index b1334e3df..462e98646 100644 --- a/client/src/javascript/i18n/translations/cs.json +++ b/client/src/javascript/i18n/translations/cs.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "Cesta k rtorrentu", "button.add": "Přidat", "button.cancel": "Zrušit", + "button.download": "Download", "button.no": "Ne", "button.save": "Uložit nastavení", "button.save.feed": "Uložit", @@ -46,9 +47,11 @@ "feeds.add.feed": "Přidat kanál", "feeds.applicable.feed": "Použitelný kanál", "feeds.apply.tags": "Použít štítky", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Vyloučit vzor", "feeds.existing.feeds": "Existující kanály", "feeds.existing.rules": "Stávající pravidla", + "feeds.interval": "Interval", "feeds.label": "Popisek", "feeds.match.count": "{count, plural, =1 {# shoduje se s} other {# se shoduje s}}", "feeds.match.pattern": "Vzor zápasu", @@ -56,6 +59,7 @@ "feeds.exclude": "Vyjmout", "feeds.no.feeds.available": "Žádné zdroje nejsou k dispozici.", "feeds.no.feeds.defined": "Nebyly definovány žádné kanály.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Nebyla definována žádná pravidla.", "feeds.regEx": "RegEx", "feeds.select.feed": "Vybrat kanál", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Zdroje", "feeds.tabs.heading": "Torrent kanály", "feeds.tags": "Štítky", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hodiny", "feeds.time.min": "Zápis z jednání", "feeds.time.day": "Dny", "feeds.torrent.destination": "Cíl Torrentu", "feeds.url": "URL", "feeds.search": "Hledat termín", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Neplatný regulární výraz.", "feeds.validation.must.select.feed": "Musíte vybrat kanál.", "feeds.validation.must.specify.destination": "Musíte zadat destinaci.", diff --git a/client/src/javascript/i18n/translations/da.json b/client/src/javascript/i18n/translations/da.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/da.json +++ b/client/src/javascript/i18n/translations/da.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/de.json b/client/src/javascript/i18n/translations/de.json index 1f7510b31..d1d00abc4 100644 --- a/client/src/javascript/i18n/translations/de.json +++ b/client/src/javascript/i18n/translations/de.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent-Socket-Pfad", "button.add": "Neu", "button.cancel": "Abbrechen", + "button.download": "Download", "button.no": "Nein", "button.save": "Einstellungen speichern", "button.save.feed": "Speichern", @@ -46,9 +47,11 @@ "feeds.add.feed": "Neuer Feed", "feeds.applicable.feed": "Anwendbarer Feed", "feeds.apply.tags": "Tags anwenden", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Muster ausschließen", "feeds.existing.feeds": "Vorhandene Feeds", "feeds.existing.rules": "Bestehende Regeln", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# Spiel} other {# Spiele}}", "feeds.match.pattern": "Match-Muster", @@ -56,6 +59,7 @@ "feeds.exclude": "Ausschließen", "feeds.no.feeds.available": "Keine Feeds verfügbar.", "feeds.no.feeds.defined": "Keine Feeds definiert.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Keine Regeln definiert.", "feeds.regEx": "RegEx", "feeds.select.feed": "Feed auswählen", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent-Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Stunden", "feeds.time.min": "Minuten", "feeds.time.day": "Tage", "feeds.torrent.destination": "Torrent-Ziel", "feeds.url": "URL", "feeds.search": "Suchbegriff", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Ungültiger regulärer Ausdruck.", "feeds.validation.must.select.feed": "Sie müssen einen Feed auswählen.", "feeds.validation.must.specify.destination": "Sie müssen ein Ziel angeben.", diff --git a/client/src/javascript/i18n/translations/el.json b/client/src/javascript/i18n/translations/el.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/el.json +++ b/client/src/javascript/i18n/translations/el.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/es.json b/client/src/javascript/i18n/translations/es.json index c7cada589..99207f82e 100644 --- a/client/src/javascript/i18n/translations/es.json +++ b/client/src/javascript/i18n/translations/es.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Agregar", "button.cancel": "Cancelar", + "button.download": "Download", "button.no": "Nu", "button.save": "Guardar Configuración", "button.save.feed": "Guardar", @@ -46,9 +47,11 @@ "feeds.add.feed": "Agregar Fuente", "feeds.applicable.feed": "Fuente Correspondiente", "feeds.apply.tags": "Aplicar Etiquetas", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Patrón de Exclusión", "feeds.existing.feeds": "Fuentes Existentes", "feeds.existing.rules": "Reglas Existentes", + "feeds.interval": "Interval", "feeds.label": "Rótulo", "feeds.match.count": "{count, plural, =1 {# Encontrado} other {# Encontrados}}", "feeds.match.pattern": "Patrón de Inclusión", @@ -56,6 +59,7 @@ "feeds.exclude": "Excluir", "feeds.no.feeds.available": "No hay fuentes disponibles", "feeds.no.feeds.defined": "No hay fuentes definidas", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No hay reglas definidas", "feeds.regEx": "Regular", "feeds.select.feed": "Seleccionar Fuente", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Fuentes", "feeds.tabs.heading": "Fuentes de Torrent", "feeds.tags": "Etiquetas", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "{durationValue} hr", "feeds.time.min": "{durationValue} min", "feeds.time.day": "Días", "feeds.torrent.destination": "Destinación de Torrent", "feeds.url": "URL", "feeds.search": "Buscar término", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "RegEx invalida.", "feeds.validation.must.select.feed": "Debe seleccionar una fuente", "feeds.validation.must.specify.destination": "Debe seleccionar una destinación.", diff --git a/client/src/javascript/i18n/translations/fi.json b/client/src/javascript/i18n/translations/fi.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/fi.json +++ b/client/src/javascript/i18n/translations/fi.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/fr.json b/client/src/javascript/i18n/translations/fr.json index 5558d6fdc..70f29dbe3 100644 --- a/client/src/javascript/i18n/translations/fr.json +++ b/client/src/javascript/i18n/translations/fr.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "Chemin de la chaussure rTorrent", "button.add": "Ajouter", "button.cancel": "Annuler", + "button.download": "Download", "button.no": "Non", "button.save": "Enregistrer", "button.save.feed": "Enregistrer", @@ -46,9 +47,11 @@ "feeds.add.feed": "Ajouter un Flux", "feeds.applicable.feed": "Flux Applicable", "feeds.apply.tags": "Appliquer les Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclure le Motif", "feeds.existing.feeds": "Flux Existants", "feeds.existing.rules": "Règles Existantes", + "feeds.interval": "Interval", "feeds.label": "Étiquette", "feeds.match.count": "{count, plural, =1 {# correspond} other {# correspondent}}", "feeds.match.pattern": "Motif Correspondant", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclure", "feeds.no.feeds.available": "Aucun flux disponible.", "feeds.no.feeds.defined": "Aucun flux défini.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Aucune règle définie.", "feeds.regEx": "RegEx", "feeds.select.feed": "Sélectionner un Flux", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Flux", "feeds.tabs.heading": "Flux de Torrent", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "{durationValue} h", "feeds.time.min": "{durationValue} min", "feeds.time.day": "Jours", "feeds.torrent.destination": "Destination du Torrent", "feeds.url": "URL", "feeds.search": "Terme de recherche", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Expression régulière invalide.", "feeds.validation.must.select.feed": "Vous devez choisir un flux.", "feeds.validation.must.specify.destination": "Vous devez définir un emplacement.", diff --git a/client/src/javascript/i18n/translations/he.json b/client/src/javascript/i18n/translations/he.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/he.json +++ b/client/src/javascript/i18n/translations/he.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/hu.json b/client/src/javascript/i18n/translations/hu.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/hu.json +++ b/client/src/javascript/i18n/translations/hu.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/it.json b/client/src/javascript/i18n/translations/it.json index a64638db8..d51691838 100644 --- a/client/src/javascript/i18n/translations/it.json +++ b/client/src/javascript/i18n/translations/it.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Aggiungi", "button.cancel": "Annulla", + "button.download": "Download", "button.no": "No", "button.save": "Salva Impostazioni", "button.save.feed": "Salva", @@ -46,9 +47,11 @@ "feeds.add.feed": "Aggiungi Feed", "feeds.applicable.feed": "Alimenti Applicabili", "feeds.apply.tags": "Applica Etichette", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Escludi Motivo", "feeds.existing.feeds": "Feed Esistenti", "feeds.existing.rules": "Regole Esistenti", + "feeds.interval": "Interval", "feeds.label": "Etichetta", "feeds.match.count": "{count, plural, =1 {# partita} other {# partite}}", "feeds.match.pattern": "Modello Di Partita", @@ -56,6 +59,7 @@ "feeds.exclude": "Escludi", "feeds.no.feeds.available": "Nessun feed disponibile.", "feeds.no.feeds.defined": "Nessun feed definito.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Nessuna regola definita.", "feeds.regEx": "RegEx", "feeds.select.feed": "Seleziona Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feed", "feeds.tabs.heading": "Feed Torrent", "feeds.tags": "Etichette", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Ore", "feeds.time.min": "Minuti", "feeds.time.day": "Giorni", "feeds.torrent.destination": "Destinazione Torrent", "feeds.url": "URL", "feeds.search": "Termine di ricerca", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Espressione regolare non valida.", "feeds.validation.must.select.feed": "Devi selezionare un feed.", "feeds.validation.must.specify.destination": "È necessario specificare una destinazione.", diff --git a/client/src/javascript/i18n/translations/ja.json b/client/src/javascript/i18n/translations/ja.json index 7920d6e57..1813ad22d 100644 --- a/client/src/javascript/i18n/translations/ja.json +++ b/client/src/javascript/i18n/translations/ja.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent ソケットパス", "button.add": "追加", "button.cancel": "キャンセル", + "button.download": "Download", "button.no": "いいえ", "button.save": "設定を保存", "button.save.feed": "保存", @@ -46,9 +47,11 @@ "feeds.add.feed": "フィードを追加", "feeds.applicable.feed": "適用されるフィード", "feeds.apply.tags": "タグを適用", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "パターンを除外", "feeds.existing.feeds": "既存のフィード", "feeds.existing.rules": "既存のルール", + "feeds.interval": "Interval", "feeds.label": "ラベル", "feeds.match.count": "{count, plural, =1 {# match} other {# match}}", "feeds.match.pattern": "パターンに一致", @@ -56,6 +59,7 @@ "feeds.exclude": "除外", "feeds.no.feeds.available": "利用可能なフィードはありません。", "feeds.no.feeds.defined": "フィードが定義されていません。", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "ルールが定義されていません。", "feeds.regEx": "RegEx", "feeds.select.feed": "フィードを選択", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "フィード", "feeds.tabs.heading": "トレントフィード", "feeds.tags": "タグ", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "時間", "feeds.time.min": "分", "feeds.time.day": "日数", "feeds.torrent.destination": "トレントの宛先", "feeds.url": "URL", "feeds.search": "検索キーワード:", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "無効な正規表現です。", "feeds.validation.must.select.feed": "フィードを選択してください。", "feeds.validation.must.specify.destination": "目的地を指定する必要があります。", diff --git a/client/src/javascript/i18n/translations/ko.json b/client/src/javascript/i18n/translations/ko.json index eafd06be2..e388407a7 100644 --- a/client/src/javascript/i18n/translations/ko.json +++ b/client/src/javascript/i18n/translations/ko.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent 소켓 경로", "button.add": "추가", "button.cancel": "취소", + "button.download": "Download", "button.no": "아니오", "button.save": "설정 저장", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "피드 추가", "feeds.applicable.feed": "가용 피드", "feeds.apply.tags": "태그 적용", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "제외 패턴", "feeds.existing.feeds": "설정된 피드", "feeds.existing.rules": "설정된 규칙", + "feeds.interval": "Interval", "feeds.label": "라벨", "feeds.match.count": "{count, plural, =1 {# 일치} other {# 일치}}", "feeds.match.pattern": "일치 패턴", @@ -56,6 +59,7 @@ "feeds.exclude": "제외", "feeds.no.feeds.available": "사용할 수 있는 피드가 없습니다.", "feeds.no.feeds.defined": "지정된 피드가 없습니다.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "지정된 규칙이 없습니다.", "feeds.regEx": "정규 표현식", "feeds.select.feed": "피드 선택", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "피드", "feeds.tabs.heading": "토렌트 피드", "feeds.tags": "태그", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "{durationValue} 시간", "feeds.time.min": "{durationValue} 분", "feeds.time.day": "Days", "feeds.torrent.destination": "토렌트 저장 경로", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "정규 표현식이 잘못되었습니다.", "feeds.validation.must.select.feed": "피드를 선택해야 합니다.", "feeds.validation.must.specify.destination": "저장할 경로를 지정해야 합니다.", diff --git a/client/src/javascript/i18n/translations/nl.json b/client/src/javascript/i18n/translations/nl.json index ad23cb52c..13d174088 100644 --- a/client/src/javascript/i18n/translations/nl.json +++ b/client/src/javascript/i18n/translations/nl.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Pad", "button.add": "Toevoegen", "button.cancel": "Annuleren", + "button.download": "Download", "button.no": "Nee", "button.save": "Instellingen opslaan", "button.save.feed": "Opslaan", @@ -46,9 +47,11 @@ "feeds.add.feed": "Feed toevoegen", "feeds.applicable.feed": "Feed", "feeds.apply.tags": "Tags toevoegen", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Overslaan op patroon", "feeds.existing.feeds": "Bestaande feeds", "feeds.existing.rules": "Regels", + "feeds.interval": "Interval", "feeds.label": "Omschrijving", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Overeenkomst op patroon", @@ -56,6 +59,7 @@ "feeds.exclude": "Uitsluiten", "feeds.no.feeds.available": "Geen feeds beschikbaar.", "feeds.no.feeds.defined": "Geen feeds toegevoegd.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Geen regels toegevoegd.", "feeds.regEx": "Reguliere expressie", "feeds.select.feed": "Selecteer feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent feeds", "feeds.tags": "Labels", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "{durationValue} uur", "feeds.time.min": "{durationValue} minuten", "feeds.time.day": "dagen", "feeds.torrent.destination": "Torrent downloadlocatie", "feeds.url": "URL", "feeds.search": "Zoek term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Fout in reguliere expressie.", "feeds.validation.must.select.feed": "Je moet een feed selecteren.", "feeds.validation.must.specify.destination": "Je moet een downloadlocatie opgeven.", diff --git a/client/src/javascript/i18n/translations/no.json b/client/src/javascript/i18n/translations/no.json index a98ac1410..9ef5b0af0 100644 --- a/client/src/javascript/i18n/translations/no.json +++ b/client/src/javascript/i18n/translations/no.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Legg til", "button.cancel": "Avbryt", + "button.download": "Download", "button.no": "Nei", "button.save": "Lagre innstillinger", "button.save.feed": "Lagre", @@ -46,9 +47,11 @@ "feeds.add.feed": "Legg til strøm", "feeds.applicable.feed": "Gjeldende Feed", "feeds.apply.tags": "Legg til etiketter", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Utelat Mønster", "feeds.existing.feeds": "Eksisterende Feeder", "feeds.existing.rules": "Eksisterende regler", + "feeds.interval": "Interval", "feeds.label": "Etikett", "feeds.match.count": "{count, plural, =1 {# treff} other {# matcher}}", "feeds.match.pattern": "Matchende mønster", @@ -56,6 +59,7 @@ "feeds.exclude": "Ekskluder", "feeds.no.feeds.available": "Ingen fôr tilgjengelig.", "feeds.no.feeds.defined": "Ingen feeds definert.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Ingen regler definert.", "feeds.regEx": "RegEks", "feeds.select.feed": "Velg mating", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Strøm", "feeds.tabs.heading": "Torrent Feeder", "feeds.tags": "Tagger", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Timer", "feeds.time.min": "Minutter", "feeds.time.day": "Dager", "feeds.torrent.destination": "Torrent destinasjon", "feeds.url": "Nettadresse", "feeds.search": "Søk etter uttrykk", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Ugyldig regulært uttrykk.", "feeds.validation.must.select.feed": "Du må velge en mating.", "feeds.validation.must.specify.destination": "Du må spesifisere en destinasjon.", diff --git a/client/src/javascript/i18n/translations/pl.json b/client/src/javascript/i18n/translations/pl.json index 9b93d14eb..0a8cf48df 100644 --- a/client/src/javascript/i18n/translations/pl.json +++ b/client/src/javascript/i18n/translations/pl.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "Ścieżka do gniazda rTorrent", "button.add": "Dodaj", "button.cancel": "Anuluj", + "button.download": "Download", "button.no": "Nie", "button.save": "Zapisz ustawienia", "button.save.feed": "Zapisz", @@ -46,9 +47,11 @@ "feeds.add.feed": "Dodaj kanał", "feeds.applicable.feed": "Stosowany kanał", "feeds.apply.tags": "Zastosuj tagi", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Wyklucz wzór", "feeds.existing.feeds": "Istniejące kanały", "feeds.existing.rules": "Istniejące reguły", + "feeds.interval": "Interval", "feeds.label": "Etykieta", "feeds.match.count": "{count, plural, =1 {# pasuje do} other {# pasuje do}}", "feeds.match.pattern": "Wzorzec dopasowania", @@ -56,6 +59,7 @@ "feeds.exclude": "Wyklucz", "feeds.no.feeds.available": "Brak dostępnych kanałów.", "feeds.no.feeds.defined": "Nie zdefiniowano kanałów.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Nie zdefiniowano reguł.", "feeds.regEx": "RegEx", "feeds.select.feed": "Wybierz kanał", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Kanały", "feeds.tabs.heading": "Kanały torrent", "feeds.tags": "Tagi", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Godziny", "feeds.time.min": "Protokoły", "feeds.time.day": "Dni", "feeds.torrent.destination": "Przeznaczenie torrentów", "feeds.url": "Adres URL", "feeds.search": "Szukaj frazy", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Nieprawidłowe wyrażenie regularne.", "feeds.validation.must.select.feed": "Musisz wybrać kanał.", "feeds.validation.must.specify.destination": "Musisz określić miejsce docelowe.", diff --git a/client/src/javascript/i18n/translations/pt.json b/client/src/javascript/i18n/translations/pt.json index 94e5d93f1..c26fc0c27 100644 --- a/client/src/javascript/i18n/translations/pt.json +++ b/client/src/javascript/i18n/translations/pt.json @@ -3,103 +3,109 @@ "actionbar.button.stop.torrent": "Parar Torrent", "actionbar.button.add.torrent": "Adicionar Torrent", "actionbar.button.remove.torrent": "Remover Torrent", - "alert.torrent.add": "{countElement} {count, plural, =1 {torrent} other {torrents}}", - "alert.torrent.add.failed": "Falha ao adicionar {countElement} {count, plural, =1 {torrent} other {torrents}}", + "alert.torrent.add": "Adicionado com sucesso {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.add.failed": "Falha ao adicionar {countElement} {count, plural, =1 {torrent} other {torrents}}.", "alert.torrent.move": "Movido com sucesso {countElement} {count, plural, =1 {torrent} other {torrents}}", - "alert.torrent.move.failed": "Falha ao mover {countElement} {count, plural, =1 {torrent} other {torrents}}", - "alert.torrent.remove": "{countElement} {count, plural, =1 {torrent removido com sucesso} other {torrents}}", - "alert.torrent.remove.failed": "Falha ao remover {countElement} {count, plural, =1 {torrent} other {torrents}}", - "alert.settings.saved": "Configurações salvas com sucesso.", - "auth.add.user": "Adicionar Usuário", + "alert.torrent.move.failed": "Falha ao mover {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.torrent.remove": "Removido com sucesso {countElement} {count, plural, =1 {torrent removido com sucesso} other {torrents}}.", + "alert.torrent.remove.failed": "Falha ao remover {countElement} {count, plural, =1 {torrent} other {torrents}}.", + "alert.settings.saved": "Configurações guardas com sucesso.", + "auth.add.user": "Adicionar Utilizador", "auth.connectionType": "Tipo de Conexão rTorrent", "auth.connectionType.tcp": "TCP", - "auth.connectionType.socket": "Encaixe Unix", + "auth.connectionType.socket": "Unix Socket", "auth.create.account": "Criar conta", "auth.create.an.account": "Criar uma conta", - "auth.create.an.account.intro": "Bem vindo à Inundação!", - "auth.current.user": "Usuário atual", - "auth.error.username.empty": "Nome de usuário não pode estar vazio.", + "auth.create.an.account.intro": "Bem vindo ao Flood!", + "auth.current.user": "Utilizador atual", + "auth.error.username.empty": "Nome de utilizador não pode estar vazio.", "auth.log.in": "Iniciar sessão", - "auth.login": "Conectar-se", - "auth.login.intro": "Log in to your account.", + "auth.login": "Iniciar sessão", + "auth.login.intro": "Inicie sessão na sua conta.", "auth.password": "Palavra-passe", - "auth.user.accounts": "Contas de usuário", - "auth.username": "Usuário:", + "auth.user.accounts": "Contas dos utilizadores", + "auth.username": "Nome de Utilizador", "auth.admin": "Administrador", - "auth.message.not.admin": "Usuário não é Administrador", + "auth.message.not.admin": "Utilizador não é Administrador", "auth.rtorrentHost": "Host do rTorrent", "auth.rtorrentPort": "Porta de rTorrent", - "auth.rtorrentSocket": "Encaixe rTorrent", - "auth.rtorrentSocketPath": "Caminho de soquete rTorrent", + "auth.rtorrentSocket": "Socket do rTorrent", + "auth.rtorrentSocketPath": "Localização da Socket do rTorrent", "button.add": "Adicionar", - "button.cancel": "cancelar", + "button.cancel": "Cancelar", + "button.download": "Transferir", "button.no": "Não", - "button.save": "Salvar Configurações", + "button.save": "Guardar Configurações", "button.save.feed": "Guardar", - "button.test": "teste", + "button.test": "Testar", "button.state.adding": "Adicionando...", - "button.yes": "sim", + "button.yes": "Sim", "button.new": "Novidades", "connectivity.modal.title": "Problema de conectividade", - "connectivity.modal.content": "Não é possível conectar-se ao rTorrent. Por favor, atualize a informação agora.", + "connectivity.modal.content": "Não é possível conectar-se ao rTorrent. Por favor atualize a informação agora.", "feeds.add.automatic.download.rule": "Adicionar regra de download", "feeds.add.feed": "Adicionar Feed", "feeds.applicable.feed": "Feed aplicável", - "feeds.apply.tags": "Aplicar Tags", + "feeds.apply.tags": "Aplicar Etiquetas", + "feeds.check": "Padrão de Teste de Partida", "feeds.exclude.pattern": "Excluir padrão", "feeds.existing.feeds": "Feeds existentes", "feeds.existing.rules": "Regras existentes", - "feeds.label": "Descrição", + "feeds.interval": "Intervalo", + "feeds.label": "Etiqueta", "feeds.match.count": "{count, plural, =1 {# match} other {# match}}", - "feeds.match.pattern": "Padrão da Partida", + "feeds.match.pattern": "Padrão Correspondente", "feeds.match": "Corresponder", "feeds.exclude": "Excluir", "feeds.no.feeds.available": "Não há feeds disponíveis.", - "feeds.no.feeds.defined": "Nenhum feeds definido.", + "feeds.no.feeds.defined": "Não foi definido nenhum feed.", + "feeds.no.items.matching": "Nenhum item corresponde ao termo de pesquisa.", "feeds.no.rules.defined": "Nenhuma regra definida.", - "feeds.regEx": "RegEx:", + "feeds.regEx": "RegEx", "feeds.select.feed": "Selecionar Feed", "feeds.select.interval": "Intervalo", "feeds.start.on.load": "Iniciar ao carregar", - "feeds.tabs.download.rules": "Baixar regras", - "feeds.tabs.feeds": "Conteúdos", - "feeds.tabs.heading": "Feed de Torrent", + "feeds.tabs.download.rules": "Regras de Transferência", + "feeds.tabs.feeds": "Feeds", + "feeds.tabs.heading": "Feeds de Torrent", "feeds.tags": "Etiquetas", - "feeds.time.hr": "horas", - "feeds.time.min": "minutos", - "feeds.time.day": "dias", + "feeds.test.match": "Testar Padrão Correspondente", + "feeds.time.hr": "Horas", + "feeds.time.min": "Minutos", + "feeds.time.day": "Dias", "feeds.torrent.destination": "Destino do Torrent", - "feeds.url": "URL:", - "feeds.search": "Termo para pesquisa", + "feeds.url": "URL", + "feeds.search": "Termo de pesquisa", + "feeds.search.term": "Termo de pesquisa", "feeds.validation.invalid.regular.expression": "Expressão regular inválida.", - "feeds.validation.must.select.feed": "Você precisa selecionar um feed.", - "feeds.validation.must.specify.destination": "Você deve especificar um destino.", - "feeds.validation.must.specify.label": "Você deve especificar uma etiqueta.", - "feeds.validation.must.specify.valid.feed.url": "Você deve especificar uma URL de feed válida.", - "feeds.validation.interval.not.positive": "The interval must be a positive integer.", + "feeds.validation.must.select.feed": "Precisa selecionar um feed.", + "feeds.validation.must.specify.destination": "Precisa especificar um destino.", + "feeds.validation.must.specify.label": "Precisa especificar uma etiqueta.", + "feeds.validation.must.specify.valid.feed.url": "Precisa especificar um URL de feed válido.", + "feeds.validation.interval.not.positive": "O intervalo deve ser um número inteiro positivo.", "feeds.browse.feeds": "Procurar feeds", "filesystem.empty.directory": "Diretório vazio.", - "filesystem.error.eacces": "O Flood não tem permissão para ler este diretório.", - "filesystem.error.enoent": "Este caminho não existe. Ele será criado.", - "filesystem.fetching": "Buscando estrutura de diretórios...", - "filesystem.parent.directory": "Parent Directory", - "filter.all": "TODOS", + "filesystem.error.eacces": "O Flood não tem permissão para aceder a este diretório.", + "filesystem.error.enoent": "Este caminho não existe. Vai ser criado.", + "filesystem.fetching": "Obtendo a estrutura de diretórios...", + "filesystem.parent.directory": "Diretório Superior", + "filter.all": "Todos", "filter.status.title": "Filtrar por status", - "filter.status.downloading": "Baixando", - "filter.status.completed": "Complete", - "filter.status.active": "ativo", + "filter.status.downloading": "Transferindo", + "filter.status.completed": "Concluído", + "filter.status.active": "Ativo", "filter.status.inactive": "Inativo", - "filter.status.error": "ERRO", + "filter.status.error": "Erro", "filter.status.stopped": "Parado", "filter.status.checking": "Verificando", "filter.tracker.title": "Filtrar por Rastreador", "filter.tag.title": "Filtrar por Tag", - "filter.untagged": "Desmarcado", - "general.ago": "Atrás", + "filter.untagged": "Sem etiqueta", + "general.ago": "atrás", "general.at": "em", "general.to": "para", "general.of": "de", - "general.clipboard.copy": "copiar", + "general.clipboard.copy": "Copiar", "general.clipboard.copied": "Copiado", "mediainfo.execError": "Ocorreu um erro durante a execução de mediainfo no servidor. Verifique se a mediainfo está instalada e disponível no PATH para Flood.", "mediainfo.fetching": "Buscando...", @@ -176,8 +182,8 @@ "sidebar.search.placeholder": "Procurar torrents", "sidebar.transferdata.downloaded": "Baixado", "sidebar.transferdata.uploaded": "Enviado", - "sidebar.speedlimits.download": "DOWNLOAD", - "sidebar.speedlimits.upload": "UPLOAD", + "sidebar.speedlimits.download": "TRANSFERIR", + "sidebar.speedlimits.upload": "ENVIAR", "speed.unlimited": "Ilimitado", "unit.size.byte": "B", "unit.size.kilobyte": "KB", @@ -185,7 +191,7 @@ "unit.size.gigabyte": "BR", "unit.size.terabyte": "Tb", "unit.speed": "{baseUnit}/s", - "unit.time.year": "yr", + "unit.time.year": "a", "unit.time.week": "Semana", "unit.time.day": "d", "unit.time.hour": "HR", @@ -236,7 +242,7 @@ "torrents.details.general.type.private": "Privado", "torrents.details.general.type.public": "Público", "torrents.details.general.type": "tipo", - "torrents.details.mediainfo": "Mediainfo", + "torrents.details.mediainfo": "Informações de mídia", "torrents.details.peers.no.data": "Não há dados de par para este torrent.", "torrents.details.peers": "Pares", "torrents.details.selected.files": "{count, plural, =1 {{countElement} arquivo selecionado} other {{countElement} arquivos selecionados}}", @@ -249,7 +255,7 @@ "torrents.list.context.details": "Detalhes do Torrent", "torrents.list.context.move": "Definir local do Torrent", "torrents.list.context.pause": "Suspender", - "torrents.list.context.download": "Download", + "torrents.list.context.download": "Transferir", "torrents.list.context.priority": "Prioridade", "torrents.list.context.remove": "Excluir", "torrents.list.context.set.tags": "Definir Tags", @@ -271,7 +277,7 @@ "torrents.properties.creation.date": "Data de Criação", "torrents.properties.download.speed": "Velocidade de Download", "torrents.properties.download.total": "Baixado", - "torrents.properties.eta": "ETA", + "torrents.properties.eta": "Tempo Estimado", "torrents.properties.free.disk.space": "Espaço em disco livre", "torrents.properties.hash": "Hash", "torrents.properties.ignore.schedule": "Ignorar o Agendador", @@ -284,9 +290,9 @@ "torrents.properties.tracker.message": "Mensagem do Rastreador", "torrents.properties.upload.speed": "Velocidade de Upload", "torrents.properties.upload.total": "Enviado", - "torrents.properties.seeds": "Seeds", - "torrents.properties.peers": "Peers", - "torrents.properties.trackers": "Trackers", + "torrents.properties.seeds": "Sementes", + "torrents.properties.peers": "Pares", + "torrents.properties.trackers": "Rastreadores", "torrents.remove.are.you.sure": "Você tem certeza que quer remover {count, plural, =1 {# torrent} other {# torrents}}?", "torrents.remove.delete.data": "Apagar dados", "torrents.remove.error.no.torrents.selected": "Você não selecionou nenhum torrents.", @@ -300,14 +306,14 @@ "connection-interruption.verification-error": "A conexão não pôde ser verificada.", "connection-interruption.verification-success": "Conexão bem sucedida", "status.diskusage.title": "Uso do disco", - "status.diskusage.used": "Used", - "status.diskusage.free": "Free", + "status.diskusage.used": "Utilizado", + "status.diskusage.free": "Livre", "status.diskusage.total": "Total", "locale.language.auto": "Automático", "window.title": "↓ {down} ↑ {up} - Flood", - "dependency.loading.notifications": "Notifications", - "dependency.loading.torrent.taxonomy": "Torrent Taxonomy", - "dependency.loading.transfer.rate.details": "Data Transfer Rate Details", - "dependency.loading.transfer.history": "Data Transfer History", - "dependency.loading.torrent.list": "Torrent List" + "dependency.loading.notifications": "Notificações", + "dependency.loading.torrent.taxonomy": "Taxonomia do Torrent", + "dependency.loading.transfer.rate.details": "Detalhes da Taxa de Transferência de Dados", + "dependency.loading.transfer.history": "Histórico de Transferências de Dados", + "dependency.loading.torrent.list": "Lista de Torrents" } diff --git a/client/src/javascript/i18n/translations/ro.json b/client/src/javascript/i18n/translations/ro.json index 3ab6306c4..471332d2f 100644 --- a/client/src/javascript/i18n/translations/ro.json +++ b/client/src/javascript/i18n/translations/ro.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Calea Socket", "button.add": "Adăugare", "button.cancel": "Anulează", + "button.download": "Download", "button.no": "Nr", "button.save": "Salvează setările", "button.save.feed": "Salvează", @@ -46,9 +47,11 @@ "feeds.add.feed": "Adaugă Flux", "feeds.applicable.feed": "Flux aplicabil", "feeds.apply.tags": "Aplică etichete", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude modelul", "feeds.existing.feeds": "Fluxuri existente", "feeds.existing.rules": "Reguli existente", + "feeds.interval": "Interval", "feeds.label": "Etichetă", "feeds.match.count": "{count, plural, =1 {# meci} other {# se potrivește}}", "feeds.match.pattern": "Model de potrivire", @@ -56,6 +59,7 @@ "feeds.exclude": "Excludere", "feeds.no.feeds.available": "Nici un flux disponibil.", "feeds.no.feeds.defined": "Nici un flux definit.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Nici o regulă definită.", "feeds.regEx": "RegEx", "feeds.select.feed": "Selectare flux", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Fluxuri", "feeds.tabs.heading": "Fluxuri Torrent", "feeds.tags": "Etichete", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Ore", "feeds.time.min": "Minute", "feeds.time.day": "Zile", "feeds.torrent.destination": "Destinația Torentului", "feeds.url": "URL", "feeds.search": "Termenul de căutare", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Expresie regulată invalidă.", "feeds.validation.must.select.feed": "Trebuie să selectaţi un flux.", "feeds.validation.must.specify.destination": "Trebuie să specificați o destinație.", diff --git a/client/src/javascript/i18n/translations/ru.json b/client/src/javascript/i18n/translations/ru.json index 9b7a3714b..e4413bbeb 100644 --- a/client/src/javascript/i18n/translations/ru.json +++ b/client/src/javascript/i18n/translations/ru.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "Путь к сокету rTorrent", "button.add": "Добавить", "button.cancel": "Отмена", + "button.download": "Download", "button.no": "Нет", "button.save": "Сохранить настройки", "button.save.feed": "Сохранить", @@ -46,9 +47,11 @@ "feeds.add.feed": "Добавить канал", "feeds.applicable.feed": "Применимая лента", "feeds.apply.tags": "Применить теги", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Исключить шаблон", "feeds.existing.feeds": "Существующие каналы", "feeds.existing.rules": "Существующие правила", + "feeds.interval": "Interval", "feeds.label": "Метка", "feeds.match.count": "{count, plural, =1 {# совпадает} other {# совпадает}}", "feeds.match.pattern": "Совпадение с шаблоном", @@ -56,6 +59,7 @@ "feeds.exclude": "Исключить", "feeds.no.feeds.available": "Нет доступных лент.", "feeds.no.feeds.defined": "Каналы не определены.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Правила не определены.", "feeds.regEx": "РегЭкс", "feeds.select.feed": "Выбрать ленту", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Ленты", "feeds.tabs.heading": "Каналы торрентов", "feeds.tags": "Теги", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Часы", "feeds.time.min": "Минут", "feeds.time.day": "Дней", "feeds.torrent.destination": "Назначение торрента", "feeds.url": "URL", "feeds.search": "Поисковый термин", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Неверное регулярное выражение.", "feeds.validation.must.select.feed": "Вы должны выбрать канал.", "feeds.validation.must.specify.destination": "Вы должны указать место назначения.", diff --git a/client/src/javascript/i18n/translations/sr.json b/client/src/javascript/i18n/translations/sr.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/sr.json +++ b/client/src/javascript/i18n/translations/sr.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/sv.json b/client/src/javascript/i18n/translations/sv.json index 62e99db8d..613daf95d 100644 --- a/client/src/javascript/i18n/translations/sv.json +++ b/client/src/javascript/i18n/translations/sv.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket sökväg", "button.add": "Lägg till", "button.cancel": "Avbryt", + "button.download": "Download", "button.no": "Nej", "button.save": "Spara inställningar", "button.save.feed": "Spara", @@ -46,9 +47,11 @@ "feeds.add.feed": "Lägg till flöde", "feeds.applicable.feed": "Tillämplig flöde", "feeds.apply.tags": "Tillämpa taggar", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exkludera mönster", "feeds.existing.feeds": "Befintliga flöden", "feeds.existing.rules": "Befintliga regler", + "feeds.interval": "Interval", "feeds.label": "Etikett", "feeds.match.count": "{count, plural, =1 {# matcha} other {# matcha}}", "feeds.match.pattern": "Matcha mönster", @@ -56,6 +59,7 @@ "feeds.exclude": "Exkludera", "feeds.no.feeds.available": "Inga flöden tillgängliga.", "feeds.no.feeds.defined": "Inga flöden har definierats.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Inga regler definierade.", "feeds.regEx": "RegEx", "feeds.select.feed": "Välj flöde", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Flöden", "feeds.tabs.heading": "Flöden för Torrent", "feeds.tags": "Taggar", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Timmar", "feeds.time.min": "Minuter", "feeds.time.day": "Dagar", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Sök termin", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Ogiltigt reguljärt uttryck.", "feeds.validation.must.select.feed": "Du måste välja ett flöde.", "feeds.validation.must.specify.destination": "Du måste ange en destination.", diff --git a/client/src/javascript/i18n/translations/tr.json b/client/src/javascript/i18n/translations/tr.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/tr.json +++ b/client/src/javascript/i18n/translations/tr.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/uk.json b/client/src/javascript/i18n/translations/uk.json index 0b8d0e7f6..bf401eef5 100644 --- a/client/src/javascript/i18n/translations/uk.json +++ b/client/src/javascript/i18n/translations/uk.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "RTorrent Socket шлях", "button.add": "Додати", "button.cancel": "Скасувати", + "button.download": "Download", "button.no": "Ні", "button.save": "Зберегти Налаштування", "button.save.feed": "Зберегти", @@ -46,9 +47,11 @@ "feeds.add.feed": "Добавити RSS Feed", "feeds.applicable.feed": "Стрічка додатків", "feeds.apply.tags": "Застосувати мітки", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Виключити ключ", "feeds.existing.feeds": "Існуючі подачі", "feeds.existing.rules": "Існуючі правила", + "feeds.interval": "Interval", "feeds.label": "Мітка", "feeds.match.count": "{count, plural, =1 {# співпадають} other {# матчів}}", "feeds.match.pattern": "Шаблон матчу", @@ -56,6 +59,7 @@ "feeds.exclude": "Не включати", "feeds.no.feeds.available": "Немає доступних каналів.", "feeds.no.feeds.defined": "Каналів не визначено.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "Правила не визначені.", "feeds.regEx": "Реджекс", "feeds.select.feed": "Вибрати стрічку", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Стрічки новин", "feeds.tabs.heading": "Торент фіди", "feeds.tags": "Мітки", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Годин", "feeds.time.min": "Хвилин", "feeds.time.day": "Днів", "feeds.torrent.destination": "Призначення торенту", "feeds.url": "Адреса", "feeds.search": "Шукати за словом", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Недійсний регулярний вираз.", "feeds.validation.must.select.feed": "Ви повинні вибрати канал.", "feeds.validation.must.specify.destination": "Ви повинні вказати місце призначення.", diff --git a/client/src/javascript/i18n/translations/vi.json b/client/src/javascript/i18n/translations/vi.json index 19f894103..0c653aebb 100644 --- a/client/src/javascript/i18n/translations/vi.json +++ b/client/src/javascript/i18n/translations/vi.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket Path", "button.add": "Add", "button.cancel": "Cancel", + "button.download": "Download", "button.no": "No", "button.save": "Save Settings", "button.save.feed": "Save", @@ -46,9 +47,11 @@ "feeds.add.feed": "Add Feed", "feeds.applicable.feed": "Applicable Feed", "feeds.apply.tags": "Apply Tags", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "Exclude Pattern", "feeds.existing.feeds": "Existing Feeds", "feeds.existing.rules": "Existing Rules", + "feeds.interval": "Interval", "feeds.label": "Label", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "Match Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "Exclude", "feeds.no.feeds.available": "No feeds available.", "feeds.no.feeds.defined": "No feeds defined.", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "No rules defined.", "feeds.regEx": "RegEx", "feeds.select.feed": "Select Feed", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "Feeds", "feeds.tabs.heading": "Torrent Feeds", "feeds.tags": "Tags", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "Hours", "feeds.time.min": "Minutes", "feeds.time.day": "Days", "feeds.torrent.destination": "Torrent Destination", "feeds.url": "URL", "feeds.search": "Search term", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "Invalid regular expression.", "feeds.validation.must.select.feed": "You must select a feed.", "feeds.validation.must.specify.destination": "You must specify a destination.", diff --git a/client/src/javascript/i18n/translations/zh-Hans.json b/client/src/javascript/i18n/translations/zh-Hans.json index 07ef97dc6..b129a96bb 100644 --- a/client/src/javascript/i18n/translations/zh-Hans.json +++ b/client/src/javascript/i18n/translations/zh-Hans.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket 路径", "button.add": "新增", "button.cancel": "取消", + "button.download": "Download", "button.no": "取消", "button.save": "保存设置", "button.save.feed": "保存", @@ -46,9 +47,11 @@ "feeds.add.feed": "添加订阅源", "feeds.applicable.feed": "可用的订阅源", "feeds.apply.tags": "变更标签", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "排除规则", "feeds.existing.feeds": "现有的订阅源", "feeds.existing.rules": "现有的规则", + "feeds.interval": "Interval", "feeds.label": "标签", "feeds.match.count": "# 个匹配", "feeds.match.pattern": "匹配规则", @@ -56,6 +59,7 @@ "feeds.exclude": "排除", "feeds.no.feeds.available": "没有可用的订阅源。", "feeds.no.feeds.defined": "没有定义订阅源。", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "没有定义规则。", "feeds.regEx": "正则", "feeds.select.feed": "选择订阅源", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "订阅源", "feeds.tabs.heading": "种子源", "feeds.tags": "标签", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "时", "feeds.time.min": "分", "feeds.time.day": "天", "feeds.torrent.destination": "下载位置", "feeds.url": "网址", "feeds.search": "搜索关键词", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "无效的RegEx。", "feeds.validation.must.select.feed": "你必须选择一个订阅源。", "feeds.validation.must.specify.destination": "你必须指定下载位置。", diff --git a/client/src/javascript/i18n/translations/zh-Hant.json b/client/src/javascript/i18n/translations/zh-Hant.json index 39d5f1faa..b4270212f 100644 --- a/client/src/javascript/i18n/translations/zh-Hant.json +++ b/client/src/javascript/i18n/translations/zh-Hant.json @@ -33,6 +33,7 @@ "auth.rtorrentSocketPath": "rTorrent Socket 路徑", "button.add": "新增", "button.cancel": "取消", + "button.download": "Download", "button.no": "否", "button.save": "儲存設定", "button.save.feed": "儲存", @@ -46,9 +47,11 @@ "feeds.add.feed": "新增訊息來源", "feeds.applicable.feed": "可使用的訊息來源", "feeds.apply.tags": "套用標籤", + "feeds.check": "Test Match Pattern", "feeds.exclude.pattern": "例外Pattern", "feeds.existing.feeds": "已存在的訊息來源", "feeds.existing.rules": "已存在的規則 ", + "feeds.interval": "Interval", "feeds.label": "標籤", "feeds.match.count": "{count, plural, =1 {# match} other {# matches}}", "feeds.match.pattern": "符合Pattern", @@ -56,6 +59,7 @@ "feeds.exclude": "除外", "feeds.no.feeds.available": "沒有可用的訊息來源", "feeds.no.feeds.defined": "沒有任何訊息來源", + "feeds.no.items.matching": "No items matching search term.", "feeds.no.rules.defined": "沒有任何規則。", "feeds.regEx": "正則表達式", "feeds.select.feed": "選擇訊息來源", @@ -65,12 +69,14 @@ "feeds.tabs.feeds": "訊息來源(Feeds)", "feeds.tabs.heading": "種子訊息來源(Feeds)", "feeds.tags": "標籤", + "feeds.test.match": "Test Match Pattern", "feeds.time.hr": "小時", "feeds.time.min": "分鐘", "feeds.time.day": "日", "feeds.torrent.destination": "下載位置", "feeds.url": "網址", "feeds.search": "搜尋關鍵字", + "feeds.search.term": "Search term", "feeds.validation.invalid.regular.expression": "無效的正則表達式。", "feeds.validation.must.select.feed": "你必須選擇一個訊息來源。", "feeds.validation.must.specify.destination": "您必須指定下載位置。", From 6796391f2d2e7865f00872d01d790c563bff3de1 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 20 Aug 2020 15:44:28 +0800 Subject: [PATCH 067/651] Tooltip: simplify Portal creation It is unneccessary and unreliable to create an extra div to hold Portal. The presumed benefits[1] of an extra div are never proven and developers never find an *ACTUAL* case where putting Portal to the body poses a problem[2]. In our case, creation of this extra div (or the logics to do so) is the *ACTUAL* problem. Somehow the "ref" inside this div doesn't work reliably. As a result, getIdealLocation and handleMouseEnter fail. [1]: https://stackoverflow.com/questions/49504546/is-it-safe-to-use-reactdom-createportal-with-document-body [2]: https://github.com/mui-org/material-ui/issues/21626 Bug: #15 --- .../javascript/components/general/Portal.js | 45 ------------------- .../javascript/components/general/Tooltip.js | 10 ++--- 2 files changed, 5 insertions(+), 50 deletions(-) delete mode 100644 client/src/javascript/components/general/Portal.js diff --git a/client/src/javascript/components/general/Portal.js b/client/src/javascript/components/general/Portal.js deleted file mode 100644 index a55b23f07..000000000 --- a/client/src/javascript/components/general/Portal.js +++ /dev/null @@ -1,45 +0,0 @@ -import {IntlProvider} from 'react-intl'; -import PropTypes from 'prop-types'; -import React from 'react'; -import ReactDOM from 'react-dom'; - -import detectLocale from '../../util/detectLocale'; -import * as i18n from '../../i18n/languages'; -import SettingsStore from '../../stores/SettingsStore'; - -class Portal extends React.Component { - static propTypes = { - children: PropTypes.node, - }; - - static defaultProps = { - children:
, - }; - - componentDidMount() { - this.nodeEl = document.createElement('div'); - document.body.appendChild(this.nodeEl); - } - - componentWillUnmount() { - ReactDOM.unmountComponentAtNode(this.nodeEl); - document.body.removeChild(this.nodeEl); - } - - render() { - let locale = SettingsStore.getFloodSettings('language'); - if (locale === 'auto' || !Object.prototype.hasOwnProperty.call(i18n.languages, locale)) { - locale = detectLocale(); - } - if (this.nodeEl == null) return null; - return ReactDOM.createPortal( - // eslint-disable-next-line import/namespace - - {this.props.children} - , - this.nodeEl, - ); - } -} - -export default Portal; diff --git a/client/src/javascript/components/general/Tooltip.js b/client/src/javascript/components/general/Tooltip.js index e69d27776..bcfb3e41e 100644 --- a/client/src/javascript/components/general/Tooltip.js +++ b/client/src/javascript/components/general/Tooltip.js @@ -2,8 +2,7 @@ import _ from 'lodash'; import classnames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; - -import Portal from './Portal'; +import ReactDOM from 'react-dom'; const ARROW_SIZE = 7; const METHODS_TO_BIND = [ @@ -338,7 +337,7 @@ class Tooltip extends React.Component { this.triggerNode = ref; }}> {props.children} - + {ReactDOM.createPortal(
{ @@ -348,8 +347,9 @@ class Tooltip extends React.Component { onMouseEnter={this.handleTooltipMouseEnter} onMouseLeave={this.handleTooltipMouseLeave}>
{props.content}
-
-
+
, + document.getElementById('app'), + )} ); } From b36ebac2ca10c43b14ef991684da29f11ff44535 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 20 Aug 2020 18:19:18 +0800 Subject: [PATCH 068/651] styles: hide sidebar when screen width is lower than 720px Bug: Flood-UI/flood#707 --- client/src/sass/components/_sidebar.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/src/sass/components/_sidebar.scss b/client/src/sass/components/_sidebar.scss index eb24b5bfe..bce027bdf 100644 --- a/client/src/sass/components/_sidebar.scss +++ b/client/src/sass/components/_sidebar.scss @@ -9,6 +9,11 @@ overflow: auto; position: relative; z-index: 2; + + display: block; + @media (max-width: 720px) { + display: none; + } } } From 3b5ef7bff641f01b2e00a6b7da82ed9d07c8f7e9 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 20 Aug 2020 18:17:30 +0800 Subject: [PATCH 069/651] ActionBar: add a button to collapse and expand sidebar Bug: Flood-UI/flood#707 --- .../javascript/components/icons/MenuIcon.js | 13 +++++++++++ .../components/torrent-list/Action.js | 4 ++-- .../components/torrent-list/ActionBar.js | 22 +++++++++++++++++++ client/src/sass/base/_layout.scss | 1 + client/src/sass/components/_sidebar.scss | 2 +- 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 client/src/javascript/components/icons/MenuIcon.js diff --git a/client/src/javascript/components/icons/MenuIcon.js b/client/src/javascript/components/icons/MenuIcon.js new file mode 100644 index 000000000..2845e2a4f --- /dev/null +++ b/client/src/javascript/components/icons/MenuIcon.js @@ -0,0 +1,13 @@ +import React from 'react'; + +import BaseIcon from './BaseIcon'; + +export default class Menu extends BaseIcon { + render() { + return ( + + + + ); + } +} diff --git a/client/src/javascript/components/torrent-list/Action.js b/client/src/javascript/components/torrent-list/Action.js index 3652100d9..b6eb86fe6 100644 --- a/client/src/javascript/components/torrent-list/Action.js +++ b/client/src/javascript/components/torrent-list/Action.js @@ -5,13 +5,13 @@ import Tooltip from '../general/Tooltip'; export default class Action extends React.Component { render() { - const {clickHandler, icon, label, slug} = this.props; + const {clickHandler, icon, label, slug, noTip} = this.props; const classes = classnames('action tooltip__wrapper', { [`action--${slug}`]: slug != null, }); return ( - + {icon} {label} diff --git a/client/src/javascript/components/torrent-list/ActionBar.js b/client/src/javascript/components/torrent-list/ActionBar.js index 6d2cd35cf..68c5de464 100644 --- a/client/src/javascript/components/torrent-list/ActionBar.js +++ b/client/src/javascript/components/torrent-list/ActionBar.js @@ -6,6 +6,7 @@ import Action from './Action'; import Add from '../icons/Add'; import connectStores from '../../util/connectStores'; import EventTypes from '../../constants/EventTypes'; +import MenuIcon from '../icons/MenuIcon'; import Remove from '../icons/Remove'; import SettingsStore from '../../stores/SettingsStore'; import SortDropdown from './SortDropdown'; @@ -39,6 +40,18 @@ class ActionBar extends React.Component { TorrentActions.stopTorrents(TorrentStore.getSelectedTorrents()); } + handleSidebarChange() { + const sidebar = document.getElementsByClassName('application__sidebar')[0]; + if (sidebar != null) { + const expanded = window.getComputedStyle(sidebar, null).getPropertyValue('display') !== 'none'; + if (expanded) { + sidebar.style.display = 'none'; + } else { + sidebar.style.display = 'block'; + } + } + } + render() { const classes = classnames('action-bar', { 'action-bar--is-condensed': this.props.torrentListViewSize === 'condensed', @@ -46,6 +59,15 @@ class ActionBar extends React.Component { return (