Compare commits

...

75 Commits

Author SHA1 Message Date
Bogdan
b83a760873 Bump frontend packages 2024-10-20 13:22:14 +03:00
Bogdan
22ab50f76d Bump dotnet to 6.0.35 2024-10-20 13:22:14 +03:00
Mark McDowall
66758ca006 New: Show update settings on all platforms
(cherry picked from commit c023fc700896c7f0751c4ac63c4e1a89d6e1a9bb)
2024-10-20 11:43:51 +03:00
Mark McDowall
e7d7bc79f4 New: Allow major version updates to be installed
(cherry picked from commit 0e95ba2021b23cc65bce0a0620dd48e355250dab)
2024-10-20 11:43:51 +03:00
Bogdan
cfccb4f9c3 Bump version to 0.4.2 2024-10-20 08:07:10 +03:00
Mark McDowall
9312f17041 New: Use 307 redirect for requests missing URL Base
(cherry picked from commit 39074b0b1d040969f86d787c2346d5ed5a9f72dc)
2024-10-08 02:20:37 +03:00
Bogdan
8192c22910 Bump macOS runner version to 13 2024-10-06 16:30:37 +03:00
ManiMatter
0b1d6b677a Add '.temp*' to .gitignore (#3778) 2024-10-02 22:53:34 +03:00
Bogdan
d666df0189 Bump version to 0.4.1 2024-09-29 08:19:59 +03:00
Bogdan
10d8f345c1 Display naming example errors when all fields are empty
(cherry picked from commit 768af433d1655c587a9eee9b100f306ba4345f88)
2024-09-28 05:18:41 +03:00
Robin Dadswell
fb720b8714 Fixed: Telegram log message including token
(cherry picked from commit a7cb264cc8013d9a56aee7d5e41acfd76cde5f96)
2024-09-28 05:18:29 +03:00
Servarr
e8131b5791 Automated API Docs update 2024-09-25 10:34:30 +03:00
Bogdan
4f793f6b93 Remove $ from Discord delete notifications 2024-09-25 10:28:00 +03:00
Bogdan
4215c21c94 Add package needed for RemoveDiacritics 2024-09-23 05:46:26 +03:00
Paul DiLoreto
6913789adc New: Use instance name in forms authentication cookie name (#3761)
(cherry picked from commit 97ebaf279650082c6baee9563ef179921c5ed25a)
(cherry picked from commit faf9173b3b4a298e3afa9a186e66ba6764ac055e)
(cherry picked from commit 75fae9262c6ca003d24df9fcf035d75b1e90f994)

---------

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2024-09-23 05:45:01 +03:00
Mark McDowall
09e0c40792 Fixed: Limit redirects after login to local paths
(cherry picked from commit 14005d8d1054eafaba808337a109d5812f3e79e6)
2024-09-23 05:41:21 +03:00
Mark McDowall
baff805551 New: Return downloading magnets from Transmission
(cherry picked from commit 11a9dcb3890eaf99602900f37e64007f2fbf9b8e)
2024-09-23 05:40:25 +03:00
Bogdan
c885fe43cd Fix disabled style for monitor toggle button
(cherry picked from commit dde28cbd7e16b85f78d38c8dde7cf6bbb6119bb3)
2024-09-23 05:39:36 +03:00
Treycos
464a777722 Updated code action fixall value for VSCode
(cherry picked from commit 8af4246ff9baee4c291550102769a1186f65dc29)
2024-09-23 05:39:19 +03:00
momo
89e5999c85 Fix description for API key as query parameter
(cherry picked from commit 30c36fdc3baa686102ff124833c7963fc786f251)
2024-09-23 05:36:05 +03:00
Bogdan
b6fa332550 Ignore metadata tests temporarily once again 2024-09-23 05:35:27 +03:00
Bogdan
05f262dc0a Don't persist value for SslCertHash when checking for existence
(cherry picked from commit 98c4cbdd13dc49ad30e91343897b8bd006002489)
2024-09-07 16:26:28 -05:00
Bogdan
699b765ee9 Remove provider status on provider deletion
(cherry picked from commit f45713bff815b2a49a5cdad4afe62a53bbdf6a6e)
2024-09-07 16:26:11 -05:00
Mark McDowall
84beba2383 Don't hash files in development builds
(cherry picked from commit bc7799139e52b92956eb595fb87f44d7dda9a320)
2024-09-07 13:46:26 -05:00
Mark McDowall
62eceb9148 New: Default file log level changed to debug
(cherry picked from commit 9b528eb82914a05cfc3b67d4d6146ce51e86f68d)
2024-09-07 13:45:57 -05:00
Servarr
f46070d4b0 Translations update from Servarr Weblate (#3578)
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Ano10 <arnaudthommeray+github@ik.me>
Co-authored-by: Dream <seth.gecko.rr@gmail.com>
Co-authored-by: Gabriel Markowski <gmarkowski62@gmail.com>
Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Jason54 <jason54700.jg@gmail.com>
Co-authored-by: Kerk en IT <info@kerkenit.nl>
Co-authored-by: MattiaPell <mattiapellegrini16@gmail.com>
Co-authored-by: Nota Inutilis <hugo@notainutilis.fr>
Co-authored-by: fordas <fordas15@gmail.com>
Co-authored-by: iMohmmedSA <i.mohmmed.i+1@gmail.com>
2024-09-07 13:44:59 -05:00
Bogdan
73979c416a Bump ImageSharp to 3.1.5
https://github.com/advisories/GHSA-63p8-c4ww-9cg7
2024-07-26 00:09:31 +03:00
ManiMatter
348e8f9c27 Treat forcedMetaDL from qBit as queued instead of downloading
(cherry picked from commit 9a613afa355fbc8cdf29c4d1b8eb1f1586405eb7)
2024-07-25 08:15:40 +03:00
Bogdan
38bdb5a75d New: Ignore Litestream tables in Database
(cherry picked from commit 2a26c6722afa5c657fde162cbddbe9e8731f3a0c)
2024-07-25 07:38:19 +03:00
Bogdan
5e4c51e2f7 Bump version to 0.4.0 2024-07-21 18:08:49 +03:00
Bogdan
99a65246a9 New: Bump dotnet to 6.0.32 2024-07-19 23:27:15 +03:00
Qstick
598ce9a9d2 Update SonarCloud pipeline versions
* Update SonarCloud pipeline versions

* Update reportgenerator to remove PublishCodeCoverage dep warnings

(cherry picked from commit a2a12d245000a0713946cec732d853dd7cdc58c2)
(cherry picked from commit 1423ad6aa4094d11efecc1986a3d0571f310bda6)

Update SonarCloud pipeline versions for UI

(cherry picked from commit 558043f1b2cae371b474a19ba5784df8345d38d2)
(cherry picked from commit 9045dea5364ff8a0677adc25e478e908e6b0ee11)
2024-07-19 23:27:15 +03:00
Weblate
42d6b9e703 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Dream <seth.gecko.rr@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Kshitij Burman <kburman6@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: MattiaPell <mattiapellegrini16@gmail.com>
Co-authored-by: Mipiaceanutella <remix-polity-0l@icloud.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: PouleY <pouley@bellemainp.fr>
Co-authored-by: Rauniik <raunerjakub@gmail.com>
Co-authored-by: Serhii Matrunchyk <serhii@digitalidea.studio>
Co-authored-by: Taylan Tatlı <taylantatli90@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yongzz <zy28341215@icloud.com>
Co-authored-by: fordas <fordas15@gmail.com>
Co-authored-by: quek76 <quek@libertysurf.fr>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2024-07-19 00:08:01 +03:00
Marc Carbonell
8f595838aa Remove extraneous indentation in RemoveFileExtension
(cherry picked from commit dca5239420e21f91c1d67bc8bbb14cdb13c8d5d9)

Closes #3562
2024-07-18 20:13:29 +03:00
Stevie Robinson
3d9d7d3582 New: Wrap specifications in Custom Format modals
(cherry picked from commit 7b8d606a1bed6257d7942de47576c1505fd9cb57)

Towards #3570
2024-07-18 20:11:53 +03:00
servarr[bot]
77cf28bd78 Fixed: Assume category path from qBittorent starting with '//' is a Windows UNC path
* Fixed: Assume category path from qBittorent starting with '//' is a Windows UNC path

(cherry picked from commit 19466aa29050e1b13b1db8cc61662b10d76a82e4)

---------

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Bogdan <mynameisbogdan@users.noreply.github.com>
2024-07-18 20:06:41 +03:00
Bogdan
2fb1b8af20 Bump version to 0.3.32 2024-07-14 12:31:38 +03:00
Bogdan
af1f389f8e Fixed: Validate metadata and quality profiles for root folders
Don't allow `0` as possible value for metadata and quality profiles, and permit to edit root folders with bad values in UI.
2024-07-12 16:37:16 +03:00
Bogdan
b5334da253 Fixed: Creating root folders without default tags 2024-07-12 16:32:19 +03:00
Bogdan
68b3904382 Bump version to 0.3.31 2024-07-07 21:55:01 +03:00
Bogdan
c8b09b9e29 Fixed: Already imported downloads appearing in Queue briefly
(cherry picked from commit 8099ba10afded446779290de29b1baaf0be932c3)

Closes #3538
2024-07-01 08:45:01 +03:00
Bogdan
d910fc42ab Bump mac image to 12 2024-06-26 23:51:49 +03:00
Mark McDowall
a6db8bfe0e New: Ignore Deluge torrents without a title
(cherry picked from commit a0d29331341320268552660658b949179c963793)
2024-06-26 02:46:53 +03:00
Bogdan
2033d7e411 Fixed: Exclude invalid releases from Newznab and Torznab parsers
(cherry picked from commit fb060730c7d52cd342484dc68595698a9430df7b)
2024-06-26 02:46:39 +03:00
dependabot[bot]
4a04e54ceb Bump ws from 7.5.9 to 7.5.10
Bumps [ws](https://github.com/websockets/ws) from 7.5.9 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-23 22:41:14 +03:00
Bogdan
d57a9ab9b0 Bump version to 0.3.30 2024-06-23 21:53:58 +03:00
dependabot[bot]
d333204194 Bump braces from 3.0.2 to 3.0.3
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 15:07:54 +03:00
Servarr
c3676f8d33 Automated API Docs update 2024-06-11 15:03:22 +03:00
Bogdan
932356be61 Ignore Grabbed from API docs
Run application in docs.sh specific to platform

(cherry picked from commit c331c8bd119fa9f85a53e96db04f541b2d90bbd3)

Closes #3515
2024-06-11 14:14:57 +03:00
servarr[bot]
5b1b2a2d67 Fixed: Improve error messaging if config file isn't formatted correctly 2024-06-11 14:05:24 +03:00
Bogdan
c362e8c467 Fixed: Ignore case when resolving indexer by name in release push
(cherry picked from commit a90ab1a8fd50126d7f60eaa684eac1e0cd98e2b7)
2024-06-11 14:02:24 +03:00
Bogdan
67c00a8cc7 Fixed: Ignore case for name validation in providers
(cherry picked from commit 0edc5ba99a15c5f80305b387a053f35fc3f6e51b)
2024-06-11 14:02:04 +03:00
Bogdan
27a086dfff Bump version to 0.3.29 2024-06-09 12:58:59 +03:00
sillock1
8ee0df9c65 Fixed: Trimming slashes from UrlBase when using environment variable 2024-06-06 14:47:25 +03:00
sillock1
da30b55902 New: Optionally use Environment Variables for settings in config.xml 2024-06-06 14:47:25 +03:00
Servarr
c7226fc85f Automated API Docs update 2024-06-06 12:27:57 +03:00
Mark McDowall
84f22dbadc New: Require password confirmation when setting or changing password
(cherry picked from commit b248163df598dc611ee919d525eb7357256d73d5)

Closes #3089
2024-06-06 11:46:54 +03:00
Mark McDowall
06a53ef9ca New: Authentication is now required
(cherry picked from commit d3018fb5015af26a897281f0e892b706cdb6e821)

Closes #1807
Closes #2878
Closes #2873
2024-06-06 11:46:48 +03:00
Mark McDowall
b5ef0cda1e New: Setting to disable authentication for local addresses
(cherry picked from commit b154b00c6156512e7fbd0a2c4833c116a74f23ca)

Closes #1804
Closes #2077
2024-06-06 11:44:37 +03:00
Weblate
1b1290efac Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Dani Talens <databio@gmail.com>
Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yi Cao <caoyi06@qq.com>
Co-authored-by: fordas <fordas15@gmail.com>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Co-authored-by: r0bertreh <Robert.reh@live.de>
Co-authored-by: topnew <sznetim@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2024-06-03 09:15:48 +03:00
Bogdan
dcbc3ea3f8 Update the wanted section for missing and cutoff unmet
(cherry picked from commit 9b4ff657af41e67aeb5866ee3056f1a8f2a901ea)
2024-05-22 03:20:10 +03:00
Bogdan
9a7b2cb818 Fix Goodreads test 2024-05-19 19:33:19 +03:00
Bogdan
f9cba39f0a Ignore metadata tests temporarily 2024-05-19 19:33:19 +03:00
Bogdan
6b6ff4fe76 New: Link to "Why Searches Could be Failing" wiki section 2024-05-19 19:33:19 +03:00
Bogdan
05d0fe2da6 Bump version to 0.3.28 2024-05-13 15:31:57 +03:00
Bogdan
7aab2b49e2 Bump Npgsql to 7.0.7 2024-05-13 15:26:43 +03:00
Weblate
8887df92ed Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Dani Talens <databio@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Michael5564445 <michaelvelosk@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translation: Servarr/Readarr
2024-05-10 14:05:03 +03:00
Bogdan
9ee651d6c0 Refactor PasswordInput to use type password
(cherry picked from commit c7c1e3ac9e5bffd4d92298fed70916e3808613fd)
2024-05-10 14:04:07 +03:00
Bogdan
5544e169a6 Use number input for seed ratio
(cherry picked from commit 1eddf3a152fae04142263c02a3e3b317ff2feeb2)

Plus translations

Closes #3470
2024-05-10 01:37:15 +03:00
Bogdan
11d83165e5 Fixed: Notifications with only On Rename enabled 2024-05-10 01:34:57 +03:00
Bogdan
9e6d1c581c Fixed: Parsing long downloading/seeding values from Transmission
(cherry picked from commit 8360dd7a7bab1dfb49a40aae382b47e9253d9fd1)
2024-05-09 05:50:16 +03:00
Weblate
66e20a0aec Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Michael5564445 <michaelvelosk@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: fordas <fordas15@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translation: Servarr/Readarr
2024-05-05 12:35:40 +03:00
Bogdan
e639b36283 Fixed: Indexer flags for torrent release pushes
(cherry picked from commit 47ba002806fe2c2004a649aa193ae318343a84e4)
2024-05-05 12:35:12 +03:00
Mark McDowall
c9f4fb141f Forward X-Forwarded-Host header
(cherry picked from commit 3fbe4361386e9fb8dafdf82ad9f00f02bec746cc)
2024-05-05 12:35:02 +03:00
Bogdan
29a43fc2fd Bump version to 0.3.27 2024-05-05 12:34:33 +03:00
160 changed files with 5724 additions and 3464 deletions

1
.gitignore vendored
View File

@@ -120,6 +120,7 @@ _artifacts
_rawPackage/
_dotTrace*
_tests/
_temp*
*.Result.xml
coverage*.xml
coverage*.json

View File

@@ -9,18 +9,18 @@ variables:
testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '0.3.26'
majorVersion: '0.4.2'
minorVersion: $[counter('minorVersion', 1)]
readarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '6.0.421'
dotnetVersion: '6.0.427'
nodeVersion: '20.X'
innoVersion: '6.2.0'
windowsImage: 'windows-2022'
linuxImage: 'ubuntu-20.04'
macImage: 'macOS-11'
macImage: 'macOS-13'
trigger:
branches:
@@ -1102,7 +1102,7 @@ stages:
vmImage: ${{ variables.windowsImage }}
steps:
- checkout: self # Need history for Sonar analysis
- task: SonarCloudPrepare@1
- task: SonarCloudPrepare@2
env:
SONAR_SCANNER_OPTS: ''
inputs:
@@ -1114,7 +1114,7 @@ stages:
cliProjectName: 'ReadarrUI'
cliProjectVersion: '$(readarrVersion)'
cliSources: './frontend'
- task: SonarCloudAnalyze@1
- task: SonarCloudAnalyze@2
- job: Api_Docs
displayName: API Docs
@@ -1190,7 +1190,7 @@ stages:
submodules: true
- powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service
- task: SonarCloudPrepare@1
- task: SonarCloudPrepare@2
condition: eq(variables['System.PullRequest.IsFork'], 'False')
inputs:
SonarCloud: 'SonarCloud'
@@ -1208,21 +1208,16 @@ stages:
./build.sh --backend -f net6.0 -r win-x64
TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage
displayName: Coverage Unit Tests
- task: SonarCloudAnalyze@1
- task: SonarCloudAnalyze@2
condition: eq(variables['System.PullRequest.IsFork'], 'False')
displayName: Publish SonarCloud Results
- task: reportgenerator@4
- task: reportgenerator@5
displayName: Generate Coverage Report
inputs:
reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml'
targetdir: '$(Build.SourcesDirectory)/CoverageResults/combined'
reporttypes: 'HtmlInline_AzurePipelines;Cobertura;Badges'
- task: PublishCodeCoverageResults@1
displayName: Publish Coverage Report
inputs:
codeCoverageTool: 'cobertura'
summaryFileLocation: './CoverageResults/combined/Cobertura.xml'
reportDirectory: './CoverageResults/combined/'
publishCodeCoverageResults: true
- stage: Report_Out
dependsOn:

14
docs.sh
View File

@@ -1,3 +1,7 @@
#!/bin/bash
set -e
FRAMEWORK="net6.0"
PLATFORM=$1
if [ "$PLATFORM" = "Windows" ]; then
@@ -21,15 +25,21 @@ slnFile=src/Readarr.sln
platform=Posix
if [ "$PLATFORM" = "Windows" ]; then
application=Readarr.Console.dll
else
application=Readarr.dll
fi
dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release
dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids
dotnet new tool-manifest
dotnet tool install --version 6.5.0 Swashbuckle.AspNetCore.Cli
dotnet tool install --version 6.6.2 Swashbuckle.AspNetCore.Cli
dotnet tool run swagger tofile --output ./src/Readarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/Readarr.console.dll" v1 &
dotnet tool run swagger tofile --output ./src/Readarr.Api.V1/openapi.json "$outputFolder/$FRAMEWORK/$RUNTIME/$application" v1 &
sleep 45

View File

@@ -9,7 +9,7 @@
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll": true
"source.fixAll": "explicit"
},
"typescript.preferences.quoteStyle": "single",

View File

@@ -67,7 +67,7 @@ module.exports = (env) => {
output: {
path: distFolder,
publicPath: '/',
filename: '[name]-[contenthash].js',
filename: isProduction ? '[name]-[contenthash].js' : '[name].js',
sourceMapFilename: '[file].map'
},
@@ -92,7 +92,7 @@ module.exports = (env) => {
new MiniCssExtractPlugin({
filename: 'Content/styles.css',
chunkFilename: 'Content/[id]-[chunkhash].css'
chunkFilename: isProduction ? 'Content/[id]-[chunkhash].css' : 'Content/[id].css'
}),
new HtmlWebpackPlugin({
@@ -202,7 +202,7 @@ module.exports = (env) => {
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]/[local]/[hash:base64:5]'
localIdentName: isProduction ? '[name]/[local]/[hash:base64:5]' : '[name]/[local]'
}
}
},

View File

@@ -32,7 +32,7 @@ import LogsTableConnector from 'System/Events/LogsTableConnector';
import Logs from 'System/Logs/Logs';
import Status from 'System/Status/Status';
import Tasks from 'System/Tasks/Tasks';
import UpdatesConnector from 'System/Updates/UpdatesConnector';
import Updates from 'System/Updates/Updates';
import UnmappedFilesTableConnector from 'UnmappedFiles/UnmappedFilesTableConnector';
import getPathWithUrlBase from 'Utilities/getPathWithUrlBase';
import CutoffUnmetConnector from 'Wanted/CutoffUnmet/CutoffUnmetConnector';
@@ -247,7 +247,7 @@ function AppRoutes(props) {
<Route
path="/system/updates"
component={UpdatesConnector}
component={Updates}
/>
<Route

View File

@@ -1,6 +1,7 @@
import AuthorsAppState from './AuthorsAppState';
import CommandAppState from './CommandAppState';
import SettingsAppState from './SettingsAppState';
import SystemAppState from './SystemAppState';
import TagsAppState from './TagsAppState';
interface FilterBuilderPropOption {
@@ -35,10 +36,24 @@ export interface CustomFilter {
filers: PropertyFilter[];
}
export interface AppSectionState {
isConnected: boolean;
isReconnecting: boolean;
version: string;
prevVersion?: string;
dimensions: {
isSmallScreen: boolean;
width: number;
height: number;
};
}
interface AppState {
app: AppSectionState;
authors: AuthorsAppState;
commands: CommandAppState;
settings: SettingsAppState;
system: SystemAppState;
tags: TagsAppState;
}

View File

@@ -1,5 +1,6 @@
import AppSectionState, {
AppSectionDeleteState,
AppSectionItemState,
AppSectionSaveState,
} from 'App/State/AppSectionState';
import DownloadClient from 'typings/DownloadClient';
@@ -7,13 +8,16 @@ import ImportList from 'typings/ImportList';
import Indexer from 'typings/Indexer';
import IndexerFlag from 'typings/IndexerFlag';
import Notification from 'typings/Notification';
import { UiSettings } from 'typings/UiSettings';
import General from 'typings/Settings/General';
import UiSettings from 'typings/Settings/UiSettings';
export interface DownloadClientAppState
extends AppSectionState<DownloadClient>,
AppSectionDeleteState,
AppSectionSaveState {}
export type GeneralAppState = AppSectionItemState<General>;
export interface ImportListAppState
extends AppSectionState<ImportList>,
AppSectionDeleteState,
@@ -33,11 +37,12 @@ export type UiSettingsAppState = AppSectionState<UiSettings>;
interface SettingsAppState {
downloadClients: DownloadClientAppState;
general: GeneralAppState;
importLists: ImportListAppState;
indexerFlags: IndexerFlagSettingsAppState;
indexers: IndexerAppState;
notifications: NotificationAppState;
uiSettings: UiSettingsAppState;
ui: UiSettingsAppState;
}
export default SettingsAppState;

View File

@@ -0,0 +1,13 @@
import SystemStatus from 'typings/SystemStatus';
import Update from 'typings/Update';
import AppSectionState, { AppSectionItemState } from './AppSectionState';
export type SystemStatusAppState = AppSectionItemState<SystemStatus>;
export type UpdateAppState = AppSectionState<Update>;
interface SystemAppState {
updates: UpdateAppState;
status: SystemStatusAppState;
}
export default SystemAppState;

View File

@@ -1,5 +0,0 @@
.input {
composes: input from '~Components/Form/TextInput.css';
font-family: $passwordFamily;
}

View File

@@ -1,7 +1,5 @@
import PropTypes from 'prop-types';
import React from 'react';
import TextInput from './TextInput';
import styles from './PasswordInput.css';
// Prevent a user from copying (or cutting) the password from the input
function onCopy(e) {
@@ -13,17 +11,14 @@ function PasswordInput(props) {
return (
<TextInput
{...props}
type="password"
onCopy={onCopy}
/>
);
}
PasswordInput.propTypes = {
className: PropTypes.string.isRequired
};
PasswordInput.defaultProps = {
className: styles.input
...TextInput.props
};
export default PasswordInput;

View File

@@ -3,9 +3,9 @@
padding: 0;
font-size: inherit;
}
.isDisabled {
color: var(--disabledColor);
cursor: not-allowed;
&.isDisabled {
color: var(--disabledColor);
cursor: not-allowed;
}
}

View File

@@ -4,6 +4,7 @@ import AppUpdatedModalConnector from 'App/AppUpdatedModalConnector';
import ColorImpairedContext from 'App/ColorImpairedContext';
import ConnectionLostModalConnector from 'App/ConnectionLostModalConnector';
import SignalRConnector from 'Components/SignalRConnector';
import AuthenticationRequiredModal from 'FirstRun/AuthenticationRequiredModal';
import locationShape from 'Helpers/Props/Shapes/locationShape';
import PageHeader from './Header/PageHeader';
import PageSidebar from './Sidebar/PageSidebar';
@@ -75,6 +76,7 @@ class Page extends Component {
isSmallScreen,
isSidebarVisible,
enableColorImpairedMode,
authenticationEnabled,
onSidebarToggle,
onSidebarVisibleChange
} = this.props;
@@ -108,6 +110,10 @@ class Page extends Component {
isOpen={this.state.isConnectionLostModalOpen}
onModalClose={this.onConnectionLostModalClose}
/>
<AuthenticationRequiredModal
isOpen={!authenticationEnabled}
/>
</div>
</ColorImpairedContext.Provider>
);
@@ -123,6 +129,7 @@ Page.propTypes = {
isUpdated: PropTypes.bool.isRequired,
isDisconnected: PropTypes.bool.isRequired,
enableColorImpairedMode: PropTypes.bool.isRequired,
authenticationEnabled: PropTypes.bool.isRequired,
onResize: PropTypes.func.isRequired,
onSidebarToggle: PropTypes.func.isRequired,
onSidebarVisibleChange: PropTypes.func.isRequired

View File

@@ -18,6 +18,7 @@ import {
import { fetchStatus } from 'Store/Actions/systemActions';
import { fetchTags } from 'Store/Actions/tagActions';
import createDimensionsSelector from 'Store/Selectors/createDimensionsSelector';
import createSystemStatusSelector from 'Store/Selectors/createSystemStatusSelector';
import ErrorPage from './ErrorPage';
import LoadingPage from './LoadingPage';
import Page from './Page';
@@ -153,18 +154,21 @@ function createMapStateToProps() {
selectErrors,
selectAppProps,
createDimensionsSelector(),
createSystemStatusSelector(),
(
enableColorImpairedMode,
isPopulated,
errors,
app,
dimensions
dimensions,
systemStatus
) => {
return {
...app,
...errors,
isPopulated,
isSmallScreen: dimensions.isSmallScreen,
authenticationEnabled: systemStatus.authentication !== 'none',
enableColorImpairedMode
};
}

View File

@@ -253,7 +253,7 @@ class SignalRConnector extends Component {
handleWantedCutoff = (body) => {
if (body.action === 'updated') {
this.props.dispatchUpdateItem({
section: 'cutoffUnmet',
section: 'wanted.cutoffUnmet',
updateOnly: true,
...body.resource
});
@@ -263,7 +263,7 @@ class SignalRConnector extends Component {
handleWantedMissing = (body) => {
if (body.action === 'updated') {
this.props.dispatchUpdateItem({
section: 'missing',
section: 'wanted.missing',
updateOnly: true,
...body.resource
});

View File

@@ -25,14 +25,3 @@
font-family: 'Ubuntu Mono';
src: url('UbuntuMono-Regular.eot?#iefix&v=1.3.0') format('embedded-opentype'), url('UbuntuMono-Regular.woff?v=1.3.0') format('woff'), url('UbuntuMono-Regular.ttf?v=1.3.0') format('truetype');
}
/*
* text-security-disc
*/
@font-face {
font-weight: normal;
font-style: normal;
font-family: 'text-security-disc';
src: url('text-security-disc.woff?v=1.3.0') format('woff'), url('text-security-disc.ttf?v=1.3.0') format('truetype');
}

View File

@@ -0,0 +1,34 @@
import PropTypes from 'prop-types';
import React from 'react';
import Modal from 'Components/Modal/Modal';
import { sizes } from 'Helpers/Props';
import AuthenticationRequiredModalContentConnector from './AuthenticationRequiredModalContentConnector';
function onModalClose() {
// No-op
}
function AuthenticationRequiredModal(props) {
const {
isOpen
} = props;
return (
<Modal
size={sizes.MEDIUM}
isOpen={isOpen}
closeOnBackgroundClick={false}
onModalClose={onModalClose}
>
<AuthenticationRequiredModalContentConnector
onModalClose={onModalClose}
/>
</Modal>
);
}
AuthenticationRequiredModal.propTypes = {
isOpen: PropTypes.bool.isRequired
};
export default AuthenticationRequiredModal;

View File

@@ -0,0 +1,5 @@
.authRequiredAlert {
composes: alert from '~Components/Alert.css';
margin-bottom: 20px;
}

View File

@@ -1,7 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'input': string;
'authRequiredAlert': string;
}
export const cssExports: CssExports;
export default cssExports;

View File

@@ -0,0 +1,170 @@
import PropTypes from 'prop-types';
import React, { useEffect, useRef } from 'react';
import Alert from 'Components/Alert';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import SpinnerButton from 'Components/Link/SpinnerButton';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds } from 'Helpers/Props';
import { authenticationMethodOptions, authenticationRequiredOptions } from 'Settings/General/SecuritySettings';
import translate from 'Utilities/String/translate';
import styles from './AuthenticationRequiredModalContent.css';
function onModalClose() {
// No-op
}
function AuthenticationRequiredModalContent(props) {
const {
isPopulated,
error,
isSaving,
settings,
onInputChange,
onSavePress,
dispatchFetchStatus
} = props;
const {
authenticationMethod,
authenticationRequired,
username,
password,
passwordConfirmation
} = settings;
const authenticationEnabled = authenticationMethod && authenticationMethod.value !== 'none';
const didMount = useRef(false);
useEffect(() => {
if (!isSaving && didMount.current) {
dispatchFetchStatus();
}
didMount.current = true;
}, [isSaving, dispatchFetchStatus]);
return (
<ModalContent
showCloseButton={false}
onModalClose={onModalClose}
>
<ModalHeader>
{translate('AuthenticationRequired')}
</ModalHeader>
<ModalBody>
<Alert
className={styles.authRequiredAlert}
kind={kinds.WARNING}
>
{translate('AuthenticationRequiredWarning')}
</Alert>
{
isPopulated && !error ?
<div>
<FormGroup>
<FormLabel>{translate('AuthenticationMethod')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="authenticationMethod"
values={authenticationMethodOptions}
helpText={translate('AuthenticationMethodHelpText')}
helpTextWarning={authenticationMethod.value === 'none' ? translate('AuthenticationMethodHelpTextWarning') : undefined}
helpLink="https://wiki.servarr.com/readarr/faq#forced-authentication"
onChange={onInputChange}
{...authenticationMethod}
/>
</FormGroup>
<FormGroup>
<FormLabel>{translate('AuthenticationRequired')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="authenticationRequired"
values={authenticationRequiredOptions}
helpText={translate('AuthenticationRequiredHelpText')}
onChange={onInputChange}
{...authenticationRequired}
/>
</FormGroup>
<FormGroup>
<FormLabel>{translate('Username')}</FormLabel>
<FormInputGroup
type={inputTypes.TEXT}
name="username"
onChange={onInputChange}
helpTextWarning={username?.value ? undefined : translate('AuthenticationRequiredUsernameHelpTextWarning')}
{...username}
/>
</FormGroup>
<FormGroup>
<FormLabel>{translate('Password')}</FormLabel>
<FormInputGroup
type={inputTypes.PASSWORD}
name="password"
onChange={onInputChange}
helpTextWarning={password?.value ? undefined : translate('AuthenticationRequiredPasswordHelpTextWarning')}
{...password}
/>
</FormGroup>
<FormGroup>
<FormLabel>{translate('PasswordConfirmation')}</FormLabel>
<FormInputGroup
type={inputTypes.PASSWORD}
name="passwordConfirmation"
onChange={onInputChange}
helpTextWarning={passwordConfirmation?.value ? undefined : translate('AuthenticationRequiredPasswordConfirmationHelpTextWarning')}
{...passwordConfirmation}
/>
</FormGroup>
</div> :
null
}
{
!isPopulated && !error ? <LoadingIndicator /> : null
}
</ModalBody>
<ModalFooter>
<SpinnerButton
kind={kinds.PRIMARY}
isSpinning={isSaving}
isDisabled={!authenticationEnabled}
onPress={onSavePress}
>
{translate('Save')}
</SpinnerButton>
</ModalFooter>
</ModalContent>
);
}
AuthenticationRequiredModalContent.propTypes = {
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
isSaving: PropTypes.bool.isRequired,
saveError: PropTypes.object,
settings: PropTypes.object.isRequired,
onInputChange: PropTypes.func.isRequired,
onSavePress: PropTypes.func.isRequired,
dispatchFetchStatus: PropTypes.func.isRequired
};
export default AuthenticationRequiredModalContent;

View File

@@ -0,0 +1,86 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { clearPendingChanges } from 'Store/Actions/baseActions';
import { fetchGeneralSettings, saveGeneralSettings, setGeneralSettingsValue } from 'Store/Actions/settingsActions';
import { fetchStatus } from 'Store/Actions/systemActions';
import createSettingsSectionSelector from 'Store/Selectors/createSettingsSectionSelector';
import AuthenticationRequiredModalContent from './AuthenticationRequiredModalContent';
const SECTION = 'general';
function createMapStateToProps() {
return createSelector(
createSettingsSectionSelector(SECTION),
(sectionSettings) => {
return {
...sectionSettings
};
}
);
}
const mapDispatchToProps = {
dispatchClearPendingChanges: clearPendingChanges,
dispatchSetGeneralSettingsValue: setGeneralSettingsValue,
dispatchSaveGeneralSettings: saveGeneralSettings,
dispatchFetchGeneralSettings: fetchGeneralSettings,
dispatchFetchStatus: fetchStatus
};
class AuthenticationRequiredModalContentConnector extends Component {
//
// Lifecycle
componentDidMount() {
this.props.dispatchFetchGeneralSettings();
}
componentWillUnmount() {
this.props.dispatchClearPendingChanges({ section: `settings.${SECTION}` });
}
//
// Listeners
onInputChange = ({ name, value }) => {
this.props.dispatchSetGeneralSettingsValue({ name, value });
};
onSavePress = () => {
this.props.dispatchSaveGeneralSettings();
};
//
// Render
render() {
const {
dispatchClearPendingChanges,
dispatchFetchGeneralSettings,
dispatchSetGeneralSettingsValue,
dispatchSaveGeneralSettings,
...otherProps
} = this.props;
return (
<AuthenticationRequiredModalContent
{...otherProps}
onInputChange={this.onInputChange}
onSavePress={this.onSavePress}
/>
);
}
}
AuthenticationRequiredModalContentConnector.propTypes = {
dispatchClearPendingChanges: PropTypes.func.isRequired,
dispatchFetchGeneralSettings: PropTypes.func.isRequired,
dispatchSetGeneralSettingsValue: PropTypes.func.isRequired,
dispatchSaveGeneralSettings: PropTypes.func.isRequired,
dispatchFetchStatus: PropTypes.func.isRequired
};
export default connect(createMapStateToProps, mapDispatchToProps)(AuthenticationRequiredModalContentConnector);

View File

@@ -1,5 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Alert from 'Components/Alert';
import TextInput from 'Components/Form/TextInput';
import Icon from 'Components/Icon';
import Button from 'Components/Link/Button';
@@ -7,7 +8,7 @@ import Link from 'Components/Link/Link';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import { icons } from 'Helpers/Props';
import { icons, kinds } from 'Helpers/Props';
import getErrorMessage from 'Utilities/Object/getErrorMessage';
import translate from 'Utilities/String/translate';
import AddNewAuthorSearchResultConnector from './Author/AddNewAuthorSearchResultConnector';
@@ -127,9 +128,16 @@ class AddNewItem extends Component {
!isFetching && !!error ?
<div className={styles.message}>
<div className={styles.helpText}>
Failed to load search results, please try again.
{translate('FailedLoadingSearchResults')}
</div>
<Alert kind={kinds.WARNING}>{getErrorMessage(error)}</Alert>
<div>
<Link to="https://wiki.servarr.com/readarr/troubleshooting#invalid-response-received-from-metadata-api">
{translate('WhySearchesCouldBeFailing')}
</Link>
</div>
<div>{getErrorMessage(error)}</div>
</div> : null
}

View File

@@ -25,3 +25,8 @@
border-radius: 4px;
background-color: var(--cardCenterBackgroundColor);
}
.customFormats {
display: flex;
flex-wrap: wrap;
}

View File

@@ -3,6 +3,7 @@
interface CssExports {
'addSpecification': string;
'center': string;
'customFormats': string;
'deleteButton': string;
'rightButtons': string;
}

View File

@@ -11,16 +11,69 @@ import ConfirmModal from 'Components/Modal/ConfirmModal';
import { icons, inputTypes, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
const authenticationMethodOptions = [
{ key: 'none', value: 'None' },
{ key: 'basic', value: 'Basic (Browser Popup)' },
{ key: 'forms', value: 'Forms (Login Page)' }
export const authenticationMethodOptions = [
{
key: 'none',
get value() {
return translate('None');
},
isDisabled: true
},
{
key: 'external',
get value() {
return translate('External');
},
isHidden: true
},
{
key: 'basic',
get value() {
return translate('AuthBasic');
}
},
{
key: 'forms',
get value() {
return translate('AuthForm');
}
}
];
export const authenticationRequiredOptions = [
{
key: 'enabled',
get value() {
return translate('Enabled');
}
},
{
key: 'disabledForLocalAddresses',
get value() {
return translate('DisabledForLocalAddresses');
}
}
];
const certificateValidationOptions = [
{ key: 'enabled', value: 'Enabled' },
{ key: 'disabledForLocalAddresses', value: 'Disabled for Local Addresses' },
{ key: 'disabled', value: 'Disabled' }
{
key: 'enabled',
get value() {
return translate('Enabled');
}
},
{
key: 'disabledForLocalAddresses',
get value() {
return translate('DisabledForLocalAddresses');
}
},
{
key: 'disabled',
get value() {
return translate('Disabled');
}
}
];
class SecuritySettings extends Component {
@@ -68,8 +121,10 @@ class SecuritySettings extends Component {
const {
authenticationMethod,
authenticationRequired,
username,
password,
passwordConfirmation,
apiKey,
certificateValidation
} = settings;
@@ -79,26 +134,40 @@ class SecuritySettings extends Component {
return (
<FieldSet legend={translate('Security')}>
<FormGroup>
<FormLabel>
{translate('Authentication')}
</FormLabel>
<FormLabel>{translate('Authentication')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="authenticationMethod"
values={authenticationMethodOptions}
helpText={translate('AuthenticationMethodHelpText')}
helpTextWarning={translate('AuthenticationRequiredWarning')}
onChange={onInputChange}
{...authenticationMethod}
/>
</FormGroup>
{
authenticationEnabled &&
authenticationEnabled ?
<FormGroup>
<FormLabel>
{translate('Username')}
</FormLabel>
<FormLabel>{translate('AuthenticationRequired')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="authenticationRequired"
values={authenticationRequiredOptions}
helpText={translate('AuthenticationRequiredHelpText')}
onChange={onInputChange}
{...authenticationRequired}
/>
</FormGroup> :
null
}
{
authenticationEnabled ?
<FormGroup>
<FormLabel>{translate('Username')}</FormLabel>
<FormInputGroup
type={inputTypes.TEXT}
@@ -106,15 +175,14 @@ class SecuritySettings extends Component {
onChange={onInputChange}
{...username}
/>
</FormGroup>
</FormGroup> :
null
}
{
authenticationEnabled &&
authenticationEnabled ?
<FormGroup>
<FormLabel>
{translate('Password')}
</FormLabel>
<FormLabel>{translate('Password')}</FormLabel>
<FormInputGroup
type={inputTypes.PASSWORD}
@@ -122,19 +190,33 @@ class SecuritySettings extends Component {
onChange={onInputChange}
{...password}
/>
</FormGroup>
</FormGroup> :
null
}
{
authenticationEnabled ?
<FormGroup>
<FormLabel>{translate('PasswordConfirmation')}</FormLabel>
<FormInputGroup
type={inputTypes.PASSWORD}
name="passwordConfirmation"
onChange={onInputChange}
{...passwordConfirmation}
/>
</FormGroup> :
null
}
<FormGroup>
<FormLabel>
{translate('APIKey')}
</FormLabel>
<FormLabel>{translate('ApiKey')}</FormLabel>
<FormInputGroup
type={inputTypes.TEXT}
name="apiKey"
readOnly={true}
helpTextWarning={translate('ApiKeyHelpTextWarning')}
helpTextWarning={translate('RestartRequiredHelpTextWarning')}
buttons={[
<ClipboardButton
key="copy"
@@ -160,9 +242,7 @@ class SecuritySettings extends Component {
</FormGroup>
<FormGroup>
<FormLabel>
{translate('CertificateValidation')}
</FormLabel>
<FormLabel>{translate('CertificateValidation')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}

View File

@@ -18,7 +18,6 @@ function UpdateSettings(props) {
const {
advancedSettings,
settings,
isWindows,
packageUpdateMechanism,
onInputChange
} = props;
@@ -44,10 +43,10 @@ function UpdateSettings(props) {
value: titleCase(packageUpdateMechanism)
});
} else {
updateOptions.push({ key: 'builtIn', value: 'Built-In' });
updateOptions.push({ key: 'builtIn', value: translate('BuiltIn') });
}
updateOptions.push({ key: 'script', value: 'Script' });
updateOptions.push({ key: 'script', value: translate('Script') });
return (
<FieldSet legend={translate('Updates')}>
@@ -60,8 +59,8 @@ function UpdateSettings(props) {
<FormInputGroup
type={inputTypes.AUTO_COMPLETE}
name="branch"
helpText={usingExternalUpdateMechanism ? translate('UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism') : translate('UsingExternalUpdateMechanismBranchToUseToUpdateReadarr')}
helpLink="https://wiki.servarr.com/readarr/faq#how-do-I-update-my-readarr"
helpText={usingExternalUpdateMechanism ? translate('BranchUpdateMechanism') : translate('BranchUpdate')}
helpLink="https://wiki.servarr.com/readarr/settings#updates"
{...branch}
values={branchValues}
onChange={onInputChange}
@@ -69,62 +68,59 @@ function UpdateSettings(props) {
/>
</FormGroup>
{
!isWindows &&
<div>
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
size={sizes.MEDIUM}
>
<FormLabel>{translate('Automatic')}</FormLabel>
<div>
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
size={sizes.MEDIUM}
>
<FormLabel>{translate('Automatic')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="updateAutomatically"
helpText={translate('UpdateAutomaticallyHelpText')}
helpTextWarning={updateMechanism.value === 'docker' ? translate('AutomaticUpdatesDisabledDocker', { appName: 'Readarr' }) : undefined}
onChange={onInputChange}
{...updateAutomatically}
/>
</FormGroup>
<FormInputGroup
type={inputTypes.CHECK}
name="updateAutomatically"
helpText={translate('UpdateAutomaticallyHelpText')}
helpTextWarning={updateMechanism.value === 'docker' ? translate('AutomaticUpdatesDisabledDocker') : undefined}
onChange={onInputChange}
{...updateAutomatically}
/>
</FormGroup>
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
>
<FormLabel>{translate('Mechanism')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="updateMechanism"
values={updateOptions}
helpText={translate('UpdateMechanismHelpText')}
helpLink="https://wiki.servarr.com/readarr/settings#updates"
onChange={onInputChange}
{...updateMechanism}
/>
</FormGroup>
{
updateMechanism.value === 'script' &&
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
>
<FormLabel>{translate('Mechanism')}</FormLabel>
<FormLabel>{translate('ScriptPath')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="updateMechanism"
values={updateOptions}
helpText={translate('UpdateMechanismHelpText')}
helpLink="https://wiki.servarr.com/readarr/faq#how-do-i-update-my-readarr"
type={inputTypes.TEXT}
name="updateScriptPath"
helpText={translate('UpdateScriptPathHelpText')}
onChange={onInputChange}
{...updateMechanism}
{...updateScriptPath}
/>
</FormGroup>
{
updateMechanism.value === 'script' &&
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
>
<FormLabel>{translate('ScriptPath')}</FormLabel>
<FormInputGroup
type={inputTypes.TEXT}
name="updateScriptPath"
helpText={translate('UpdateScriptPathHelpText')}
onChange={onInputChange}
{...updateScriptPath}
/>
</FormGroup>
}
</div>
}
}
</div>
</FieldSet>
);
}

View File

@@ -8,6 +8,7 @@ import TagListConnector from 'Components/TagListConnector';
import { createMetadataProfileSelectorForHook } from 'Store/Selectors/createMetadataProfileSelector';
import { createQualityProfileSelectorForHook } from 'Store/Selectors/createQualityProfileSelector';
import { SelectStateInputProps } from 'typings/props';
import translate from 'Utilities/String/translate';
import styles from './ManageImportListsModalRow.css';
interface ManageImportListsModalRowProps {
@@ -70,7 +71,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) {
</TableRowCell>
<TableRowCell className={styles.qualityProfileId}>
{qualityProfile?.name ?? 'None'}
{qualityProfile?.name ?? translate('None')}
</TableRowCell>
<TableRowCell className={styles.metadataProfileId}>
@@ -82,7 +83,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) {
</TableRowCell>
<TableRowCell className={styles.enableAutomaticAdd}>
{enableAutomaticAdd ? 'Yes' : 'No'}
{enableAutomaticAdd ? translate('Yes') : translate('No')}
</TableRowCell>
<TableRowCell className={styles.tags}>

View File

@@ -1,4 +1,3 @@
import _ from 'lodash';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
@@ -15,11 +14,11 @@ function createMapStateToProps() {
(state) => state.settings.advancedSettings,
(state) => state.settings.namingExamples,
createSettingsSectionSelector(SECTION),
(advancedSettings, examples, sectionSettings) => {
(advancedSettings, namingExamples, sectionSettings) => {
return {
advancedSettings,
examples: examples.item,
examplesPopulated: !_.isEmpty(examples.item),
examples: namingExamples.item,
examplesPopulated: namingExamples.isPopulated,
...sectionSettings
};
}

View File

@@ -75,12 +75,12 @@ class RootFolder extends Component {
{path}
</Label>
<Label kind={kinds.SUCCESS}>
{qualityProfile.name}
<Label kind={qualityProfile?.name ? kinds.SUCCESS : kinds.DANGER}>
{qualityProfile?.name || translate('None')}
</Label>
<Label kind={kinds.SUCCESS}>
{metadataProfile.name}
<Label kind={metadataProfile?.name ? kinds.SUCCESS : kinds.DANGER}>
{metadataProfile?.name || translate('None')}
</Label>
</div>

View File

@@ -2,7 +2,6 @@ module.exports = {
// Families
defaultFontFamily: 'Roboto, "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif',
monoSpaceFontFamily: '"Ubuntu Mono", Menlo, Monaco, Consolas, "Courier New", monospace;',
passwordFamily: 'text-security-disc',
// Sizes
extraSmallFontSize: '11px',

View File

@@ -1,50 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import InlineMarkdown from 'Components/Markdown/InlineMarkdown';
import styles from './UpdateChanges.css';
class UpdateChanges extends Component {
//
// Render
render() {
const {
title,
changes
} = this.props;
if (changes.length === 0) {
return null;
}
return (
<div>
<div className={styles.title}>{title}</div>
<ul>
{
changes.map((change, index) => {
const checkChange = change.replace(/#\d{4,5}\b/g, (match, contents) => {
return `[${match}](https://github.com/Readarr/Readarr/issues/${match.substring(1)})`;
});
return (
<li key={index}>
<InlineMarkdown data={checkChange} />
</li>
);
})
}
</ul>
</div>
);
}
}
UpdateChanges.propTypes = {
title: PropTypes.string.isRequired,
changes: PropTypes.arrayOf(PropTypes.string)
};
export default UpdateChanges;

View File

@@ -0,0 +1,43 @@
import React from 'react';
import InlineMarkdown from 'Components/Markdown/InlineMarkdown';
import styles from './UpdateChanges.css';
interface UpdateChangesProps {
title: string;
changes: string[];
}
function UpdateChanges(props: UpdateChangesProps) {
const { title, changes } = props;
if (changes.length === 0) {
return null;
}
const uniqueChanges = [...new Set(changes)];
return (
<div>
<div className={styles.title}>{title}</div>
<ul>
{uniqueChanges.map((change, index) => {
const checkChange = change.replace(
/#\d{4,5}\b/g,
(match) =>
`[${match}](https://github.com/Readarr/Readarr/issues/${match.substring(
1
)})`
);
return (
<li key={index}>
<InlineMarkdown data={checkChange} />
</li>
);
})}
</ul>
</div>
);
}
export default UpdateChanges;

View File

@@ -1,252 +0,0 @@
import _ from 'lodash';
import PropTypes from 'prop-types';
import React, { Component, Fragment } from 'react';
import Alert from 'Components/Alert';
import Icon from 'Components/Icon';
import Label from 'Components/Label';
import SpinnerButton from 'Components/Link/SpinnerButton';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import InlineMarkdown from 'Components/Markdown/InlineMarkdown';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import { icons, kinds } from 'Helpers/Props';
import formatDate from 'Utilities/Date/formatDate';
import formatDateTime from 'Utilities/Date/formatDateTime';
import translate from 'Utilities/String/translate';
import UpdateChanges from './UpdateChanges';
import styles from './Updates.css';
class Updates extends Component {
//
// Render
render() {
const {
currentVersion,
isFetching,
isPopulated,
updatesError,
generalSettingsError,
items,
isInstallingUpdate,
updateMechanism,
isDocker,
updateMechanismMessage,
shortDateFormat,
longDateFormat,
timeFormat,
onInstallLatestPress
} = this.props;
const hasError = !!(updatesError || generalSettingsError);
const hasUpdates = isPopulated && !hasError && items.length > 0;
const noUpdates = isPopulated && !hasError && !items.length;
const hasUpdateToInstall = hasUpdates && _.some(items, { installable: true, latest: true });
const noUpdateToInstall = hasUpdates && !hasUpdateToInstall;
const externalUpdaterPrefix = 'Unable to update Readarr directly,';
const externalUpdaterMessages = {
external: 'Readarr is configured to use an external update mechanism',
apt: 'use apt to install the update',
docker: 'update the docker container to receive the update'
};
return (
<PageContent title={translate('Updates')}>
<PageContentBody>
{
!isPopulated && !hasError &&
<LoadingIndicator />
}
{
noUpdates &&
<Alert kind={kinds.INFO}>
{translate('NoUpdatesAreAvailable')}
</Alert>
}
{
hasUpdateToInstall &&
<div className={styles.messageContainer}>
{
(updateMechanism === 'builtIn' || updateMechanism === 'script') && !isDocker ?
<SpinnerButton
className={styles.updateAvailable}
kind={kinds.PRIMARY}
isSpinning={isInstallingUpdate}
onPress={onInstallLatestPress}
>
Install Latest
</SpinnerButton> :
<Fragment>
<Icon
name={icons.WARNING}
kind={kinds.WARNING}
size={30}
/>
<div className={styles.message}>
{externalUpdaterPrefix} <InlineMarkdown data={updateMechanismMessage || externalUpdaterMessages[updateMechanism] || externalUpdaterMessages.external} />
</div>
</Fragment>
}
{
isFetching &&
<LoadingIndicator
className={styles.loading}
size={20}
/>
}
</div>
}
{
noUpdateToInstall &&
<div className={styles.messageContainer}>
<Icon
className={styles.upToDateIcon}
name={icons.CHECK_CIRCLE}
size={30}
/>
<div className={styles.message}>
The latest version of Readarr is already installed
</div>
{
isFetching &&
<LoadingIndicator
className={styles.loading}
size={20}
/>
}
</div>
}
{
hasUpdates &&
<div>
{
items.map((update) => {
const hasChanges = !!update.changes;
return (
<div
key={update.version}
className={styles.update}
>
<div className={styles.info}>
<div className={styles.version}>{update.version}</div>
<div className={styles.space}>&mdash;</div>
<div
className={styles.date}
title={formatDateTime(update.releaseDate, longDateFormat, timeFormat)}
>
{formatDate(update.releaseDate, shortDateFormat)}
</div>
{
update.branch === 'master' ?
null :
<Label
className={styles.label}
>
{update.branch}
</Label>
}
{
update.version === currentVersion ?
<Label
className={styles.label}
kind={kinds.SUCCESS}
title={formatDateTime(update.installedOn, longDateFormat, timeFormat)}
>
Currently Installed
</Label> :
null
}
{
update.version !== currentVersion && update.installedOn ?
<Label
className={styles.label}
kind={kinds.INVERSE}
title={formatDateTime(update.installedOn, longDateFormat, timeFormat)}
>
Previously Installed
</Label> :
null
}
</div>
{
!hasChanges &&
<div>
{translate('MaintenanceRelease')}
</div>
}
{
hasChanges &&
<div className={styles.changes}>
<UpdateChanges
title={translate('New')}
changes={update.changes.new}
/>
<UpdateChanges
title={translate('Fixed')}
changes={update.changes.fixed}
/>
</div>
}
</div>
);
})
}
</div>
}
{
!!updatesError &&
<div>
Failed to fetch updates
</div>
}
{
!!generalSettingsError &&
<div>
Failed to update settings
</div>
}
</PageContentBody>
</PageContent>
);
}
}
Updates.propTypes = {
currentVersion: PropTypes.string.isRequired,
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
updatesError: PropTypes.object,
generalSettingsError: PropTypes.object,
items: PropTypes.array.isRequired,
isInstallingUpdate: PropTypes.bool.isRequired,
isDocker: PropTypes.bool.isRequired,
updateMechanism: PropTypes.string,
updateMechanismMessage: PropTypes.string,
shortDateFormat: PropTypes.string.isRequired,
longDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired,
onInstallLatestPress: PropTypes.func.isRequired
};
export default Updates;

View File

@@ -0,0 +1,303 @@
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { createSelector } from 'reselect';
import AppState from 'App/State/AppState';
import * as commandNames from 'Commands/commandNames';
import Alert from 'Components/Alert';
import Icon from 'Components/Icon';
import Label from 'Components/Label';
import SpinnerButton from 'Components/Link/SpinnerButton';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import InlineMarkdown from 'Components/Markdown/InlineMarkdown';
import ConfirmModal from 'Components/Modal/ConfirmModal';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import { icons, kinds } from 'Helpers/Props';
import { executeCommand } from 'Store/Actions/commandActions';
import { fetchGeneralSettings } from 'Store/Actions/settingsActions';
import { fetchUpdates } from 'Store/Actions/systemActions';
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
import createSystemStatusSelector from 'Store/Selectors/createSystemStatusSelector';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import { UpdateMechanism } from 'typings/Settings/General';
import formatDate from 'Utilities/Date/formatDate';
import formatDateTime from 'Utilities/Date/formatDateTime';
import translate from 'Utilities/String/translate';
import UpdateChanges from './UpdateChanges';
import styles from './Updates.css';
const VERSION_REGEX = /\d+\.\d+\.\d+\.\d+/i;
function createUpdatesSelector() {
return createSelector(
(state: AppState) => state.system.updates,
(state: AppState) => state.settings.general,
(updates, generalSettings) => {
const { error: updatesError, items } = updates;
const isFetching = updates.isFetching || generalSettings.isFetching;
const isPopulated = updates.isPopulated && generalSettings.isPopulated;
return {
isFetching,
isPopulated,
updatesError,
generalSettingsError: generalSettings.error,
items,
updateMechanism: generalSettings.item.updateMechanism,
};
}
);
}
function Updates() {
const currentVersion = useSelector((state: AppState) => state.app.version);
const { packageUpdateMechanismMessage } = useSelector(
createSystemStatusSelector()
);
const { shortDateFormat, longDateFormat, timeFormat } = useSelector(
createUISettingsSelector()
);
const isInstallingUpdate = useSelector(
createCommandExecutingSelector(commandNames.APPLICATION_UPDATE)
);
const {
isFetching,
isPopulated,
updatesError,
generalSettingsError,
items,
updateMechanism,
} = useSelector(createUpdatesSelector());
const dispatch = useDispatch();
const [isMajorUpdateModalOpen, setIsMajorUpdateModalOpen] = useState(false);
const hasError = !!(updatesError || generalSettingsError);
const hasUpdates = isPopulated && !hasError && items.length > 0;
const noUpdates = isPopulated && !hasError && !items.length;
const externalUpdaterPrefix = translate('UpdateAppDirectlyLoadError');
const externalUpdaterMessages: Partial<Record<UpdateMechanism, string>> = {
external: translate('ExternalUpdater'),
apt: translate('AptUpdater'),
docker: translate('DockerUpdater'),
};
const { isMajorUpdate, hasUpdateToInstall } = useMemo(() => {
const majorVersion = parseInt(
currentVersion.match(VERSION_REGEX)?.[0] ?? '0'
);
const latestVersion = items[0]?.version;
const latestMajorVersion = parseInt(
latestVersion?.match(VERSION_REGEX)?.[0] ?? '0'
);
return {
isMajorUpdate: latestMajorVersion > majorVersion,
hasUpdateToInstall: items.some(
(update) => update.installable && update.latest
),
};
}, [currentVersion, items]);
const noUpdateToInstall = hasUpdates && !hasUpdateToInstall;
const handleInstallLatestPress = useCallback(() => {
if (isMajorUpdate) {
setIsMajorUpdateModalOpen(true);
} else {
dispatch(executeCommand({ name: commandNames.APPLICATION_UPDATE }));
}
}, [isMajorUpdate, setIsMajorUpdateModalOpen, dispatch]);
const handleInstallLatestMajorVersionPress = useCallback(() => {
setIsMajorUpdateModalOpen(false);
dispatch(
executeCommand({
name: commandNames.APPLICATION_UPDATE,
installMajorUpdate: true,
})
);
}, [setIsMajorUpdateModalOpen, dispatch]);
const handleCancelMajorVersionPress = useCallback(() => {
setIsMajorUpdateModalOpen(false);
}, [setIsMajorUpdateModalOpen]);
useEffect(() => {
dispatch(fetchUpdates());
dispatch(fetchGeneralSettings());
}, [dispatch]);
return (
<PageContent title={translate('Updates')}>
<PageContentBody>
{isPopulated || hasError ? null : <LoadingIndicator />}
{noUpdates ? (
<Alert kind={kinds.INFO}>{translate('NoUpdatesAreAvailable')}</Alert>
) : null}
{hasUpdateToInstall ? (
<div className={styles.messageContainer}>
{updateMechanism === 'builtIn' || updateMechanism === 'script' ? (
<SpinnerButton
kind={kinds.PRIMARY}
isSpinning={isInstallingUpdate}
onPress={handleInstallLatestPress}
>
{translate('InstallLatest')}
</SpinnerButton>
) : (
<>
<Icon name={icons.WARNING} kind={kinds.WARNING} size={30} />
<div className={styles.message}>
{externalUpdaterPrefix}{' '}
<InlineMarkdown
data={
packageUpdateMechanismMessage ||
externalUpdaterMessages[updateMechanism] ||
externalUpdaterMessages.external
}
/>
</div>
</>
)}
{isFetching ? (
<LoadingIndicator className={styles.loading} size={20} />
) : null}
</div>
) : null}
{noUpdateToInstall && (
<div className={styles.messageContainer}>
<Icon
className={styles.upToDateIcon}
name={icons.CHECK_CIRCLE}
size={30}
/>
<div className={styles.message}>{translate('OnLatestVersion')}</div>
{isFetching && (
<LoadingIndicator className={styles.loading} size={20} />
)}
</div>
)}
{hasUpdates && (
<div>
{items.map((update) => {
return (
<div key={update.version} className={styles.update}>
<div className={styles.info}>
<div className={styles.version}>{update.version}</div>
<div className={styles.space}>&mdash;</div>
<div
className={styles.date}
title={formatDateTime(
update.releaseDate,
longDateFormat,
timeFormat
)}
>
{formatDate(update.releaseDate, shortDateFormat)}
</div>
{update.branch === 'master' ? null : (
<Label className={styles.label}>{update.branch}</Label>
)}
{update.version === currentVersion ? (
<Label
className={styles.label}
kind={kinds.SUCCESS}
title={formatDateTime(
update.installedOn,
longDateFormat,
timeFormat
)}
>
{translate('CurrentlyInstalled')}
</Label>
) : null}
{update.version !== currentVersion && update.installedOn ? (
<Label
className={styles.label}
kind={kinds.INVERSE}
title={formatDateTime(
update.installedOn,
longDateFormat,
timeFormat
)}
>
{translate('PreviouslyInstalled')}
</Label>
) : null}
</div>
{update.changes ? (
<div>
<UpdateChanges
title={translate('New')}
changes={update.changes.new}
/>
<UpdateChanges
title={translate('Fixed')}
changes={update.changes.fixed}
/>
</div>
) : (
<div>{translate('MaintenanceRelease')}</div>
)}
</div>
);
})}
</div>
)}
{updatesError ? (
<Alert kind={kinds.WARNING}>
{translate('FailedToFetchUpdates')}
</Alert>
) : null}
{generalSettingsError ? (
<Alert kind={kinds.DANGER}>
{translate('FailedToFetchSettings')}
</Alert>
) : null}
<ConfirmModal
isOpen={isMajorUpdateModalOpen}
kind={kinds.WARNING}
title={translate('InstallMajorVersionUpdate')}
message={
<div>
<div>{translate('InstallMajorVersionUpdateMessage')}</div>
<div>
<InlineMarkdown
data={translate('InstallMajorVersionUpdateMessageLink', {
domain: 'readarr.com',
url: 'https://readarr.com/#downloads',
})}
/>
</div>
</div>
}
confirmLabel={translate('Install')}
onConfirm={handleInstallLatestMajorVersionPress}
onCancel={handleCancelMajorVersionPress}
/>
</PageContentBody>
</PageContent>
);
}
export default Updates;

View File

@@ -0,0 +1,45 @@
export type UpdateMechanism =
| 'builtIn'
| 'script'
| 'external'
| 'apt'
| 'docker';
export default interface General {
bindAddress: string;
port: number;
sslPort: number;
enableSsl: boolean;
launchBrowser: boolean;
authenticationMethod: string;
authenticationRequired: string;
analyticsEnabled: boolean;
username: string;
password: string;
passwordConfirmation: string;
logLevel: string;
consoleLogLevel: string;
branch: string;
apiKey: string;
sslCertPath: string;
sslCertPassword: string;
urlBase: string;
instanceName: string;
applicationUrl: string;
updateAutomatically: boolean;
updateMechanism: UpdateMechanism;
updateScriptPath: string;
proxyEnabled: boolean;
proxyType: string;
proxyHostname: string;
proxyPort: number;
proxyUsername: string;
proxyPassword: string;
proxyBypassFilter: string;
proxyBypassLocalAddresses: boolean;
certificateValidation: string;
backupFolder: string;
backupInterval: number;
backupRetention: number;
id: number;
}

View File

@@ -1,4 +1,5 @@
export interface UiSettings {
export default interface UiSettings {
theme: 'auto' | 'dark' | 'light';
showRelativeDates: boolean;
shortDateFormat: string;
longDateFormat: string;

View File

@@ -0,0 +1,32 @@
interface SystemStatus {
appData: string;
appName: string;
authentication: string;
branch: string;
buildTime: string;
instanceName: string;
isAdmin: boolean;
isDebug: boolean;
isDocker: boolean;
isLinux: boolean;
isNetCore: boolean;
isOsx: boolean;
isProduction: boolean;
isUserInteractive: boolean;
isWindows: boolean;
migrationVersion: number;
mode: string;
osName: string;
osVersion: string;
packageUpdateMechanism: string;
packageUpdateMechanismMessage: string;
runtimeName: string;
runtimeVersion: string;
sqliteVersion: string;
startTime: string;
startupPath: string;
urlBase: string;
version: string;
}
export default SystemStatus;

View File

@@ -0,0 +1,20 @@
export interface Changes {
new: string[];
fixed: string[];
}
interface Update {
version: string;
branch: string;
releaseDate: string;
fileName: string;
url: string;
installed: boolean;
installedOn: string;
installable: boolean;
latest: boolean;
changes: Changes | null;
hash: string;
}
export default Update;

View File

@@ -25,34 +25,33 @@
"defaults"
],
"dependencies": {
"@fortawesome/fontawesome-free": "6.4.0",
"@fortawesome/fontawesome-svg-core": "6.4.0",
"@fortawesome/free-regular-svg-icons": "6.4.0",
"@fortawesome/free-solid-svg-icons": "6.4.0",
"@fortawesome/react-fontawesome": "0.2.0",
"@fortawesome/fontawesome-free": "6.6.0",
"@fortawesome/fontawesome-svg-core": "6.6.0",
"@fortawesome/free-regular-svg-icons": "6.6.0",
"@fortawesome/free-solid-svg-icons": "6.6.0",
"@fortawesome/react-fontawesome": "0.2.2",
"@microsoft/signalr": "6.0.25",
"@sentry/browser": "7.51.2",
"@sentry/integrations": "7.51.2",
"@types/node": "18.19.31",
"@sentry/browser": "7.119.1",
"@sentry/integrations": "7.119.1",
"@types/node": "20.16.11",
"@types/react": "18.2.79",
"@types/react-dom": "18.2.25",
"ansi-colors": "4.1.3",
"classnames": "2.3.2",
"classnames": "2.5.1",
"clipboard": "2.0.11",
"connected-react-router": "6.9.3",
"element-class": "0.2.2",
"filesize": "10.0.7",
"filesize": "10.1.6",
"fuse.js": "6.6.2",
"history": "4.10.1",
"jdu": "1.0.0",
"jquery": "3.7.0",
"jquery": "3.7.1",
"lodash": "4.17.21",
"mobile-detect": "1.4.5",
"moment": "2.29.4",
"moment": "2.30.1",
"mousetrap": "1.6.5",
"normalize.css": "8.0.1",
"prop-types": "15.8.1",
"qs": "6.11.1",
"qs": "6.13.0",
"react": "17.0.2",
"react-addons-shallow-compare": "15.6.3",
"react-async-script": "1.2.0",
@@ -64,7 +63,7 @@
"react-dnd-touch-backend": "14.1.1",
"react-document-title": "2.0.3",
"react-dom": "17.0.2",
"react-focus-lock": "2.5.2",
"react-focus-lock": "2.9.4",
"react-google-recaptcha": "2.1.0",
"react-lazyload": "3.2.0",
"react-measure": "2.5.2",
@@ -73,74 +72,71 @@
"react-redux": "7.2.4",
"react-router": "5.2.0",
"react-router-dom": "5.2.0",
"react-slider": "1.3.1",
"react-tabs": "3.2.2",
"react-text-truncate": "0.18.0",
"react-slider": "1.3.3",
"react-tabs": "4.3.0",
"react-text-truncate": "0.19.0",
"react-virtualized": "9.21.1",
"redux": "4.1.0",
"redux": "4.2.1",
"redux-actions": "2.6.5",
"redux-batched-actions": "0.5.0",
"redux-localstorage": "0.4.1",
"redux-thunk": "2.3.0",
"redux-thunk": "2.4.2",
"reselect": "4.1.8",
"stacktrace-js": "2.0.2",
"typescript": "5.1.6"
},
"devDependencies": {
"@babel/core": "7.24.4",
"@babel/eslint-parser": "7.24.1",
"@babel/plugin-proposal-export-default-from": "7.24.1",
"@babel/core": "7.25.8",
"@babel/eslint-parser": "7.25.8",
"@babel/plugin-proposal-export-default-from": "7.25.8",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/preset-env": "7.24.4",
"@babel/preset-react": "7.24.1",
"@babel/preset-typescript": "7.24.1",
"@babel/preset-env": "7.25.8",
"@babel/preset-react": "7.25.7",
"@babel/preset-typescript": "7.25.7",
"@types/lodash": "4.14.195",
"@types/react-lazyload": "3.2.0",
"@types/redux-actions": "2.6.2",
"@types/react-lazyload": "3.2.3",
"@types/redux-actions": "2.6.5",
"@typescript-eslint/eslint-plugin": "6.21.0",
"@typescript-eslint/parser": "6.21.0",
"autoprefixer": "10.4.14",
"babel-loader": "9.1.3",
"autoprefixer": "10.4.20",
"babel-loader": "9.2.1",
"babel-plugin-inline-classnames": "2.0.1",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"core-js": "3.37.0",
"core-js": "3.38.1",
"css-loader": "6.8.1",
"css-modules-typescript-loader": "4.0.1",
"eslint": "8.57.0",
"eslint": "8.57.1",
"eslint-config-prettier": "8.10.0",
"eslint-plugin-filenames": "1.3.2",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-json": "3.1.0",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-react": "7.34.1",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-simple-import-sort": "12.1.0",
"eslint-plugin-react": "7.37.1",
"eslint-plugin-react-hooks": "4.6.2",
"eslint-plugin-simple-import-sort": "12.1.1",
"file-loader": "6.2.0",
"filemanager-webpack-plugin": "8.0.0",
"fork-ts-checker-webpack-plugin": "8.0.0",
"html-webpack-plugin": "5.5.3",
"html-webpack-plugin": "5.6.0",
"loader-utils": "^3.2.1",
"mini-css-extract-plugin": "2.7.6",
"postcss": "8.4.38",
"mini-css-extract-plugin": "2.9.1",
"postcss": "8.4.47",
"postcss-color-function": "4.1.0",
"postcss-loader": "7.3.0",
"postcss-mixins": "9.0.4",
"postcss-nested": "6.0.1",
"postcss-nested": "6.2.0",
"postcss-simple-vars": "7.0.1",
"postcss-url": "10.1.3",
"prettier": "2.8.8",
"require-nocache": "1.0.0",
"rimraf": "4.4.1",
"run-sequence": "2.2.1",
"streamqueue": "1.1.2",
"style-loader": "3.3.3",
"rimraf": "6.0.1",
"style-loader": "3.3.4",
"stylelint": "15.10.3",
"stylelint-order": "6.0.3",
"terser-webpack-plugin": "5.3.9",
"ts-loader": "9.4.4",
"stylelint-order": "6.0.4",
"terser-webpack-plugin": "5.3.10",
"ts-loader": "9.5.1",
"typescript-plugin-css-modules": "5.0.1",
"url-loader": "4.1.1",
"webpack": "5.88.2",
"webpack": "5.95.0",
"webpack-cli": "5.1.4",
"webpack-livereload-plugin": "3.0.2",
"worker-loader": "3.0.8"

View File

@@ -4,26 +4,27 @@
<PackageVersion Include="AutoFixture" Version="4.17.0" />
<PackageVersion Include="coverlet.collector" Version="3.0.4-preview.27.ge7cb7c3b40" PrivateAssets="all" />
<PackageVersion Include="Dapper" Version="2.0.151" />
<PackageVersion Include="Diacritical.Net" Version="1.0.4" />
<PackageVersion Include="DryIoc.dll" Version="5.4.3" />
<PackageVersion Include="DryIoc.Microsoft.DependencyInjection" Version="6.2.0" />
<PackageVersion Include="Equ" Version="2.3.0" />
<PackageVersion Include="FluentAssertions" Version="5.10.3" />
<PackageVersion Include="Polly" Version="8.3.1" />
<PackageVersion Include="Polly" Version="8.4.2" />
<PackageVersion Include="Servarr.FluentMigrator.Runner" Version="3.3.2.9" />
<PackageVersion Include="Servarr.FluentMigrator.Runner.SQLite" Version="3.3.2.9" />
<PackageVersion Include="Servarr.FluentMigrator.Runner.Postgres" Version="3.3.2.9" />
<PackageVersion Include="FluentValidation" Version="9.5.4" />
<PackageVersion Include="Ical.Net" Version="4.2.0" />
<PackageVersion Include="Ical.Net" Version="4.3.1" />
<PackageVersion Include="ImpromptuInterface" Version="7.0.1" />
<PackageVersion Include="LazyCache" Version="2.4.0" />
<PackageVersion Include="Mailkit" Version="3.6.0" />
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.29" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.35" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageVersion Include="Mono.Posix.NETStandard" Version="5.20.1.34-servarr22" />
<PackageVersion Include="Moq" Version="4.17.2" />
@@ -33,7 +34,7 @@
<PackageVersion Include="NLog.Extensions.Logging" Version="5.2.3" />
<PackageVersion Include="NLog" Version="5.1.4" />
<PackageVersion Include="NLog.Targets.Syslog" Version="7.0.0" />
<PackageVersion Include="Npgsql" Version="7.0.6" />
<PackageVersion Include="Npgsql" Version="7.0.8" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageVersion Include="NUnit" Version="3.14.0" />
<PackageVersion Include="NunitXml.TestLogger" Version="3.0.117" />
@@ -44,9 +45,10 @@
<PackageVersion Include="Selenium.WebDriver.ChromeDriver" Version="91.0.4472.10100" />
<PackageVersion Include="Sentry" Version="3.31.0" />
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.4" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.5" />
<PackageVersion Include="StyleCop.Analyzers" Version="1.1.118" />
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.5.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.6.2" />
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.6.2" />
<PackageVersion Include="System.Buffers" Version="4.5.1" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
<PackageVersion Include="System.Data.SQLite.Core.Servarr" Version="1.0.115.5-18" />
@@ -60,7 +62,7 @@
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="6.0.1" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageVersion Include="System.Text.Json" Version="6.0.9" />
<PackageVersion Include="System.Text.Json" Version="6.0.10" />
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
<PackageVersion Include="TagLibSharp-Lidarr" Version="2.2.0.19" />
</ItemGroup>

View File

@@ -46,7 +46,7 @@ namespace NzbDrone.Automation.Test
_runner = new NzbDroneRunner(LogManager.GetCurrentClassLogger(), null);
_runner.KillAll();
_runner.Start();
_runner.Start(true);
driver.Url = "http://localhost:8787";

View File

@@ -1,10 +1,12 @@
using System.Collections.Generic;
using FluentAssertions;
using Microsoft.Extensions.Options;
using Moq;
using NUnit.Framework;
using NzbDrone.Common.Disk;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Options;
using NzbDrone.Core.Authentication;
using NzbDrone.Core.Configuration;
using NzbDrone.Test.Common;
@@ -43,6 +45,26 @@ namespace NzbDrone.Common.Test
Mocker.GetMock<IDiskProvider>()
.Setup(v => v.WriteAllText(configFile, It.IsAny<string>()))
.Callback<string, string>((p, t) => _configFileContents = t);
Mocker.GetMock<IOptions<AuthOptions>>()
.Setup(v => v.Value)
.Returns(new AuthOptions());
Mocker.GetMock<IOptions<AppOptions>>()
.Setup(v => v.Value)
.Returns(new AppOptions());
Mocker.GetMock<IOptions<ServerOptions>>()
.Setup(v => v.Value)
.Returns(new ServerOptions());
Mocker.GetMock<IOptions<LogOptions>>()
.Setup(v => v.Value)
.Returns(new LogOptions());
Mocker.GetMock<IOptions<UpdateOptions>>()
.Setup(v => v.Value)
.Returns(new UpdateOptions());
}
[Test]

View File

@@ -89,6 +89,10 @@ namespace NzbDrone.Common.Test.InstrumentationTests
[TestCase(@"https://discord.com/api/webhooks/mySecret")]
[TestCase(@"https://discord.com/api/webhooks/mySecret/01233210")]
// Telegram
[TestCase(@"https://api.telegram.org/bot1234567890:mySecret/sendmessage: chat_id=123456&parse_mode=HTML&text=<text>")]
[TestCase(@"https://api.telegram.org/bot1234567890:mySecret/")]
public void should_clean_message(string message)
{
var cleansedMessage = CleanseLogMessage.Cleanse(message);

View File

@@ -10,6 +10,7 @@ using NUnit.Framework;
using NzbDrone.Common.Composition.Extensions;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Instrumentation.Extensions;
using NzbDrone.Common.Options;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Datastore.Extensions;
using NzbDrone.Core.Lifecycle;
@@ -33,6 +34,11 @@ namespace NzbDrone.Common.Test
container.RegisterInstance(new Mock<IHostLifetime>().Object);
container.RegisterInstance(new Mock<IOptions<PostgresOptions>>().Object);
container.RegisterInstance(new Mock<IOptions<AppOptions>>().Object);
container.RegisterInstance(new Mock<IOptions<AuthOptions>>().Object);
container.RegisterInstance(new Mock<IOptions<ServerOptions>>().Object);
container.RegisterInstance(new Mock<IOptions<LogOptions>>().Object);
container.RegisterInstance(new Mock<IOptions<UpdateOptions>>().Object);
var serviceProvider = container.GetServiceProvider();
serviceProvider.GetRequiredService<IAppFolderFactory>().Register();

View File

@@ -54,7 +54,10 @@ namespace NzbDrone.Common.Instrumentation
new (@"api/v[0-9]/notification/readarr/(?<secret>[\w-]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// Discord
new (@"discord.com/api/webhooks/((?<secret>[\w-]+)/)?(?<secret>[\w-]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase)
new (@"discord.com/api/webhooks/((?<secret>[\w-]+)/)?(?<secret>[\w-]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// Telegram
new (@"api.telegram.org/bot(?<id>[\d]+):(?<secret>[\w-]+)/", RegexOptions.Compiled | RegexOptions.IgnoreCase)
};
private static readonly Regex CleanseRemoteIPRegex = new (@"(?:Auth-\w+(?<!Failure|Unauthorized) ip|from) (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", RegexOptions.Compiled);

View File

@@ -0,0 +1,8 @@
namespace NzbDrone.Common.Options;
public class AppOptions
{
public string InstanceName { get; set; }
public string Theme { get; set; }
public bool? LaunchBrowser { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace NzbDrone.Common.Options;
public class AuthOptions
{
public string ApiKey { get; set; }
public bool? Enabled { get; set; }
public string Method { get; set; }
public string Required { get; set; }
}

View File

@@ -0,0 +1,14 @@
namespace NzbDrone.Common.Options;
public class LogOptions
{
public string Level { get; set; }
public bool? FilterSentryEvents { get; set; }
public int? Rotate { get; set; }
public bool? Sql { get; set; }
public string ConsoleLevel { get; set; }
public bool? AnalyticsEnabled { get; set; }
public string SyslogServer { get; set; }
public int? SyslogPort { get; set; }
public string SyslogLevel { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace NzbDrone.Common.Options;
public class ServerOptions
{
public string UrlBase { get; set; }
public string BindAddress { get; set; }
public int? Port { get; set; }
public bool? EnableSsl { get; set; }
public int? SslPort { get; set; }
public string SslCertPath { get; set; }
public string SslCertPassword { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace NzbDrone.Common.Options;
public class UpdateOptions
{
public string Mechanism { get; set; }
public bool? Automatically { get; set; }
public string ScriptPath { get; set; }
public string Branch { get; set; }
}

View File

@@ -557,6 +557,34 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
result.OutputRootFolders.First().Should().Be(@"C:\Downloads\Finished\QBittorrent".AsOsAgnostic());
}
[Test]
public void should_correct_category_output_path()
{
var config = new QBittorrentPreferences
{
SavePath = @"C:\Downloads\Finished\QBittorrent".AsOsAgnostic()
};
Mocker.GetMock<IQBittorrentProxy>()
.Setup(v => v.GetConfig(It.IsAny<QBittorrentSettings>()))
.Returns(config);
Mocker.GetMock<IQBittorrentProxy>()
.Setup(v => v.GetApiVersion(It.IsAny<QBittorrentSettings>()))
.Returns(new Version(2, 0));
Mocker.GetMock<IQBittorrentProxy>()
.Setup(s => s.GetLabels(It.IsAny<QBittorrentSettings>()))
.Returns(new Dictionary<string, QBittorrentLabel>
{ { "music", new QBittorrentLabel { Name = "music", SavePath = "//server/store/downloads" } } });
var result = Subject.GetStatus();
result.IsLocalhost.Should().BeTrue();
result.OutputRootFolders.Should().NotBeNull();
result.OutputRootFolders.First().Should().Be(@"\\server\store\downloads");
}
[Test]
public async Task Download_should_handle_http_redirect_to_magnet()
{

View File

@@ -49,10 +49,13 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests
}
[Test]
public void magnet_download_should_not_return_the_item()
public void magnet_download_should_be_returned_as_queued()
{
PrepareClientToReturnMagnetItem();
Subject.GetItems().Count().Should().Be(0);
var item = Subject.GetItems().Single();
item.Status.Should().Be(DownloadItemStatus.Queued);
}
[Test]

View File

@@ -60,7 +60,10 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests
public void magnet_download_should_not_return_the_item()
{
PrepareClientToReturnMagnetItem();
Subject.GetItems().Count().Should().Be(0);
var item = Subject.GetItems().Single();
item.Status.Should().Be(DownloadItemStatus.Queued);
}
[Test]

View File

@@ -7,6 +7,7 @@ using NzbDrone.Core.HealthCheck.Checks;
using NzbDrone.Core.Localization;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Core.Update;
using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.HealthCheck.Checks
{
@@ -21,28 +22,10 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
.Returns("Some Warning Message");
}
[Test]
public void should_return_error_when_app_folder_is_write_protected()
{
WindowsOnly();
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"C:\NzbDrone");
Mocker.GetMock<IDiskProvider>()
.Setup(c => c.FolderWritable(It.IsAny<string>()))
.Returns(false);
Subject.Check().ShouldBeError();
}
[Test]
public void should_return_error_when_app_folder_is_write_protected_and_update_automatically_is_enabled()
{
PosixOnly();
const string startupFolder = @"/opt/nzbdrone";
var startupFolder = @"C:\NzbDrone".AsOsAgnostic();
Mocker.GetMock<IConfigFileProvider>()
.Setup(s => s.UpdateAutomatically)
@@ -62,10 +45,8 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
[Test]
public void should_return_error_when_ui_folder_is_write_protected_and_update_automatically_is_enabled()
{
PosixOnly();
const string startupFolder = @"/opt/nzbdrone";
const string uiFolder = @"/opt/nzbdrone/UI";
var startupFolder = @"C:\NzbDrone".AsOsAgnostic();
var uiFolder = @"C:\NzbDrone\UI".AsOsAgnostic();
Mocker.GetMock<IConfigFileProvider>()
.Setup(s => s.UpdateAutomatically)
@@ -89,7 +70,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
[Test]
public void should_not_return_error_when_app_folder_is_write_protected_and_external_script_enabled()
{
PosixOnly();
var startupFolder = @"C:\NzbDrone".AsOsAgnostic();
Mocker.GetMock<IConfigFileProvider>()
.Setup(s => s.UpdateAutomatically)
@@ -101,7 +82,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"/opt/nzbdrone");
.Returns(startupFolder);
Mocker.GetMock<IDiskProvider>()
.Verify(c => c.FolderWritable(It.IsAny<string>()), Times.Never());

View File

@@ -13,7 +13,7 @@ using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-05-15 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")]
public class BookInfoProxyFixture : CoreTest<BookInfoProxy>
{
private MetadataProfile _metadataProfile;

View File

@@ -15,7 +15,7 @@ using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-05-15 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")]
public class BookInfoProxySearchFixture : CoreTest<BookInfoProxy>
{
[SetUp]

View File

@@ -38,7 +38,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads
ExceptionVerification.IgnoreWarns();
}
[TestCase("Harry Potter and the sorcerer's stone a detailed summary", 61800696)]
[TestCase("Harry Potter and the sorcerer's stone a detailed summary", 72245296)]
[TestCase("B0192CTMYG", 61209488)]
[TestCase("9780439554930", 48517161)]
public void successful_book_search(string title, int expected)

View File

@@ -46,6 +46,7 @@ namespace NzbDrone.Core.Test.QueueTests
_trackedDownloads = Builder<TrackedDownload>.CreateListOfSize(1)
.All()
.With(v => v.IsTrackable = true)
.With(v => v.DownloadItem = downloadItem)
.With(v => v.RemoteBook = remoteBook)
.Build()

View File

@@ -0,0 +1,8 @@
namespace NzbDrone.Core.Authentication
{
public enum AuthenticationRequiredType
{
Enabled = 0,
DisabledForLocalAddresses = 1
}
}

View File

@@ -1,9 +1,10 @@
namespace NzbDrone.Core.Authentication
namespace NzbDrone.Core.Authentication
{
public enum AuthenticationType
{
None = 0,
Basic = 1,
Forms = 2
Forms = 2,
External = 3
}
}

View File

@@ -15,18 +15,18 @@ namespace NzbDrone.Core.Books
public class BookCutoffService : IBookCutoffService
{
private readonly IBookRepository _bookRepository;
private readonly IProfileService _profileService;
private readonly IQualityProfileService _qualityProfileService;
public BookCutoffService(IBookRepository bookRepository, IProfileService profileService)
public BookCutoffService(IBookRepository bookRepository, IQualityProfileService qualityProfileService)
{
_bookRepository = bookRepository;
_profileService = profileService;
_qualityProfileService = qualityProfileService;
}
public PagingSpec<Book> BooksWhereCutoffUnmet(PagingSpec<Book> pagingSpec)
{
var qualitiesBelowCutoff = new List<QualitiesBelowCutoff>();
var profiles = _profileService.All();
var profiles = _qualityProfileService.All();
//Get all items less than the cutoff
foreach (var profile in profiles)

View File

@@ -9,6 +9,7 @@ using NzbDrone.Common.Cache;
using NzbDrone.Common.Disk;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Options;
using NzbDrone.Core.Authentication;
using NzbDrone.Core.Configuration.Events;
using NzbDrone.Core.Datastore;
@@ -32,6 +33,7 @@ namespace NzbDrone.Core.Configuration
bool EnableSsl { get; }
bool LaunchBrowser { get; }
AuthenticationType AuthenticationMethod { get; }
AuthenticationRequiredType AuthenticationRequired { get; }
bool AnalyticsEnabled { get; }
string LogLevel { get; }
string ConsoleLogLevel { get; }
@@ -69,6 +71,11 @@ namespace NzbDrone.Core.Configuration
private readonly IDiskProvider _diskProvider;
private readonly ICached<string> _cache;
private readonly PostgresOptions _postgresOptions;
private readonly AuthOptions _authOptions;
private readonly AppOptions _appOptions;
private readonly ServerOptions _serverOptions;
private readonly UpdateOptions _updateOptions;
private readonly LogOptions _logOptions;
private readonly string _configFile;
@@ -78,13 +85,23 @@ namespace NzbDrone.Core.Configuration
ICacheManager cacheManager,
IEventAggregator eventAggregator,
IDiskProvider diskProvider,
IOptions<PostgresOptions> postgresOptions)
IOptions<PostgresOptions> postgresOptions,
IOptions<AuthOptions> authOptions,
IOptions<AppOptions> appOptions,
IOptions<ServerOptions> serverOptions,
IOptions<UpdateOptions> updateOptions,
IOptions<LogOptions> logOptions)
{
_cache = cacheManager.GetCache<string>(GetType());
_eventAggregator = eventAggregator;
_diskProvider = diskProvider;
_configFile = appFolderInfo.GetConfigPath();
_postgresOptions = postgresOptions.Value;
_authOptions = authOptions.Value;
_appOptions = appOptions.Value;
_serverOptions = serverOptions.Value;
_updateOptions = updateOptions.Value;
_logOptions = logOptions.Value;
}
public Dictionary<string, object> GetConfigDictionary()
@@ -140,7 +157,7 @@ namespace NzbDrone.Core.Configuration
{
const string defaultValue = "*";
var bindAddress = GetValue("BindAddress", defaultValue);
var bindAddress = _serverOptions.BindAddress ?? GetValue("BindAddress", defaultValue);
if (string.IsNullOrWhiteSpace(bindAddress))
{
return defaultValue;
@@ -150,19 +167,19 @@ namespace NzbDrone.Core.Configuration
}
}
public int Port => GetValueInt("Port", 8787);
public int Port => _serverOptions.Port ?? GetValueInt("Port", 8787);
public int SslPort => GetValueInt("SslPort", 6868);
public int SslPort => _serverOptions.SslPort ?? GetValueInt("SslPort", 6868);
public bool EnableSsl => GetValueBoolean("EnableSsl", false);
public bool EnableSsl => _serverOptions.EnableSsl ?? GetValueBoolean("EnableSsl", false);
public bool LaunchBrowser => GetValueBoolean("LaunchBrowser", true);
public bool LaunchBrowser => _appOptions.LaunchBrowser ?? GetValueBoolean("LaunchBrowser", true);
public string ApiKey
{
get
{
var apiKey = GetValue("ApiKey", GenerateApiKey());
var apiKey = _authOptions.ApiKey ?? GetValue("ApiKey", GenerateApiKey());
if (apiKey.IsNullOrWhiteSpace())
{
@@ -178,7 +195,7 @@ namespace NzbDrone.Core.Configuration
{
get
{
var enabled = GetValueBoolean("AuthenticationEnabled", false, false);
var enabled = _authOptions.Enabled ?? GetValueBoolean("AuthenticationEnabled", false, false);
if (enabled)
{
@@ -186,17 +203,24 @@ namespace NzbDrone.Core.Configuration
return AuthenticationType.Basic;
}
return GetValueEnum("AuthenticationMethod", AuthenticationType.None);
return Enum.TryParse<AuthenticationType>(_authOptions.Method, out var enumValue)
? enumValue
: GetValueEnum("AuthenticationMethod", AuthenticationType.None);
}
}
public bool AnalyticsEnabled => GetValueBoolean("AnalyticsEnabled", true, persist: false);
public AuthenticationRequiredType AuthenticationRequired =>
Enum.TryParse<AuthenticationRequiredType>(_authOptions.Required, out var enumValue)
? enumValue
: GetValueEnum("AuthenticationRequired", AuthenticationRequiredType.Enabled);
public bool AnalyticsEnabled => _logOptions.AnalyticsEnabled ?? GetValueBoolean("AnalyticsEnabled", true, persist: false);
// TODO: Change back to "master" for the first stable release
public string Branch => GetValue("Branch", "develop").ToLowerInvariant();
public string Branch => _updateOptions.Branch ?? GetValue("Branch", "develop").ToLowerInvariant();
public string LogLevel => GetValue("LogLevel", "info");
public string ConsoleLogLevel => GetValue("ConsoleLogLevel", string.Empty, persist: false);
public string LogLevel => _logOptions.Level ?? GetValue("LogLevel", "debug").ToLowerInvariant();
public string ConsoleLogLevel => _logOptions.ConsoleLevel ?? GetValue("ConsoleLogLevel", string.Empty, persist: false);
public string PostgresHost => _postgresOptions?.Host ?? GetValue("PostgresHost", string.Empty, persist: false);
public string PostgresUser => _postgresOptions?.User ?? GetValue("PostgresUser", string.Empty, persist: false);
@@ -206,18 +230,18 @@ namespace NzbDrone.Core.Configuration
public string PostgresCacheDb => _postgresOptions?.CacheDb ?? GetValue("PostgresCacheDb", "readarr-cache", persist: false);
public int PostgresPort => (_postgresOptions?.Port ?? 0) != 0 ? _postgresOptions.Port : GetValueInt("PostgresPort", 5432, persist: false);
public string Theme => GetValue("Theme", "auto", persist: false);
public bool LogSql => GetValueBoolean("LogSql", false, persist: false);
public int LogRotate => GetValueInt("LogRotate", 50, persist: false);
public bool FilterSentryEvents => GetValueBoolean("FilterSentryEvents", true, persist: false);
public string SslCertPath => GetValue("SslCertPath", "");
public string SslCertPassword => GetValue("SslCertPassword", "");
public string Theme => _appOptions.Theme ?? GetValue("Theme", "auto", persist: false);
public bool LogSql => _logOptions.Sql ?? GetValueBoolean("LogSql", false, persist: false);
public int LogRotate => _logOptions.Rotate ?? GetValueInt("LogRotate", 50, persist: false);
public bool FilterSentryEvents => _logOptions.FilterSentryEvents ?? GetValueBoolean("FilterSentryEvents", true, persist: false);
public string SslCertPath => _serverOptions.SslCertPath ?? GetValue("SslCertPath", "");
public string SslCertPassword => _serverOptions.SslCertPassword ?? GetValue("SslCertPassword", "");
public string UrlBase
{
get
{
var urlBase = GetValue("UrlBase", "").Trim('/');
var urlBase = (_serverOptions.UrlBase ?? GetValue("UrlBase", "")).Trim('/');
if (urlBase.IsNullOrWhiteSpace())
{
@@ -229,19 +253,22 @@ namespace NzbDrone.Core.Configuration
}
public string UiFolder => BuildInfo.IsDebug ? Path.Combine("..", "UI") : "UI";
public string InstanceName => GetValue("InstanceName", BuildInfo.AppName);
public string InstanceName => _appOptions.InstanceName ?? GetValue("InstanceName", BuildInfo.AppName);
public bool UpdateAutomatically => GetValueBoolean("UpdateAutomatically", false, false);
public bool UpdateAutomatically => _updateOptions.Automatically ?? GetValueBoolean("UpdateAutomatically", OsInfo.IsWindows, false);
public UpdateMechanism UpdateMechanism => GetValueEnum("UpdateMechanism", UpdateMechanism.BuiltIn, false);
public UpdateMechanism UpdateMechanism =>
Enum.TryParse<UpdateMechanism>(_updateOptions.Mechanism, out var enumValue)
? enumValue
: GetValueEnum("UpdateMechanism", UpdateMechanism.BuiltIn, false);
public string UpdateScriptPath => GetValue("UpdateScriptPath", "", false);
public string UpdateScriptPath => _updateOptions.ScriptPath ?? GetValue("UpdateScriptPath", "", false);
public string SyslogServer => GetValue("SyslogServer", "", persist: false);
public string SyslogServer => _logOptions.SyslogServer ?? GetValue("SyslogServer", "", persist: false);
public int SyslogPort => GetValueInt("SyslogPort", 514, persist: false);
public int SyslogPort => _logOptions.SyslogPort ?? GetValueInt("SyslogPort", 514, persist: false);
public string SyslogLevel => GetValue("SyslogLevel", LogLevel, false).ToLowerInvariant();
public string SyslogLevel => _logOptions.SyslogLevel ?? GetValue("SyslogLevel", LogLevel, persist: false).ToLowerInvariant();
public int GetValueInt(string key, int defaultValue, bool persist = true)
{
@@ -330,7 +357,7 @@ namespace NzbDrone.Core.Configuration
}
// If SSL is enabled and a cert hash is still in the config file or cert path is empty disable SSL
if (EnableSsl && (GetValue("SslCertHash", null).IsNotNullOrWhiteSpace() || SslCertPath.IsNullOrWhiteSpace()))
if (EnableSsl && (GetValue("SslCertHash", string.Empty, false).IsNotNullOrWhiteSpace() || SslCertPath.IsNullOrWhiteSpace()))
{
SetValue("EnableSsl", false);
}
@@ -377,13 +404,21 @@ namespace NzbDrone.Core.Configuration
throw new InvalidConfigFileException($"{_configFile} is corrupt. Please delete the config file and Readarr will recreate it.");
}
return XDocument.Parse(_diskProvider.ReadAllText(_configFile));
var xDoc = XDocument.Parse(_diskProvider.ReadAllText(_configFile));
var config = xDoc.Descendants(CONFIG_ELEMENT_NAME).ToList();
if (config.Count != 1)
{
throw new InvalidConfigFileException($"{_configFile} is invalid. Please delete the config file and Readarr will recreate it.");
}
return xDoc;
}
var xDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
xDoc.Add(new XElement(CONFIG_ELEMENT_NAME));
var newXDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
newXDoc.Add(new XElement(CONFIG_ELEMENT_NAME));
return xDoc;
return newXDoc;
}
}
catch (XmlException ex)

View File

@@ -219,7 +219,7 @@ namespace NzbDrone.Core.Datastore.Migration.Framework
protected virtual IList<TableDefinition> ReadTables()
{
const string sqlCommand = @"SELECT name, sql FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' ORDER BY name;";
const string sqlCommand = @"SELECT name, sql FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' AND name NOT LIKE '_litestream_%' ORDER BY name;";
var dtTable = Read(sqlCommand).Tables[0];
var tableDefinitionList = new List<TableDefinition>();

View File

@@ -122,14 +122,23 @@ namespace NzbDrone.Core.Download.Clients.Deluge
}
var items = new List<DownloadClientItem>();
var ignoredCount = 0;
foreach (var torrent in torrents)
{
if (torrent.Hash == null)
// Silently ignore torrents with no hash
if (torrent.Hash.IsNullOrWhiteSpace())
{
continue;
}
// Ignore torrents without a name, but track to log a single warning for all invalid torrents.
if (torrent.Name.IsNullOrWhiteSpace())
{
ignoredCount++;
continue;
}
var item = new DownloadClientItem();
item.DownloadId = torrent.Hash.ToUpper();
item.Title = torrent.Name;
@@ -187,6 +196,11 @@ namespace NzbDrone.Core.Download.Clients.Deluge
items.Add(item);
}
if (ignoredCount > 0)
{
_logger.Warn("{0} torrent(s) were ignored becuase they did not have a title, check Deluge and remove any invalid torrents");
}
return items;
}

View File

@@ -279,6 +279,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
break;
case "metaDL": // torrent magnet is being downloaded
case "forcedMetaDL": // torrent metadata is being forcibly downloaded
if (config.DhtEnabled)
{
item.Status = DownloadItemStatus.Queued;
@@ -293,7 +294,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
break;
case "forcedDL": // torrent is being downloaded, and was forced started
case "forcedMetaDL": // torrent metadata is being forcibly downloaded
case "moving": // torrent is being moved from a folder
case "downloading": // torrent is being downloaded and data is being transferred
item.Status = DownloadItemStatus.Downloading;
@@ -375,7 +375,15 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
{
if (Proxy.GetLabels(Settings).TryGetValue(Settings.MusicCategory, out var label) && label.SavePath.IsNotNullOrWhiteSpace())
{
var labelDir = new OsPath(label.SavePath);
var savePath = label.SavePath;
if (savePath.StartsWith("//"))
{
_logger.Trace("Replacing double forward slashes in path '{0}'. If this is not meant to be a Windows UNC path fix the 'Save Path' in qBittorrent's {1} category", savePath, Settings.MusicCategory);
savePath = savePath.Replace('/', '\\');
}
var labelDir = new OsPath(savePath);
if (labelDir.IsRooted)
{

View File

@@ -41,12 +41,6 @@ namespace NzbDrone.Core.Download.Clients.Transmission
foreach (var torrent in torrents)
{
// If totalsize == 0 the torrent is a magnet downloading metadata
if (torrent.TotalSize == 0)
{
continue;
}
var outputPath = new OsPath(torrent.DownloadDir);
if (Settings.TvDirectory.IsNotNullOrWhiteSpace())
@@ -97,6 +91,10 @@ namespace NzbDrone.Core.Download.Clients.Transmission
item.Status = DownloadItemStatus.Warning;
item.Message = torrent.ErrorString;
}
else if (torrent.TotalSize == 0)
{
item.Status = DownloadItemStatus.Queued;
}
else if (torrent.LeftUntilDone == 0 && (torrent.Status == TransmissionTorrentStatus.Stopped ||
torrent.Status == TransmissionTorrentStatus.Seeding ||
torrent.Status == TransmissionTorrentStatus.SeedingWait))

View File

@@ -11,8 +11,8 @@ namespace NzbDrone.Core.Download.Clients.Transmission
public bool IsFinished { get; set; }
public long Eta { get; set; }
public TransmissionTorrentStatus Status { get; set; }
public int SecondsDownloading { get; set; }
public int SecondsSeeding { get; set; }
public long SecondsDownloading { get; set; }
public long SecondsSeeding { get; set; }
public string ErrorString { get; set; }
public long DownloadedEver { get; set; }
public long UploadedEver { get; set; }

View File

@@ -39,7 +39,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
var startupFolder = _appFolderInfo.StartUpFolder;
var uiFolder = Path.Combine(startupFolder, "UI");
if ((OsInfo.IsWindows || _configFileProvider.UpdateAutomatically) &&
if (_configFileProvider.UpdateAutomatically &&
_configFileProvider.UpdateMechanism == UpdateMechanism.BuiltIn &&
!_osInfo.IsDocker)
{

View File

@@ -68,16 +68,17 @@ namespace NzbDrone.Core.Indexers.Newznab
protected override bool PostProcess(IndexerResponse indexerResponse, List<XElement> items, List<ReleaseInfo> releases)
{
var enclosureTypes = items.SelectMany(GetEnclosures).Select(v => v.Type).Distinct().ToArray();
if (enclosureTypes.Any() && enclosureTypes.Intersect(PreferredEnclosureMimeTypes).Empty())
{
if (enclosureTypes.Intersect(TorrentEnclosureMimeTypes).Any())
{
_logger.Warn("{0} does not contain {1}, found {2}, did you intend to add a Torznab indexer?", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]);
return false;
}
else
{
_logger.Warn("{1} does not contain {1}, found {2}.", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]);
}
_logger.Warn("{0} does not contain {1}, found {2}.", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]);
}
return true;

View File

@@ -268,26 +268,26 @@ namespace NzbDrone.Core.Indexers
protected virtual RssEnclosure[] GetEnclosures(XElement item)
{
var enclosures = item.Elements("enclosure")
.Select(v =>
{
try
{
return new RssEnclosure
{
Url = v.Attribute("url")?.Value,
Type = v.Attribute("type")?.Value,
Length = v.Attribute("length")?.Value?.ParseInt64() ?? 0
};
}
catch (Exception e)
{
_logger.Warn(e, "Failed to get enclosure for: {0}", item.Title());
}
.Select(v =>
{
try
{
return new RssEnclosure
{
Url = v.Attribute("url")?.Value,
Type = v.Attribute("type")?.Value,
Length = v.Attribute("length")?.Value?.ParseInt64() ?? 0
};
}
catch (Exception ex)
{
_logger.Warn(ex, "Failed to get enclosure for: {0}", item.Title());
}
return null;
})
.Where(v => v != null)
.ToArray();
return null;
})
.Where(v => v != null)
.ToArray();
return enclosures;
}

View File

@@ -48,10 +48,10 @@ namespace NzbDrone.Core.Indexers
public class SeedCriteriaSettings
{
[FieldDefinition(0, Type = FieldType.Textbox, Label = "Seed Ratio", HelpText = "The ratio a torrent should reach before stopping, empty is download client's default. Ratio should be at least 1.0 and follow the indexers rules")]
[FieldDefinition(0, Type = FieldType.Number, Label = "IndexerSettingsSeedRatio", HelpText = "IndexerSettingsSeedRatioHelpText")]
public double? SeedRatio { get; set; }
[FieldDefinition(1, Type = FieldType.Textbox, Label = "Seed Time", Unit = "minutes", HelpText = "The time a torrent should be seeded before stopping, empty is download client's default", Advanced = true)]
[FieldDefinition(1, Type = FieldType.Number, Label = "IndexerSettingsSeedTime", Unit = "minutes", HelpText = "IndexerSettingsSeedTimeHelpText", Advanced = true)]
public int? SeedTime { get; set; }
[FieldDefinition(2, Type = FieldType.Textbox, Label = "Discography Seed Time", Unit = "minutes", HelpText = "The time a torrent should be seeded before stopping, empty is download client's default", Advanced = true)]

View File

@@ -59,16 +59,17 @@ namespace NzbDrone.Core.Indexers.Torznab
protected override bool PostProcess(IndexerResponse indexerResponse, List<XElement> items, List<ReleaseInfo> releases)
{
var enclosureTypes = items.SelectMany(GetEnclosures).Select(v => v.Type).Distinct().ToArray();
if (enclosureTypes.Any() && enclosureTypes.Intersect(PreferredEnclosureMimeTypes).Empty())
{
if (enclosureTypes.Intersect(UsenetEnclosureMimeTypes).Any())
{
_logger.Warn("{0} does not contain {1}, found {2}, did you intend to add a Newznab indexer?", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]);
return false;
}
else
{
_logger.Warn("{1} does not contain {1}, found {2}.", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]);
}
_logger.Warn("{0} does not contain {1}, found {2}.", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]);
}
return true;

View File

@@ -3,8 +3,8 @@
"Year": "عام",
"WeekColumnHeader": "رأس عمود الأسبوع",
"Version": "الإصدار",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "يستخدم الفرع بواسطة آلية التحديث الخارجية",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "فرع لاستخدامه لتحديث Radarr",
"BranchUpdateMechanism": "يستخدم الفرع بواسطة آلية التحديث الخارجية",
"BranchUpdate": "فرع لاستخدامه لتحديث Radarr",
"Username": "اسم المستخدم",
"UsenetDelayHelpText": "تأخر بالدقائق للانتظار قبل الحصول على إصدار من Usenet",
"UsenetDelay": "تأخير يوزنت",
@@ -300,7 +300,7 @@
"ChangeFileDate": "تغيير تاريخ الملف",
"CertificateValidationHelpText": "تغيير مدى صرامة التحقق من صحة شهادة HTTPS",
"CertificateValidation": "التحقق من صحة الشهادة",
"CancelMessageText": "هل أنت متأكد أنك تريد إلغاء هذه المهمة المعلقة؟",
"CancelPendingTask": "هل أنت متأكد أنك تريد إلغاء هذه المهمة المعلقة؟",
"Cancel": "إلغاء",
"CalendarWeekColumnHeaderHelpText": "يظهر فوق كل عمود عندما يكون الأسبوع هو العرض النشط",
"Calendar": "التقويم",
@@ -332,7 +332,6 @@
"AddingTag": "مضيفا العلامة",
"AddListExclusion": "إضافة استبعاد قائمة",
"About": "نبدة عن",
"APIKey": "مفتاح API",
"60MinutesSixty": "60 دقيقة: {0}",
"45MinutesFourtyFive": "90 دقيقة: {0}",
"20MinutesTwenty": "120 دقيقة: {0}",
@@ -430,7 +429,6 @@
"HasPendingChangesNoChanges": "لا تغيرات",
"Group": "مجموعة",
"GrabSelected": "انتزاع المحدد",
"ApiKeyHelpTextWarning": "يتطلب إعادة التشغيل ليصبح ساري المفعول",
"DeleteRootFolderMessageText": "هل أنت متأكد أنك تريد حذف المفهرس \"{0}\"؟",
"LoadingBooksFailed": "فشل تحميل ملفات الفيلم",
"ProxyUsernameHelpText": "ما عليك سوى إدخال اسم مستخدم وكلمة مرور إذا كان أحدهما مطلوبًا. اتركها فارغة وإلا.",
@@ -617,7 +615,7 @@
"NotificationStatusSingleClientHealthCheckMessage": "القوائم غير متاحة بسبب الإخفاقات: {0}",
"SomeResultsAreHiddenByTheAppliedFilter": "بعض النتائج مخفية بواسطة عامل التصفية المطبق",
"ConnectionLost": "انقطع الاتصال",
"ConnectionLostReconnect": "سيحاول Radarr الاتصال تلقائيًا ، أو يمكنك النقر فوق إعادة التحميل أدناه.",
"ConnectionLostReconnect": "سيحاول {appName} الاتصال تلقائيًا ، أو يمكنك النقر فوق إعادة التحميل أدناه.",
"LastDuration": "المدة الماضية",
"Large": "كبير",
"WhatsNew": "ما هو الجديد؟",
@@ -638,5 +636,11 @@
"SelectQuality": "حدد الجودة",
"CustomFilter": "مرشحات مخصصة",
"IndexerFlags": "أعلام المفهرس",
"InteractiveSearchModalHeader": "بحث تفاعلي"
"InteractiveSearchModalHeader": "بحث تفاعلي",
"ApiKey": "مفتاح API",
"AuthBasic": "أساسي (المتصفح المنبثق)",
"AuthForm": "النماذج (صفحة تسجيل الدخول)",
"Enabled": "ممكن",
"FailedLoadingSearchResults": "فشل تحميل نتائج البحث ، يرجى المحاولة مرة أخرى.",
"DisabledForLocalAddresses": "معطل بسبب العناوين المحلية"
}

View File

@@ -1,5 +1,4 @@
{
"ApiKeyHelpTextWarning": "Изисква рестартиране, за да влезе в сила",
"Enable": "Активиране",
"MIA": "МВР",
"Size": " Размер",
@@ -7,7 +6,6 @@
"20MinutesTwenty": "120 минути: {0}",
"45MinutesFourtyFive": "90 минути: {0}",
"60MinutesSixty": "60 минути: {0}",
"APIKey": "API ключ",
"About": "относно",
"AddListExclusion": "Добавяне на изключване от списъка",
"AddingTag": "Добавяне на таг",
@@ -38,7 +36,7 @@
"Calendar": "Календар",
"CalendarWeekColumnHeaderHelpText": "Показва се над всяка колона, когато седмицата е активният изглед",
"Cancel": "Отказ",
"CancelMessageText": "Наистина ли искате да отмените тази чакаща задача?",
"CancelPendingTask": "Наистина ли искате да отмените тази чакаща задача?",
"CertificateValidation": "Валидиране на сертификат",
"CertificateValidationHelpText": "Променете колко строго е валидирането на HTTPS сертифициране",
"ChangeFileDate": "Промяна на датата на файла",
@@ -424,8 +422,8 @@
"UsenetDelay": "Usenet Delay",
"UsenetDelayHelpText": "Забавете за минути, за да изчакате, преди да вземете съобщение от Usenet",
"Username": "Потребителско име",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Клон, който да се използва за актуализиране на Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Клон, използван от външен механизъм за актуализация",
"BranchUpdate": "Клон, който да се използва за актуализиране на Radarr",
"BranchUpdateMechanism": "Клон, използван от външен механизъм за актуализация",
"Version": "Версия",
"WeekColumnHeader": "Заглавка на колоната на седмицата",
"Year": "Година",
@@ -638,5 +636,11 @@
"CustomFilter": "Персонализирани филтри",
"RemoveQueueItemConfirmation": "Наистина ли искате да премахнете {0} елемент {1} от опашката?",
"IndexerFlags": "Индексиращи знамена",
"InteractiveSearchModalHeader": "Интерактивно търсене"
"InteractiveSearchModalHeader": "Интерактивно търсене",
"FailedLoadingSearchResults": "Неуспешно зареждане на резултатите от търсенето, моля, опитайте отново.",
"ApiKey": "API ключ",
"AuthBasic": "Основно (изскачащ прозорец на браузъра)",
"AuthForm": "Формуляри (Страница за вход)",
"DisabledForLocalAddresses": "Забранено за местни адреси",
"Enabled": "Активирано"
}

View File

@@ -432,7 +432,7 @@
"SupportsRssvalueRSSIsNotSupportedWithThisIndexer": "RSS no és compatible amb aquest indexador",
"SupportsSearchvalueWillBeUsedWhenAutomaticSearchesArePerformedViaTheUIOrByReadarr": "S'utilitzarà quan es realitzin cerques automàtiques mitjançant la interfície d'usuari o per Radarr",
"CutoffHelpText": "Un cop s'assoleixi aquesta qualitat, Radarr ja no baixarà pel·lícules",
"ResetAPIKeyMessageText": "Esteu segur que voleu restablir la clau de l'API?",
"ResetAPIKeyMessageText": "Esteu segur que voleu restablir la clau API?",
"PropersAndRepacks": "Propietats i Repacks",
"RemotePathMappingCheckFolderPermissions": "Radarr pot veure però no accedir al directori de descàrregues {0}. Error de permisos probable.",
"RescanAuthorFolderAfterRefresh": "Torna a escanejar la carpeta de pel·lícules després de l'actualització",
@@ -443,9 +443,9 @@
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "La carpeta de pel·lícules '{0}' i tot el seu contingut es suprimiran.",
"UrlBaseHelpTextWarning": "Cal reiniciar perquè tingui efecte",
"ApplicationURL": "URL de l'aplicació",
"ApplicationUrlHelpText": "URL extern d'aquesta aplicació, inclòs http(s)://, port i URL base",
"ApplicationUrlHelpText": "URL extern de l'aplicació, inclòs http(s)://, port i URL base",
"BackupFolderHelpText": "Els camins relatius estaran sota el directori AppData del Radarr",
"CancelMessageText": "Esteu segur que voleu cancel·lar aquesta tasca pendent?",
"CancelPendingTask": "Esteu segur que voleu cancel·lar aquesta tasca pendent?",
"ChownGroupHelpTextWarning": "Això només funciona si l'usuari que executa Radarr és el propietari del fitxer. És millor assegurar-se que el client de descàrrega utilitza el mateix grup que Radarr.",
"ConnectSettingsSummary": "Notificacions, connexions a servidors/reproductors multimèdia i scripts personalitzats",
"DeleteEmptyFoldersHelpText": "Suprimeix les carpetes de pel·lícules buides durant l'exploració del disc i quan s'esborren els fitxers de pel·lícules",
@@ -487,9 +487,9 @@
"SuccessMyWorkIsDoneNoFilesToRetag": "Èxit! La feina està acabada, no hi ha fitxers per canviar el nom.",
"TimeLeft": "Temps restant",
"UnableToLoadImportListExclusions": "No es poden carregar les exclusions de la llista",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Branca que s'utilitza per actualitzar Radarr",
"BranchUpdate": "Branca que s'utilitza per actualitzar Radarr",
"UserAgentProvidedByTheAppThatCalledTheAPI": "Agent d'usuari proporcionat per l'aplicació per fer peticions a l'API",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Branca utilitzada pel mecanisme d'actualització extern",
"BranchUpdateMechanism": "Branca utilitzada pel mecanisme d'actualització extern",
"WriteTagsNo": "Mai",
"RestartReloadNote": "Nota: Radarr es reiniciarà i tornarà a carregar automàticament la interfície d'usuari durant el procés de restauració.",
"Series": "Sèries",
@@ -505,8 +505,6 @@
"GrabReleaseMessageText": "Lidarr no ha pogut determinar per a quina pel·lícula era aquest llançament. És possible que Lidarr no pugui importar automàticament aquesta versió. Voleu capturar \"{0}\"?",
"IsCutoffCutoff": "Requisit",
"MountCheckMessage": "El muntatge que conté una ruta de pel·lícula es munta com a només de lectura: ",
"APIKey": "Clau API",
"ApiKeyHelpTextWarning": "Cal reiniciar perquè tingui efecte",
"RescanAfterRefreshHelpTextWarning": "Radarr no detectarà automàticament els canvis als fitxers quan no estigui configurat com a \"Sempre\"",
"ShowUnknownAuthorItems": "Mostra elements de pel·lícula desconeguda",
"Size": " Mida",
@@ -564,13 +562,13 @@
"SupportsSearchvalueSearchIsNotSupportedWithThisIndexer": "La cerca no és compatible amb aquest indexador",
"UnableToAddANewMetadataProfilePleaseTryAgain": "No es pot afegir un perfil de qualitat nou, torneu-ho a provar.",
"RequiredPlaceHolder": "Afegeix una nova restricció",
"20MinutesTwenty": "60 minuts: {0}",
"20MinutesTwenty": "20 minuts: {0}",
"AlternateTitles": "Títols alternatius",
"AnalyticsEnabledHelpText": "Envieu informació anònima d'ús i errors als servidors de Radarr. Això inclou informació sobre el vostre navegador, quines pàgines Radarr WebUI feu servir, informes d'errors, així com el sistema operatiu i la versió del temps d'execució. Utilitzarem aquesta informació per prioritzar les funcions i les correccions d'errors.",
"AnalyticsEnabledHelpTextWarning": "Cal reiniciar perquè tingui efecte",
"AuthenticationMethodHelpText": "Requereix nom d'usuari i contrasenya per accedir al radar",
"CalendarWeekColumnHeaderHelpText": "Es mostra a sobre de cada columna quan la setmana és la visualització activa",
"45MinutesFourtyFive": "60 minuts: {0}",
"45MinutesFourtyFive": "45 minuts: {0}",
"60MinutesSixty": "60 minuts: {0}",
"BindAddressHelpTextWarning": "Cal reiniciar perquè tingui efecte",
"BookIsDownloading": "La pel·lícula s'està baixant",
@@ -658,11 +656,11 @@
"Activity": "Activitat",
"AddNew": "Afegeix nou",
"ApplyTagsHelpTextReplace": "Substitució: substituïu les etiquetes per les etiquetes introduïdes (no introduïu cap etiqueta per a esborrar totes les etiquetes)",
"ApplyTagsHelpTextRemove": "Eliminar: elimina les etiquetes introduïdes",
"ApplyTagsHelpTextRemove": "Eliminació: elimina les etiquetes introduïdes",
"BlocklistReleases": "Llista de llançaments bloquejats",
"AutoAdd": "Afegeix automàticament",
"Backup": "Còpia de seguretat",
"ApplyTagsHelpTextAdd": "Afegeix: afegeix les etiquetes a la llista d'etiquetes existent",
"ApplyTagsHelpTextAdd": "Afegiment: afegeix les etiquetes a la llista d'etiquetes existent",
"DeleteSelectedIndexersMessageText": "Esteu segur que voleu suprimir {count} indexador(s) seleccionat(s)?",
"DeleteSelectedIndexers": "Suprimeix l'indexador(s)",
"DeleteRemotePathMappingMessageText": "Esteu segur que voleu suprimir aquesta assignació de camins remots?",
@@ -712,5 +710,79 @@
"DownloadClientDelugeSettingsDirectory": "Directori de baixada",
"DownloadClientDelugeSettingsDirectoryCompleted": "Directori al qual es mou quan s'hagi completat",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Ubicació opcional de les baixades completades, deixeu-lo en blanc per utilitzar la ubicació predeterminada de Deluge",
"DownloadClientDelugeSettingsDirectoryHelpText": "Ubicació opcional de les baixades completades, deixeu-lo en blanc per utilitzar la ubicació predeterminada de Deluge"
"DownloadClientDelugeSettingsDirectoryHelpText": "Ubicació opcional de les baixades completades, deixeu-lo en blanc per utilitzar la ubicació predeterminada de Deluge",
"WhatsNew": "Novetats",
"SelectDropdown": "Seleccioneu...",
"NoCutoffUnmetItems": "No hi ha elements de tall no assolits",
"ApplyTagsHelpTextHowToApplyAuthors": "Com aplicar etiquetes a les pel·lícules seleccionades",
"DeleteConditionMessageText": "Esteu segur que voleu suprimir la condició '{name}'?",
"NoChange": "Cap canvi",
"SetTags": "Estableix etiquetes",
"NoResultsFound": "Sense resultats",
"Author": "Autor",
"ResetQualityDefinitions": "Restableix les definicions de qualitat",
"Small": "Petita",
"TotalSpace": "Espai total",
"BlocklistReleaseHelpText": "Impedeix que {appName} torni a capturar aquesta versió automàticament",
"CatalogNumber": "número de catàleg",
"LastWriteTime": "La darrera hora d'escriptura",
"NextExecution": "Propera execució",
"RemoveCompleted": "S'ha eliminat",
"SelectReleaseGroup": "Seleccioneu grup de llançament",
"CountDownloadClientsSelected": "{count} client(s) de baixada seleccionat(s)",
"Authors": "Autor",
"FreeSpace": "Espai lliure",
"ExtraFileExtensionsHelpText": "Llista separada per comes de fitxers addicionals per importar (.nfo s'importarà com a .nfo-orig)",
"BypassIfAboveCustomFormatScore": "Ometre si està per sobre de la puntuació de format personalitzada",
"BypassIfAboveCustomFormatScoreHelpText": "Habiliteu l'omissió quan la versió tingui una puntuació superior a la puntuació mínima per al format personalitzat",
"RedownloadFailed": "Tornar a baixar les baixades fallades",
"ExistingTag": "Etiqueta existent",
"RemoveFailed": "Ha fallat l'eliminació",
"ImportLists": "llista d'importació",
"RemovingTag": "S'està eliminant l'etiqueta",
"ApiKeyValidationHealthCheckMessage": "Actualitzeu la vostra clau de l'API perquè tingui almenys {length} caràcters. Podeu fer-ho mitjançant la configuració o el fitxer de configuració",
"ExtraFileExtensionsHelpTextsExamples": "Exemples: '.sub, .nfo' o 'sub,nfo'",
"SourceTitle": "Títol de la font",
"NoEventsFound": "No s'han trobat esdeveniments",
"InteractiveSearchModalHeader": "Cerca interactiva",
"NotificationStatusSingleClientHealthCheckMessage": "Llistes no disponibles a causa d'errors: {0}",
"Medium": "Suport",
"RecentChanges": "Canvis recents",
"Rejections": "Rebutjats",
"StatusEndedContinuing": "Continua",
"DeleteBookFileMessageText": "Esteu segur que voleu suprimir '{path}'?",
"DownloadClientTagHelpText": "Utilitzeu aquest indexador només per a pel·lícules amb almenys una etiqueta coincident. Deixeu-ho en blanc per utilitzar-ho amb totes les pel·lícules.",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "El client de baixada {downloadClientName} està configurat per eliminar les baixades completades. Això pot provocar que les baixades s'eliminin del vostre client abans que {1} pugui importar-les.",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Cerqueu i intenteu baixar automàticament una versió diferent quan es trobi una versió fallida a la cerca interactiva",
"FailedLoadingSearchResults": "No s'han pogut carregar els resultats de la cerca, torneu-ho a provar.",
"IndexerFlags": "Indicadors de l'indexador",
"Large": "Gran",
"LastDuration": "Darrera durada",
"LastExecution": "Darrere execució",
"Library": "Biblioteca",
"ListsSettingsSummary": "llista d'importació",
"Loading": "Carregant",
"MinimumCustomFormatScoreHelpText": "Puntuació mínima de format personalitzada necessaria per a evitar el retard del protocol preferit",
"ProfilesSettingsSummary": "Perfils de qualitat, idioma, retard i llançament",
"RemoveDownloadsAlert": "La configuració d'eliminació s'ha mogut a la configuració del client de baixada a la taula anterior.",
"RemoveQueueItemConfirmation": "Esteu segur que voleu eliminar '{sourceTitle}' de la cua?",
"RemoveSelectedItem": "Elimina l'element seleccionat",
"RemoveSelectedItems": "Elimina els elements seleccionats",
"RemoveSelectedItemsQueueMessageText": "Esteu segur que voleu eliminar {0} de la cua?",
"SelectQuality": "Seleccioneu Qualitat",
"SomeResultsAreHiddenByTheAppliedFilter": "Alguns resultats estan ocults pel filtre aplicat",
"AuthBasic": "Basic (finestra emergent del navegador)",
"AuthForm": "Formularis (pàgina d'inici de sessió)",
"AuthenticationMethod": "Mètode d'autenticació",
"AuthenticationMethodHelpTextWarning": "Seleccioneu un mètode d'autenticació vàlid",
"AuthenticationRequired": "Autenticació necessària",
"AuthenticationRequiredHelpText": "Canvia per a quines sol·licituds cal autenticar. No canvieu tret que entengueu els riscos.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirmeu la nova contrasenya",
"AuthenticationRequiredPasswordHelpTextWarning": "Introduïu una contrasenya nova",
"AuthenticationRequiredUsernameHelpTextWarning": "Introduïu un nom d'usuari nou",
"AuthenticationRequiredWarning": "Per a evitar l'accés remot sense autenticació, ara {appName} requereix que l'autenticació estigui activada. Opcionalment, podeu desactivar l'autenticació des d'adreces locals.",
"DisabledForLocalAddresses": "Desactivat per a adreces locals",
"Enabled": "Habilitat",
"External": "Extern",
"ApiKey": "Clau API"
}

View File

@@ -1,5 +1,4 @@
{
"ApiKeyHelpTextWarning": "Vyžaduje restart, aby se projevilo",
"AnalyticsEnabledHelpTextWarning": "Vyžaduje restart, aby se projevilo",
"DeleteRootFolderMessageText": "Opravdu chcete odstranit indexer „{0}“?",
"Group": "Skupina",
@@ -12,7 +11,6 @@
"20MinutesTwenty": "120 minut: {0}",
"45MinutesFourtyFive": "90 minut: {0}",
"60MinutesSixty": "60 minut: {0}",
"APIKey": "Klíč API",
"About": "O aplikaci",
"AddListExclusion": "Přidat vyloučení seznamu",
"AddingTag": "Přidání značky",
@@ -43,7 +41,7 @@
"Calendar": "Kalendář",
"CalendarWeekColumnHeaderHelpText": "Zobrazuje se nad každým sloupcem, když je aktivní zobrazení týden",
"Cancel": "Zrušit",
"CancelMessageText": "Opravdu chcete zrušit tento nevyřízený úkol?",
"CancelPendingTask": "Opravdu chcete zrušit tento nevyřízený úkol?",
"CertificateValidation": "Ověření certifikátu",
"CertificateValidationHelpText": "Změňte přísnost ověřování certifikátů HTTPS. Neměňte, pokud nerozumíte rizikům.",
"ChangeFileDate": "Změnit datum souboru",
@@ -68,7 +66,7 @@
"CreateEmptyAuthorFoldersHelpText": "Během skenování disku vytvářejte chybějící složky filmů",
"CreateGroup": "Vytvořit skupinu",
"CutoffHelpText": "Jakmile je této kvality dosaženo, Radarr již nebude stahovat filmy",
"CutoffUnmet": "Vynechat nevyhovující",
"CutoffUnmet": "Mezní hodnota nesplněna",
"DatabaseMigration": "Migrace databáze",
"Dates": "Termíny",
"DelayProfile": "Profil zpoždění",
@@ -431,8 +429,8 @@
"UsenetDelay": "Usenet Zpoždění",
"UsenetDelayHelpText": "Zpoždění v minutách čekání před uvolněním z Usenetu",
"Username": "Uživatelské jméno",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Pobočka, která se má použít k aktualizaci Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Pobočka používaná mechanismem externí aktualizace",
"BranchUpdate": "Pobočka, která se má použít k aktualizaci Radarr",
"BranchUpdateMechanism": "Pobočka používaná mechanismem externí aktualizace",
"Version": "Verze",
"WeekColumnHeader": "Záhlaví sloupce týdne",
"Year": "Rok",
@@ -693,5 +691,27 @@
"CustomFilter": "Vlastní filtry",
"SelectQuality": "Vyberte kvalitu",
"IndexerFlags": "Příznaky indexeru",
"InteractiveSearchModalHeader": "Interaktivní vyhledávání"
"InteractiveSearchModalHeader": "Interaktivní vyhledávání",
"FailedLoadingSearchResults": "Výsledky vyhledávání se nepodařilo načíst, zkuste to prosím znovu.",
"CustomFormatsSpecificationFlag": "Vlajka",
"CustomFormatsSpecificationRegularExpressionHelpText": "Vlastní formát RegEx nerozlišuje velká a malá písmena",
"BlocklistAndSearch": "Seznam blokovaných a vyhledávání",
"ChangeCategory": "Změnit kategorii",
"BlocklistMultipleOnlyHint": "Blokovat a nehledat náhradu",
"CustomFormatsSettingsTriggerInfo": "Vlastní formát se použije na vydání nebo soubor, pokud odpovídá alespoň jednomu z různých typů zvolených podmínek.",
"ConnectionSettingsUrlBaseHelpText": "Přidá předponu do {connectionName} url, jako např. {url}",
"AuthBasic": "Základní (vyskakovací okno prohlížeče)",
"AuthenticationMethod": "Metoda ověřování",
"AuthenticationMethodHelpTextWarning": "Prosím vyberte platnou metodu ověřování",
"AuthenticationRequired": "Vyžadované ověření",
"AuthenticationRequiredHelpText": "Změnit, pro které požadavky je vyžadováno ověření. Pokud nerozumíte rizikům, neměňte je.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Potvrďte nové heslo",
"AuthenticationRequiredPasswordHelpTextWarning": "Vložte nové heslo",
"AuthenticationRequiredUsernameHelpTextWarning": "Vložte nové uživatelské jméno",
"AuthenticationRequiredWarning": "Aby se zabránilo vzdálenému přístupu bez ověření, vyžaduje nyní {appName} povolení ověření. Ověřování z místních adres můžete volitelně zakázat.",
"BlocklistOnlyHint": "Blokovat a nehledat náhradu",
"Enabled": "Povoleno",
"ApiKey": "Klíč API",
"AuthForm": "Formuláře (přihlašovací stránka)",
"DisabledForLocalAddresses": "Zakázáno pro místní adresy"
}

View File

@@ -2,7 +2,6 @@
"20MinutesTwenty": "20 minutter: {0}",
"45MinutesFourtyFive": "45 minutter: {0}",
"60MinutesSixty": "60 minutter: {0}",
"APIKey": "API-nøgle",
"About": "Om",
"AddListExclusion": "Tilføj ekskludering af liste",
"AddingTag": "Tilføjer tag",
@@ -39,7 +38,7 @@
"Calendar": "Kalender",
"CalendarWeekColumnHeaderHelpText": "Vist over hver kolonne, når ugen er den aktive visning",
"Cancel": "Afbryd",
"CancelMessageText": "Er du sikker på, at du vil annullere denne afventende opgave?",
"CancelPendingTask": "Er du sikker på, at du vil annullere denne afventende opgave?",
"CertificateValidation": "Validering af certifikat",
"CertificateValidationHelpText": "Skift, hvor streng HTTPS-certificering er",
"ChangeFileDate": "Skift fildato",
@@ -425,13 +424,12 @@
"UsenetDelay": "Usenet-forsinkelse",
"UsenetDelayHelpText": "Forsink i minutter, før du tager fat i en frigivelse fra Usenet",
"Username": "Brugernavn",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Filial, der skal bruges til at opdatere Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Gren brugt af ekstern opdateringsmekanisme",
"BranchUpdate": "Filial, der skal bruges til at opdatere Radarr",
"BranchUpdateMechanism": "Gren brugt af ekstern opdateringsmekanisme",
"Version": "Version",
"WeekColumnHeader": "Ugens kolonneoverskrift",
"Year": "År",
"YesCancel": "Ja, Annuller",
"ApiKeyHelpTextWarning": "Kræver genstart for at træde i kraft",
"DeleteRootFolderMessageText": "Er du sikker på, at du vil slette indeksøren '{0}'?",
"LoadingBooksFailed": "Indlæsning af filmfiler mislykkedes",
"ProxyPasswordHelpText": "Du skal kun indtaste et brugernavn og en adgangskode, hvis der kræves et. Lad dem være tomme ellers.",
@@ -650,5 +648,11 @@
"InteractiveSearchModalHeader": "Interaktiv søgning",
"Theme": "Tema",
"Publisher": "Udgiver",
"CatalogNumber": "katalognummer"
"CatalogNumber": "katalognummer",
"FailedLoadingSearchResults": "Kunne ikke indlæse søgeresultater. Prøv igen.",
"AuthBasic": "Grundlæggende (pop op-browser)",
"AuthForm": "Formularer (login-side)",
"DisabledForLocalAddresses": "Deaktiveret for lokale adresser",
"Enabled": "Aktiveret",
"ApiKey": "API-nøgle"
}

View File

@@ -5,11 +5,10 @@
"20MinutesTwenty": "20 Minuten: {0}",
"45MinutesFourtyFive": "45 Minuten: {0}",
"60MinutesSixty": "60 Minuten: {0}",
"APIKey": "API-Schlüssel",
"About": "Über",
"AddListExclusion": "Listenausschluss hinzufügen",
"AddingTag": "Tag hinzufügen",
"AgeWhenGrabbed": "Alter (zum Zeitpunkt der Entführung)",
"AgeWhenGrabbed": "Alter (bei Erfassung)",
"AlreadyInYourLibrary": "Bereits in Ihrer Bibliothek",
"AlternateTitles": "Alternative Titel",
"Analytics": "Analysen",
@@ -36,7 +35,7 @@
"Calendar": "Kalender",
"CalendarWeekColumnHeaderHelpText": "Wird in der Wochenansicht über jeder Spalte angezeigt",
"Cancel": "Abbrechen",
"CancelMessageText": "Diese laufende Aufgabe wirklich abbrechen?",
"CancelPendingTask": "Diese laufende Aufgabe wirklich abbrechen?",
"CertificateValidation": "Zertifikatsvalidierung",
"CertificateValidationHelpText": "Ändern Sie, wie streng die Validierung der HTTPS-Zertifizierung ist. Ändern Sie nichts, es sei denn, Sie verstehen die Risiken.",
"ChangeFileDate": "Ändern Sie das Dateidatum",
@@ -61,7 +60,7 @@
"CreateEmptyAuthorFoldersHelpText": "Leere Filmordner für fehlende Filme beim Scan erstellen",
"CreateGroup": "Gruppe erstellen",
"CutoffHelpText": "Sobald diese Qualität erreicht wird, werden keine neuen Releases erfasst",
"CutoffUnmet": " Schwelle nicht erreicht",
"CutoffUnmet": "Schwelle nicht erreicht",
"DatabaseMigration": "DB Migration",
"Dates": "Termine",
"DelayProfile": "Verzögerungsprofil",
@@ -416,8 +415,8 @@
"UsenetDelay": "Usenet-Verzögerung",
"UsenetDelayHelpText": "Verzögerung in Minuten, bevor Sie eine Veröffentlichung aus dem Usenet erhalten",
"Username": "Nutzername",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Branch zum updaten von Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Branch für den externen Updateablauf",
"BranchUpdate": "Branch zum updaten von Radarr",
"BranchUpdateMechanism": "Branch für den externen Updateablauf",
"Version": "Version",
"WeekColumnHeader": "Spaltenüberschrift „Woche“.",
"Year": "Jahr",
@@ -427,7 +426,6 @@
"ProxyUsernameHelpText": "Sie müssen nur einen Benutzernamen und ein Passwort eingeben, wenn dies erforderlich ist. Andernfalls lassen Sie sie leer.",
"SslPortHelpTextWarning": "Erfordert einen Neustart",
"UnableToLoadMetadataProfiles": "Verzögerungsprofile konnten nicht geladen werden",
"ApiKeyHelpTextWarning": "Erfordert einen Neustart",
"Book": "Buch",
"Authors": "Autoren",
"AuthorFolderFormat": "Autor Orderformat",
@@ -982,7 +980,7 @@
"Activity": "Aktivität",
"AddNew": "Neue hinzufügen",
"Backup": "Sicherung",
"AllResultsAreHiddenByTheAppliedFilter": "Alle Resultate werden wegen des angewandten Filters nicht angezeigt",
"AllResultsAreHiddenByTheAppliedFilter": "Alle Ergebnisse werden durch den angewendeten Filter ausgeblendet",
"AppUpdated": "{appName} aktualisiert",
"AppUpdatedVersion": "{appName} wurde auf die Version `{version}` aktualisiert. Um die neusten Funktionen zu bekommen lade {appName} neu",
"Clone": "Klonen",
@@ -998,5 +996,72 @@
"BlocklistMultipleOnlyHint": "Der Sperrliste hinzufügen, ohne nach Alternativen zu suchen",
"BlocklistOnly": "Nur der Sperrliste hinzufügen",
"BlocklistOnlyHint": "Der Sperrliste hinzufügen, ohne nach Alternative zu suchen",
"ChangeCategory": "Kategorie wechseln"
"ChangeCategory": "Kategorie wechseln",
"TagIsNotUsedAndCanBeDeleted": "Tag wird nicht benutzt und kann gelöscht werden",
"ExtraFileExtensionsHelpText": "Kommaseparierte Liste von Dateiendungen die als Extra Dateien importiert werden sollen ( .nfo wird in .nfo-orig umbenannt )",
"DeleteImportListExclusion": "Importlisten Ausschluss löschen",
"IndexerFlags": "Indexer-Flags",
"CountAuthorsSelected": "{selectedCount} Künstler ausgewählt",
"ExtraFileExtensionsHelpTextsExamples": "Vorschläge: sub, nfo, srt, jpg",
"DownloadClient": "Downloader",
"ShowMonitoredHelpText": "Beobachtungsstatus unter dem Plakat anzeigen",
"CountDownloadClientsSelected": "{count} Download-Client(s) ausgewählt",
"CountImportListsSelected": "{selectedCount} Künstler ausgewählt",
"CustomFormatsSpecificationRegularExpression": "Regulären Ausdruck",
"DeleteImportListExclusionMessageText": "Bist du sicher, dass du diesen Importlisten Ausschluss löschen willst?",
"CustomFilter": "Benutzerdefinierter Filter",
"AutoRedownloadFailed": "Erneuter Download fehlgeschlagen",
"SourceTitle": "Quellentitel",
"Tags": "Tags",
"DownloadClientDelugeSettingsDirectoryHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden",
"ErrorLoadingContent": "Beim Laden des Eintrags ist ein Fehler aufgetreten",
"BypassIfAboveCustomFormatScore": "Umgehen, wenn über dem Wert des benutzerdefinierten Formats liegt",
"BypassIfAboveCustomFormatScoreHelpText": "Aktivieren Sie die Umgehung, wenn die Veröffentlichung einen Wert hat, der höher ist als der konfigurierte Mindestwert für das benutzerdefinierte Format",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "Der Download-Client {downloadClientName} ist so eingestellt, dass abgeschlossene Downloads entfernt werden. Dies kann dazu führen, dass Downloads von Ihrem Client entfernt werden, bevor {appName} sie importieren kann.",
"AutoRedownloadFailedFromInteractiveSearch": "Erneuter Download aus Interaktiver Suche fehlgeschlagen",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Suchen Sie automatisch nach einer anderen Version und versuchen Sie, sie herunterzuladen, wenn eine fehlerhafte Version aus der interaktiven Suche ausgewählt wurde",
"FailedLoadingSearchResults": "Die Suchergebnisse konnten nicht geladen werden. Bitte versuchen Sie es erneut.",
"InteractiveSearchModalHeader": "Interaktive Suche",
"MinimumCustomFormatScoreHelpText": "Mindestwert für benutzerdefiniertes Format, der erforderlich ist, um Verzögerungen für das bevorzugte Protokoll zu umgehen",
"Rejections": "Ablehnungen",
"RemoveQueueItemConfirmation": "Bist du sicher, dass du {0} Einträge aus der Warteschlange entfernen willst?",
"SelectDropdown": "Auswählen...",
"SelectQuality": "Qualität auswählen",
"SelectReleaseGroup": "Wähle Release-Gruppe",
"ShowMonitored": "Beobachtete anzeigen",
"DeleteSelected": "Markierte löschen",
"Bookshelf": "Bücherregal",
"BypassIfHighestQualityHelpText": "Umgehen der Verzögerung, wenn die Freigabe die höchste aktivierte Qualität im Qualitätsprofil hat",
"CustomFormatsSpecificationFlag": "Markierung",
"DeleteFormat": "Formatierung löschen",
"CustomFormatsSpecificationRegularExpressionHelpText": "Benutzerdefiniertes Format RegEx ist nicht groß-/kleinschreibungssensitiv",
"IndexerDownloadClientHealthCheckMessage": "Indexer mit ungültigen Downloader: {0}.",
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Gesamt: {totalBookCount}, Dateien: {bookFileCount})",
"BookProgressBarText": "{bookCount} / {totalBookCount} (Dateien: {bookFileCount})",
"ChangeCategoryHint": "Änderung des Downloads in die 'Post-Import-Kategorie' vom Download-Client",
"ChangeCategoryMultipleHint": "Änderung der Downloads in die 'Post-Import-Kategorie' vom Download-Client",
"DoNotBlocklist": "Nicht Sperren",
"DoNotBlocklistHint": "Entfernen ohne Sperren",
"CustomFormatsSettingsTriggerInfo": "Ein Eigenes Format wird auf eine Veröffentlichung oder Datei angewandt, wenn sie mindestens einer der verschiedenen ausgewählten Bedingungen entspricht.",
"ConnectionSettingsUrlBaseHelpText": "Fügt ein Präfix zur {connectionName} URL hinzu, z. B. {url}",
"DownloadClientDelugeSettingsDirectory": "Download Verzeichnis",
"DownloadClientDelugeSettingsDirectoryCompleted": "Verschieben, wenn Verzeichnis abgeschlossen",
"IgnoreDownloadHint": "Hält {appName} von der weiteren Verarbeitung dieses Downloads ab",
"IgnoreDownloads": "Downloads ignorieren",
"IgnoreDownload": "Download ignorieren",
"IgnoreDownloadsHint": "Hindert {appName}, diese Downloads weiter zu verarbeiten",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden",
"ApiKey": "API-Schlüssel",
"AuthBasic": "Basis (Browser-Popup)",
"AuthForm": "Formulare (Anmeldeseite)",
"AuthenticationMethod": "Authentifizierungsmethode",
"AuthenticationMethodHelpTextWarning": "Bitte wähle eine gültige Authentifizierungsmethode aus",
"AuthenticationRequired": "Authentifizierung benötigt",
"AuthenticationRequiredHelpText": "Ändern, welche anfragen Authentifizierung benötigen. Ändere nichts wenn du dir nicht des Risikos bewusst bist.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Neues Passwort bestätigen",
"AuthenticationRequiredPasswordHelpTextWarning": "Gib ein neues Passwort ein",
"AuthenticationRequiredUsernameHelpTextWarning": "Gib einen neuen Benutzernamen ein",
"AuthenticationRequiredWarning": "Um unberechtigte Fernzugriffe zu vermeiden benötigt {appName} jetzt , dass Authentifizierung eingeschaltet ist. Du kannst Authentifizierung optional für lokale Adressen ausschalten.",
"DisabledForLocalAddresses": "Für lokale Adressen deaktiviert",
"Enabled": "Aktiviert"
}

View File

@@ -9,7 +9,6 @@
"20MinutesTwenty": "20 λεπτά: {0}",
"45MinutesFourtyFive": "45 λεπτά: {0}",
"60MinutesSixty": "60 λεπτά: {0}",
"APIKey": "Κλειδί API",
"About": "Σχετικά",
"AddListExclusion": "Προσθήκη εξαίρεσης λίστας",
"AddingTag": "Προσθήκη ετικέτας",
@@ -41,7 +40,7 @@
"Calendar": "Ημερολόγιο",
"CalendarWeekColumnHeaderHelpText": "Εμφανίζεται πάνω από κάθε στήλη όταν η εβδομάδα είναι η ενεργή προβολή",
"Cancel": "Ακύρωση",
"CancelMessageText": "Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την εργασία σε εκκρεμότητα;",
"CancelPendingTask": "Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την εργασία σε εκκρεμότητα;",
"CertificateValidation": "Επικύρωση πιστοποιητικού",
"CertificateValidationHelpText": "Αλλάξτε πόσο αυστηρή είναι η επικύρωση πιστοποίησης HTTPS.",
"ChangeFileDate": "Αλλαγή ημερομηνίας αρχείου",
@@ -425,13 +424,12 @@
"UsenetDelay": "Καθυστέρηση Usenet",
"UsenetDelayHelpText": "Καθυστέρηση σε λίγα λεπτά για να περιμένετε πριν πάρετε μια κυκλοφορία από το Usenet",
"Username": "Όνομα χρήστη",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Υποκατάστημα για χρήση για την ενημέρωση του Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Υποκατάστημα που χρησιμοποιείται από εξωτερικό μηχανισμό ενημέρωσης",
"BranchUpdate": "Υποκατάστημα για χρήση για την ενημέρωση του Radarr",
"BranchUpdateMechanism": "Υποκατάστημα που χρησιμοποιείται από εξωτερικό μηχανισμό ενημέρωσης",
"Version": "Εκδοχή",
"WeekColumnHeader": "Κεφαλίδα στήλης εβδομάδας",
"Year": "Ετος",
"YesCancel": "Ναι, Ακύρωση",
"ApiKeyHelpTextWarning": "Απαιτείται επανεκκίνηση για να τεθεί σε ισχύ",
"LoadingBooksFailed": "Η φόρτωση αρχείων ταινίας απέτυχε",
"ProxyUsernameHelpText": "Πρέπει να εισαγάγετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης μόνο εάν απαιτείται. Αφήστε τα κενά διαφορετικά.",
"SslCertPathHelpTextWarning": "Απαιτείται επανεκκίνηση για να τεθεί σε ισχύ",
@@ -993,5 +991,26 @@
"AppUpdated": "{appName} Ενημερώθηκε",
"AppUpdatedVersion": "ξαναφορτωθεί",
"AutoAdd": "Προσθήκη",
"ErrorLoadingContent": "Υπήρξε ένα σφάλμα κατά τη φόρτωση του αρχείου"
"ErrorLoadingContent": "Υπήρξε ένα σφάλμα κατά τη φόρτωση του αρχείου",
"ExtraFileExtensionsHelpTextsExamples": "Παραδείγματα: «.sub, .nfo» ή «sub, nfo»",
"IndexerFlags": "Σημαίες ευρετηρίου",
"InteractiveSearchModalHeader": "Διαδραστική αναζήτηση",
"ExtraFileExtensionsHelpText": "Λίστα πρόσθετων αρχείων που διαχωρίζονται με κόμμα για εισαγωγή (το .nfo θα εισαχθεί ως .nfo-orig)",
"CustomFilter": "Custom Φιλτρα",
"DeleteSelected": "Διαγραφή επιλεγμένων",
"SourceTitle": "Τίτλος πηγής",
"AutoRedownloadFailed": "Η λήψη απέτυχε",
"FailedLoadingSearchResults": "Αποτυχία φόρτωσης αποτελεσμάτων αναζήτησης, δοκιμάστε ξανά.",
"RemoveQueueItemConfirmation": "Είστε σίγουροι πως θέλετε να διαγράψετε {0} αντικείμενα από την ουρά;",
"SelectDropdown": "'Επιλέγω...",
"SelectQuality": "Επιλέξτε Ποιότητα",
"SelectReleaseGroup": "Επιλέξτε Ομάδα έκδοσης",
"AuthBasic": "Βασικό (Αναδυόμενο παράθυρο προγράμματος περιήγησης)",
"AuthForm": "Φόρμες (σελίδα σύνδεσης)",
"AuthenticationRequired": "Απαιτείται πιστοποίηση",
"AuthenticationRequiredHelpText": "Αλλαγή για τα οποία απαιτείται έλεγχος ταυτότητας. Μην αλλάζετε αν δεν κατανοήσετε τους κινδύνους.",
"AuthenticationRequiredWarning": "Για να αποτρέψει την απομακρυσμένη πρόσβαση χωρίς έλεγχο ταυτότητας, το {appName} απαιτεί τώρα να ενεργοποιηθεί ο έλεγχος ταυτότητας. Διαμορφώστε τη μέθοδο ελέγχου ταυτότητας και τα διαπιστευτήριά σας. Μπορείτε προαιρετικά να απενεργοποιήσετε τον έλεγχο ταυτότητας από τοπικές διευθύνσεις. Ανατρέξτε στις Συχνές Ερωτήσεις για πρόσθετες πληροφορίες.",
"Enabled": "Ενεργοποιήθηκε",
"ApiKey": "Κλειδί API",
"DisabledForLocalAddresses": "Απενεργοποιήθηκε για τοπικές διευθύνσεις"
}

View File

@@ -2,7 +2,6 @@
"20MinutesTwenty": "20 Minutes: {0}",
"45MinutesFourtyFive": "45 Minutes: {0}",
"60MinutesSixty": "60 Minutes: {0}",
"APIKey": "API Key",
"ASIN": "ASIN",
"About": "About",
"Actions": "Actions",
@@ -33,7 +32,7 @@
"AnalyticsEnabledHelpText": "Send anonymous usage and error information to Readarr's servers. This includes information on your browser, which Readarr WebUI pages you use, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes.",
"AnalyticsEnabledHelpTextWarning": "Requires restart to take effect",
"AnyEditionOkHelpText": "Readarr will automatically switch to the edition best matching downloaded files",
"ApiKeyHelpTextWarning": "Requires restart to take effect",
"ApiKey": "API Key",
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
"AppDataDirectory": "AppData Directory",
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
@@ -50,9 +49,20 @@
"ApplyTagsHelpTextHowToApplyIndexers": "How to apply tags to the selected indexers",
"ApplyTagsHelpTextRemove": "Remove: Remove the entered tags",
"ApplyTagsHelpTextReplace": "Replace: Replace the tags with the entered tags (enter no tags to clear all tags)",
"AptUpdater": "Use apt to install the update",
"AudioFileMetadata": "Write Metadata to Audio Files",
"AuthBasic": "Basic (Browser Popup)",
"AuthForm": "Forms (Login Page)",
"Authentication": "Authentication",
"AuthenticationMethodHelpText": "Require Username and Password to access Readarr",
"AuthenticationMethod": "Authentication Method",
"AuthenticationMethodHelpText": "Require Username and Password to access {appName}",
"AuthenticationMethodHelpTextWarning": "Please select a valid authentication method",
"AuthenticationRequired": "Authentication Required",
"AuthenticationRequiredHelpText": "Change which requests authentication is required for. Do not change unless you understand the risks.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirm new password",
"AuthenticationRequiredPasswordHelpTextWarning": "Enter a new password",
"AuthenticationRequiredUsernameHelpTextWarning": "Enter a new username",
"AuthenticationRequiredWarning": "To prevent remote access without authentication, {appName} now requires authentication to be enabled. You can optionally disable authentication from local addresses.",
"Author": "Author",
"AuthorClickToChangeBook": "Click to change book",
"AuthorEditor": "Author Editor",
@@ -107,6 +117,9 @@
"BooksTotal": "Books ({0})",
"Bookshelf": "Bookshelf",
"Branch": "Branch",
"BranchUpdate": "Branch to use to update {appName}",
"BranchUpdateMechanism": "Branch used by external update mechanism",
"BuiltIn": "Built-In",
"BypassIfAboveCustomFormatScore": "Bypass if Above Custom Format Score",
"BypassIfAboveCustomFormatScoreHelpText": "Enable bypass when release has a score higher than the configured minimum custom format score",
"BypassIfHighestQuality": "Bypass if Highest Quality",
@@ -128,7 +141,7 @@
"CalibreUrlBase": "Calibre Url Base",
"CalibreUsername": "Calibre Username",
"Cancel": "Cancel",
"CancelMessageText": "Are you sure you want to cancel this pending task?",
"CancelPendingTask": "Are you sure you want to cancel this pending task?",
"CatalogNumber": "Catalog Number",
"CertificateValidation": "Certificate Validation",
"CertificateValidationHelpText": "Change how strict HTTPS certification validation is. Do not change unless you understand the risks.",
@@ -188,6 +201,7 @@
"CreateEmptyAuthorFolders": "Create empty author folders",
"CreateEmptyAuthorFoldersHelpText": "Create missing author folders during disk scan",
"CreateGroup": "Create group",
"CurrentlyInstalled": "Currently Installed",
"CustomFilter": "Custom Filter",
"CustomFormat": "Custom Format",
"CustomFormatScore": "Custom Format Score",
@@ -277,12 +291,14 @@
"DetailedProgressBarHelpText": "Show text on progress bar",
"Development": "Development",
"Disabled": "Disabled",
"DisabledForLocalAddresses": "Disabled for Local Addresses",
"DiscCount": "Disc Count",
"DiscNumber": "Disc Number",
"DiskSpace": "Disk Space",
"DoNotBlocklist": "Do not Blocklist",
"DoNotBlocklistHint": "Remove without blocklisting",
"Docker": "Docker",
"DockerUpdater": "Update the docker container to receive the update",
"DownloadClient": "Download Client",
"DownloadClientCheckDownloadingToRoot": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.",
"DownloadClientCheckNoneAvailableMessage": "No download client is available",
@@ -331,6 +347,7 @@
"EnableRssHelpText": "Will be used when Readarr periodically looks for releases via RSS Sync",
"EnableSSL": "Enable SSL",
"EnableSslHelpText": " Requires restart running as administrator to take effect",
"Enabled": "Enabled",
"EnabledHelpText": "Check to enable release profile",
"Ended": "Ended",
"EndedAllBooksDownloaded": "Ended (All books downloaded)",
@@ -345,9 +362,14 @@
"ExistingTag": "Existing tag",
"ExistingTagsScrubbed": "Existing tags scrubbed",
"ExportCustomFormat": "Export Custom Format",
"External": "External",
"ExternalUpdater": "{appName} is configured to use an external update mechanism",
"ExtraFileExtensionsHelpText": "Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Examples: '.sub, .nfo' or 'sub,nfo'",
"FailedDownloadHandling": "Failed Download Handling",
"FailedLoadingSearchResults": "Failed to load search results, please try again.",
"FailedToFetchSettings": "Failed to fetch settings",
"FailedToFetchUpdates": "Failed to fetch updates",
"FailedToLoadQueue": "Failed to load Queue",
"FileDateHelpText": "Change file date on import/rescan",
"FileDetails": "File Details",
@@ -456,11 +478,20 @@
"IndexerSearchCheckNoAvailableIndexersMessage": "All search-capable indexers are temporarily unavailable due to recent indexer errors",
"IndexerSearchCheckNoInteractiveMessage": "No indexers available with Interactive Search enabled, Readarr will not provide any interactive search results",
"IndexerSettings": "Indexer Settings",
"IndexerSettingsSeedRatio": "Seed Ratio",
"IndexerSettingsSeedRatioHelpText": "The ratio a torrent should reach before stopping, empty uses the download client's default. Ratio should be at least 1.0 and follow the indexers rules",
"IndexerSettingsSeedTime": "Seed Time",
"IndexerSettingsSeedTimeHelpText": "The time a torrent should be seeded before stopping, empty uses the download client's default",
"IndexerStatusCheckAllClientMessage": "All indexers are unavailable due to failures",
"IndexerStatusCheckSingleClientMessage": "Indexers unavailable due to failures: {0}",
"IndexerTagsHelpText": "Only use this indexer for authors with at least one matching tag. Leave blank to use with all authors.",
"Indexers": "Indexers",
"IndexersSettingsSummary": "Indexers and release restrictions",
"Install": "Install",
"InstallLatest": "Install Latest",
"InstallMajorVersionUpdate": "Install Update",
"InstallMajorVersionUpdateMessage": "This update will install a new major version and may not be compatible with your system. Are you sure you want to install this update?",
"InstallMajorVersionUpdateMessageLink": "Please check [{domain}]({url}) for more information.",
"InstanceName": "Instance Name",
"InstanceNameHelpText": "Instance name in tab and for Syslog app name",
"InteractiveSearchModalHeader": "Interactive Search",
@@ -657,6 +688,7 @@
"OnHealthIssueHelpText": "On Health Issue",
"OnImportFailure": "On Import Failure",
"OnImportFailureHelpText": "On Import Failure",
"OnLatestVersion": "The latest version of {appName} is already installed",
"OnReleaseImport": "On Release Import",
"OnReleaseImportHelpText": "On Release Import",
"OnRename": "On Rename",
@@ -674,6 +706,7 @@
"PageSize": "Page Size",
"PageSizeHelpText": "Number of items to show on each page",
"Password": "Password",
"PasswordConfirmation": "Password Confirmation",
"PasswordHelpText": "Calibre content server password",
"PastDays": "Past Days",
"PastDaysHelpText": "Days for iCal feed to look into the past",
@@ -688,6 +721,7 @@
"PosterSize": "Poster Size",
"PreviewRename": "Preview Rename",
"PreviewRetag": "Preview Retag",
"PreviouslyInstalled": "Previously Installed",
"Profiles": "Profiles",
"ProfilesSettingsSummary": "Quality, Metadata, Delay, and Release profiles",
"Progress": "Progress",
@@ -840,6 +874,7 @@
"SSLPort": "SSL Port",
"Save": "Save",
"Scheduled": "Scheduled",
"Script": "Script",
"ScriptPath": "Script Path",
"Search": "Search",
"SearchAll": "Search All",
@@ -1033,6 +1068,7 @@
"UnmonitoredHelpText": "Include unmonitored books in the iCal feed",
"UnselectAll": "Unselect All",
"UpdateAll": "Update all",
"UpdateAppDirectlyLoadError": "Unable to update {appName} directly,",
"UpdateAutomaticallyHelpText": "Automatically download and install updates. You will still be able to install from System: Updates",
"UpdateAvailable": "New update is available",
"UpdateCheckStartupNotWritableMessage": "Cannot install update because startup folder '{0}' is not writable by the user '{1}'.",
@@ -1061,14 +1097,13 @@
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent provided by the app that called the API",
"Username": "Username",
"UsernameHelpText": "Calibre content server username",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Branch to use to update Readarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Branch used by external update mechanism",
"Version": "Version",
"Wanted": "Wanted",
"WatchLibraryForChangesHelpText": "Rescan automatically when files change in a root folder",
"WatchRootFoldersForFileChanges": "Watch Root Folders for file changes",
"WeekColumnHeader": "Week Column Header",
"WhatsNew": "What's New?",
"WhySearchesCouldBeFailing": "Click here to find out why searches could be failing",
"WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?",
"WriteAudioTags": "Tag Audio Files with Metadata",
"WriteAudioTagsScrub": "Scrub Existing Tags",

View File

@@ -1,5 +1,4 @@
{
"ApiKeyHelpTextWarning": "Requiere reiniciar para que surta efecto",
"DeleteRootFolderMessageText": "¿Estás seguro que quieres eliminar la carpeta raíz '{name}'?",
"LoadingBooksFailed": "La carga de los archivos ha fallado",
"ProxyUsernameHelpText": "Solo necesitas introducir un usuario y contraseña si se requiere alguno. De otra forma déjalos en blanco.",
@@ -12,7 +11,6 @@
"ShowDateAdded": "Mostrar fecha de adición",
"Tags": "Etiquetas",
"60MinutesSixty": "60 Minutos: {0}",
"APIKey": "Clave API",
"About": "Acerca de",
"AddListExclusion": "Añadir lista de exclusión",
"AddingTag": "Añadir etiqueta",
@@ -26,16 +24,16 @@
"ApplyTags": "Aplicar Etiquetas",
"45MinutesFourtyFive": "45 Minutos: {0}",
"Authentication": "Autenticación",
"AuthenticationMethodHelpText": "Requiere usuario y contraseña para acceder a Readarr",
"AuthenticationMethodHelpText": "Requiere usuario y contraseña para acceder a {appName}",
"AuthorClickToChangeBook": "Clic para cambiar la película",
"AutoRedownloadFailedHelpText": "Buscar e intentar descargar automáticamente una versión diferente",
"AutoRedownloadFailedHelpText": "Busca e intenta descargar automáticamente una versión diferente",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Los libros eliminados del disco se dejan de monitorizar automáticamente en Readarr",
"Automatic": "Automático",
"BackupFolderHelpText": "Las rutas relativas estarán bajo el directorio AppData de Readarr",
"BackupNow": "Hacer copia de seguridad ahora",
"BackupRetentionHelpText": "Las copias de seguridad automáticas anteriores al período de retención serán borradas automáticamente",
"Backups": "Copias de seguridad",
"BindAddress": "Dirección de Ligado",
"BindAddress": "Dirección de enlace",
"BindAddressHelpText": "Dirección IP4 válida, localhost o '*' para todas las interfaces",
"BindAddressHelpTextWarning": "Requiere reiniciar para que surta efecto",
"BookIsDownloadingInterp": "La película está descargando - {0}% {1}",
@@ -44,12 +42,12 @@
"Calendar": "Calendario",
"CalendarWeekColumnHeaderHelpText": "Mostrado sobre cada columna cuando la vista activa es semana",
"Cancel": "Cancelar",
"CancelMessageText": "Seguro que quieres cancelar esta tarea pendiente?",
"CancelPendingTask": "Seguro que quieres cancelar esta tarea pendiente?",
"CertificateValidation": "Validacion de certificado",
"CertificateValidationHelpText": "Cambiar como es la validacion de la certificacion estricta de HTTPS. No cambiar a menos que entiendas las consecuencias.",
"CertificateValidationHelpText": "Cambia cómo de estricta es la validación de certificación de HTTPS. No cambiar a menos que entiendas los riesgos.",
"ChangeFileDate": "Cambiar fecha de archivo",
"ChangeHasNotBeenSavedYet": "El cambio aún no se ha guardado",
"ChmodFolder": "Carpeta chmod",
"ChmodFolder": "chmod de la carpeta",
"ChmodFolderHelpText": "Octal, aplicado durante la importación / cambio de nombre a carpetas y archivos multimedia (sin bits de ejecución)",
"ChmodFolderHelpTextWarning": "Esto solo funciona si el usuario que ejecuta Readarr es el propietario del archivo. Es mejor asegurarse de que el cliente de descarga establezca los permisos correctamente.",
"ChownGroupHelpText": "Nombre del grupo o gid. Utilice gid para sistemas de archivos remotos.",
@@ -64,7 +62,7 @@
"CreateEmptyAuthorFoldersHelpText": "Crear carpetas de películas que faltan durante la exploración del disco",
"CreateGroup": "Crear grupo",
"CutoffHelpText": "Una vez que se alcance esta calidad, Readarr dejará de descargar libros",
"CutoffUnmet": "Umbrales no alcanzados",
"CutoffUnmet": "Límite no alcanzado",
"DatabaseMigration": "Migración de la base de datos",
"Dates": "Fechas",
"DelayProfile": "Perfil de retardo",
@@ -114,7 +112,7 @@
"EnableAutomaticSearch": "Habilitar Búsqueda Automática",
"EnableColorImpairedMode": "Habilitar Modo de dificultad con los colores",
"EnableColorImpairedModeHelpText": "Estilo modificado para permitir que usuarios con problemas de color distingan mejor la información codificada por colores",
"EnableCompletedDownloadHandlingHelpText": "Importar automáticamente las descargas completas del gestor de descargas",
"EnableCompletedDownloadHandlingHelpText": "Importa automáticamente las descargas completas del gestor de descargas",
"EnableHelpText": "Habilitar la creación de un fichero de metadatos para este tipo de metadato",
"EnableInteractiveSearch": "Habilitar Búsqueda Interactiva",
"EnableRSS": "Habilitar RSS",
@@ -153,7 +151,7 @@
"ICalFeed": "Canal de iCal",
"ICalHttpUrlHelpText": "Copia esta URL a tu gestor(es) o haz click en subscribir si tu navegador soporta webcal",
"ICalLink": "Enlace de iCal",
"IconForCutoffUnmet": "Icono para Umbrales no alcanzados",
"IconForCutoffUnmet": "Icono de límite no alcanzado",
"IconTooltip": "Programado",
"IgnoredAddresses": "Ignorar direcciones",
"IgnoredHelpText": "Este lanzamiento será rechazado si contiene uno ó más de estos términos (mayúsculas ó minúsculas)",
@@ -166,13 +164,13 @@
"Importing": "Importando",
"IncludeHealthWarningsHelpText": "Incluir Alertas de Salud",
"IncludeUnknownAuthorItemsHelpText": "Mostrar elementos sin un autor en la cola. Esto podría incluir autores eliminados, libros o cualquier otra cosa en la categoría de Readarr",
"IncludeUnmonitored": "Incluir sin monitorizar",
"IncludeUnmonitored": "Incluir no monitorizadas",
"Indexer": "Indexador",
"IndexerPriority": "Prioridad del indexador",
"IndexerSettings": "Opciones del indexador",
"Indexers": "Indexadores",
"Interval": "Intervalo",
"IsCutoffCutoff": "Corte",
"IsCutoffCutoff": "Límite",
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Actualizar hasta que se alcance o supere esta calidad",
"IsTagUsedCannotBeDeletedWhileInUse": "No se puede eliminar estando en uso",
"Language": "Idioma",
@@ -315,7 +313,7 @@
"ScriptPath": "Ruta del script",
"Search": "Buscar",
"SearchAll": "Buscar todo",
"SearchForMissing": "Buscar perdidos",
"SearchForMissing": "Buscar faltantes",
"SearchSelected": "Buscar seleccionados",
"Security": "Seguridad",
"SendAnonymousUsageData": "Enviar datos de uso anónimos",
@@ -324,7 +322,7 @@
"SetPermissionsLinuxHelpTextWarning": "Si no estás seguro qué configuraciones hacer, no las cambies.",
"Settings": "Ajustes",
"ShortDateFormat": "Formato de fecha breve",
"ShowCutoffUnmetIconHelpText": "Mostrar el icono para los ficheros cuando no se ha alcanzado el corte",
"ShowCutoffUnmetIconHelpText": "Muestra un icono para archivos cuando el límite no haya sido alcanzado",
"ShowMonitored": "Mostrar monitorizado",
"ShowMonitoredHelpText": "Muestra el estado monitorizado bajo el póster",
"ShowPath": "Mostrar ruta",
@@ -343,9 +341,9 @@
"SorryThatBookCannotBeFound": "Lo siento, no he encontrado esa película.",
"Source": "Fuente",
"SourcePath": "Ruta de la fuente",
"SslCertPasswordHelpText": "Contraseña para el archivo pfx",
"SslCertPasswordHelpText": "Contraseña para archivo pfx",
"SslCertPasswordHelpTextWarning": "Requiere reiniciar para que surta efecto",
"SslCertPathHelpText": "Ruta al archivo pfx",
"SslCertPathHelpText": "Ruta del archivo pfx",
"StandardBookFormat": "Formato de Película Estándar",
"StartTypingOrSelectAPathBelow": "Comienza a escribir o selecciona una ruta debajo",
"StartupDirectory": "Directorio de Arranque",
@@ -412,7 +410,7 @@
"Unmonitored": "Sin monitorizar",
"UnmonitoredHelpText": "Incluir los libros sin monitorizar en el canal de iCal",
"UpdateAll": "Actualizar Todo",
"UpdateAutomaticallyHelpText": "Descargar e instalar actualizaciones automáticamente. Todavía puedes instalar desde Sistema: Actualizaciones",
"UpdateAutomaticallyHelpText": "Descarga e instala actualizaciones automáticamente. Podrás seguir instalándolas desde Sistema: Actualizaciones",
"UpdateMechanismHelpText": "Usar el actualizador integrado de Readarr o un script",
"UpdateScriptPathHelpText": "Ruta a un script personalizado que toma un paquete de actualización extraído y gestiona el resto del proceso de actualización",
"Updates": "Actualizaciones",
@@ -425,8 +423,8 @@
"UsenetDelay": "Retraso de usenet",
"UsenetDelayHelpText": "Retraso en minutos a esperar antes de capturar un lanzamiento desde usenet",
"Username": "Usuario",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Rama a utilizar para actualizar Readarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Rama usada por el mecanismo de actualización externo",
"BranchUpdate": "Rama a utilizar para actualizar Readarr",
"BranchUpdateMechanism": "Rama usada por el mecanismo de actualización externo",
"Version": "Versión",
"WeekColumnHeader": "Cabecera de columna de semana",
"Year": "Año",
@@ -606,7 +604,7 @@
"ResetDefinitions": "Restablecer definiciones",
"UnableToLoadCustomFormats": "No se pueden cargar los Formatos Propios",
"Theme": "Tema",
"ThemeHelpText": "Cambiar el tema de la interfaz de la aplicación, el tema 'Auto' usará el tema de tu sistema para establecer el modo luminoso u oscuro. Inspirado por Theme.Park",
"ThemeHelpText": "Cambia el tema de la interfaz de la aplicación, el tema 'Auto' usará el tema de tu sistema para establecer el modo luminoso u oscuro. Inspirado por Theme.Park",
"CustomFormatSettings": "Ajustes de formato personalizado",
"CutoffFormatScoreHelpText": "Una vez alcanzada la puntuación del formato personalizado Readarr dejará de capturar lanzamientos de libros",
"DeleteCustomFormatMessageText": "¿Estás seguro que quieres eliminar el formato personalizado '{name}'?",
@@ -644,7 +642,7 @@
"Yes": "Sí",
"RedownloadFailed": "La descarga ha fallado",
"RemoveCompleted": "Eliminar completado",
"RemoveDownloadsAlert": "Las opciones de Eliminar fueron movidas a las opciones del cliente de descarga individual en la table anterior.",
"RemoveDownloadsAlert": "Las opciones de eliminación fueron trasladadas a las opciones del cliente de descarga individual en la tabla anterior.",
"RemoveFailed": "Fallo al eliminar",
"ApplyTagsHelpTextAdd": "Añadir: Añade las etiquetas a la lista de etiquetas existente",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Cómo añadir etiquetas a los clientes de descargas seleccionados",
@@ -686,7 +684,7 @@
"Activity": "Actividad",
"Location": "Ubicación",
"Ui": "Interfaz",
"AddNew": "Añadir Nuevo",
"AddNew": "Añadir nuevo",
"Backup": "Copia de seguridad",
"ManageClients": "Gestionar Clientes",
"ManageDownloadClients": "Gestionar Clientes de Descarga",
@@ -768,9 +766,9 @@
"Continuing": "Continua",
"DownloadClientQbittorrentSettingsContentLayout": "Diseño del contenido",
"InvalidUILanguage": "Su interfaz de usuario está configurada en un idioma no válido, corríjalo y guarde la configuración",
"NoCutoffUnmetItems": "Sin objetos sin condiciones de corte incumplidas",
"NoCutoffUnmetItems": "Ningún elemento con límite no alcanzado",
"StatusEndedContinuing": "Continua",
"ChownGroup": "chown grupo",
"ChownGroup": "chown del grupo",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Si usar el diseño de contenido configurado de qBittorrent, el diseño original del torrent o siempre crear una subcarpeta (qBittorrent 4.3.2+)",
"CustomFormatsSpecificationRegularExpression": "Expresión regular",
"ErrorLoadingContent": "Hubo un error cargando este contenido",
@@ -810,7 +808,7 @@
"DataListMonitorAll": "Monitoriza los autores y todos los álbumes de cada artista incluido en la lista de importación",
"MetadataSettingsSummary": "Crea archivos de metadatos cuando los episodios son importados o las series son refrescadas",
"MonitoredAuthorIsUnmonitored": "El artista no está vigilado",
"SearchForAllCutoffUnmetBooks": "Buscar todos los episodios en Umbrales no alcanzados",
"SearchForAllCutoffUnmetBooks": "Buscar todos los libros con límites no alcanzados",
"ConsoleLogLevel": "Nivel de registro de consola",
"DataMissingBooks": "Monitoriza libros que no tienen archivos o que no se han lanzado aún",
"EnabledHelpText": "Señalar para habilitar el perfil de lanzamiento",
@@ -832,7 +830,7 @@
"SelectReleaseGroup": "Seleccionar grupo de lanzamiento",
"ThereWasAnErrorLoadingThisItem": "Hubo un error cargando este elemento",
"ThereWasAnErrorLoadingThisPage": "Hubo un error cargando esta página",
"SourceTitle": "Título de la fuente",
"SourceTitle": "Título de origen",
"ShowBanners": "Mostrar banners",
"SearchMonitored": "Buscar monitorizados",
"Other": "Otro",
@@ -875,7 +873,7 @@
"DownloadClientDelugeSettingsDirectoryCompleted": "Directorio al que mover cuando se complete",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Ubicación opcional a la que mover las descargas completadas, dejar en blanco para usar la ubicación predeterminada de Deluge",
"DownloadClientDelugeSettingsDirectoryHelpText": "Ubicación opcional en la que poner las descargas, dejar en blanco para usar la ubicación predeterminada de Deluge",
"InteractiveSearchModalHeader": "Búsqueda Interactiva",
"InteractiveSearchModalHeader": "Búsqueda interactiva",
"NotificationsPlexSettingsAuthToken": "Token de autenticación",
"CustomFormatsSettingsTriggerInfo": "Un formato personalizado será aplicado al lanzamiento o archivo cuando coincida con al menos uno de los diferentes tipos de condición elegidos.",
"ShouldSearchHelpText": "Buscar indexadores para elementos añadido recientemente. Usar con precaución en listas largas.",
@@ -898,7 +896,7 @@
"DataListMonitorNone": "No monitorizar autores o libros",
"Iso639-3": "Códigos de idioma ISO 639-3, o 'nulo', separados por coma",
"MinPopularityHelpText": "Popularidad es la media de valoraciones * número de votos",
"DeleteSelected": "Eliminar seleccionados",
"DeleteSelected": "Borrar seleccionados",
"IsExpandedShowFileInfo": "Mostrar información de archivo",
"MassBookSearchWarning": "¿Estás seguro que quieres llevar a cabo una búsqueda masiva para {0} libros?",
"MonitorNewItemsHelpText": "Qué nuevos libros deberían ser monitorizados",
@@ -1082,5 +1080,26 @@
"CalibrePassword": "Contraseña de Calibre",
"CalibrePort": "Puerto de Calibre",
"InteractiveSearchModalHeaderBookAuthor": "Búsqueda interactiva - {bookTitle} por {authorName}",
"OnAuthorAdded": "En autor añadido"
"OnAuthorAdded": "En autor añadido",
"IndexerSettingsSeedRatio": "Ratio de sembrado",
"IndexerSettingsSeedRatioHelpText": "El ratio que un torrent debería alcanzar antes de parar, vacío usa el predeterminado del cliente de descarga. El ratio debería ser al menos 1.0 y seguir las reglas de los indexadores",
"IndexerSettingsSeedTime": "Tiempo de sembrado",
"IndexerSettingsSeedTimeHelpText": "El tiempo que un torrent debería ser sembrado antes de parar, vacío usa el predeterminado del cliente de descarga",
"FailedLoadingSearchResults": "Error al cargar los resultados de la busqueda, prueba otra vez.",
"WhySearchesCouldBeFailing": "Pulsa aquí para descubrir por qué las búsquedas podrían estar fallando",
"ApiKey": "Clave API",
"AuthenticationRequiredHelpText": "Cambia para qué solicitudes se requiere autenticación. No cambiar a menos que entiendas los riesgos.",
"AuthForm": "Formularios (Página de inicio de sesión)",
"AuthenticationRequiredWarning": "Para evitar el acceso remoto sin autenticación, {appName} ahora requiere que la autenticación sea habilitada. Opcionalmente puedes deshabilitar la autenticación desde direcciones locales.",
"DisabledForLocalAddresses": "Deshabilitada para direcciones locales",
"Enabled": "Habilitada",
"PasswordConfirmation": "Confirmación de contraseña",
"AuthBasic": "Básica (Ventana emergente del navegador)",
"AuthenticationMethod": "Método de autenticación",
"AuthenticationMethodHelpTextWarning": "Por favor selecciona un método de autenticación válido",
"AuthenticationRequired": "Autenticación requerida",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirma la nueva contraseña",
"AuthenticationRequiredPasswordHelpTextWarning": "Introduce una nueva contraseña",
"AuthenticationRequiredUsernameHelpTextWarning": "Introduce un nuevo usuario",
"External": "Externa"
}

View File

@@ -8,7 +8,6 @@
"20MinutesTwenty": "20 minuuttia: {0}",
"45MinutesFourtyFive": "45 minuuttia: {0}",
"60MinutesSixty": "60 minuuttia: {0}",
"APIKey": "Rajapinnan avain",
"About": "Tietoja",
"AddListExclusion": "Lisää listapoikkeus",
"AddingTag": "Tunniste lisätään",
@@ -39,7 +38,7 @@
"Calendar": "Kalenteri",
"CalendarWeekColumnHeaderHelpText": "Näkyy jokaisen sarakkeen yläpuolella käytettäessä viikkonäkymää.",
"Cancel": "Peruuta",
"CancelMessageText": "Haluatko varmasti perua tämän odottavan tehtävän?",
"CancelPendingTask": "Haluatko varmasti perua tämän odottavan tehtävän?",
"CertificateValidation": "Varmenteen vahvistus",
"CertificateValidationHelpText": "Määritä HTTPS-varmennevahvistuksen tiukkuus. Älä muta, jos et ymmärrä riskejä.",
"ChangeFileDate": "Muuta tiedoston päiväys",
@@ -163,7 +162,7 @@
"ImportExtraFilesHelpText": "Tuo kirjatiedoston tuonnin yhteydessä sääntöjä vastaavat tiedostot, kuten tekstitykset, .nfo-tiedostot, yms.",
"ImportFailedInterp": "Tuonti epäonnistui: {0}",
"ImportedTo": "Tuontikohde",
"Importing": "Tuonti",
"Importing": "Tuodaan",
"IncludeHealthWarningsHelpText": "Sisällytä kuntovaroitukset",
"IncludeUnknownAuthorItemsHelpText": "Näytä jonossa kohteet, joille ei ole kirjailijaa. Tämä voi sisältää poistettuja kirjailijoita tai mitä tahansa muuta Readarrille luokiteltua.",
"IncludeUnmonitored": "Sisällytä valvomattomat",
@@ -425,13 +424,12 @@
"UsenetDelay": "Usenet-viive",
"UsenetDelayHelpText": "Minuuttiviive, joka odotetaan ennen julkaisun Usenet-kaappausta.",
"Username": "Käyttäjätunnus",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Sovelluksen versiopäivityksiin käytettävä kehityshaara.",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ulkoisen päivitysratkaisun käyttämä kehityshaara.",
"BranchUpdate": "Sovelluksen versiopäivityksiin käytettävä kehityshaara.",
"BranchUpdateMechanism": "Ulkoisen päivitysratkaisun käyttämä kehityshaara.",
"Version": "Versio",
"WeekColumnHeader": "Viikkosarakkeen otsikko",
"Year": "Vuosi",
"YesCancel": "Kyllä, peru",
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"DeleteRootFolderMessageText": "Haluatko varmasti poistaa juurikansion \"{name}\"?",
"LoadingBooksFailed": "Kirjojen lataus epäonnistui",
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
@@ -1008,5 +1006,28 @@
"CustomFormatsSpecificationFlag": "Lippu",
"SelectIndexerFlags": "Valitse tietolähteen liput",
"SetIndexerFlags": "Aseta tietolähteen liput",
"LabelIsRequired": "Nimi on pakollinen"
"LabelIsRequired": "Nimi on pakollinen",
"IndexerSettingsSeedRatio": "Jakosuhde",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Valinnainen latuasten tallennussijainti. Käytä Aria2-oletusta jättämällä tyhjäksi.",
"IndexerSettingsSeedRatioHelpText": "Suhde, joka torrentin tulee saavuttaa ennen sen pysäytystä. Käytä lataustyökalun oletusta jättämällä tyhjäksi. Suhteen tulisi olla ainakin 1.0 ja noudattaa tietolähteen sääntöjä.",
"IndexerSettingsSeedTime": "Jakoaika",
"IndexerSettingsSeedTimeHelpText": "Aika, joka torrentia tulee jakaa ennen sen pysäytystä. Käytä lataustyökalun oletusta jättämällä tyhjäksi.",
"FailedLoadingSearchResults": "Hakutulosten lataus epäonnistui. Yritä uudelleen.",
"WhySearchesCouldBeFailing": "Selvitä miksi haku saattaa epäonnistua painamalla tästä",
"ApiKey": "Rajapinnan avain",
"AuthBasic": "Perus (ponnahdusikkuna)",
"AuthForm": "Lomake (kirjautumissivu)",
"AuthenticationMethod": "Tunnistautumistapa",
"AuthenticationMethodHelpTextWarning": "Valitse sopiva tunnistautumistapa",
"AuthenticationRequired": "Vaadi tunnistautuminen",
"AuthenticationRequiredHelpText": "Valitse mitkä pyynnöt vaativat tunnistautumisen. Älä muuta, jos et ymmärrä riskejä.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Vahvista uusi salasana",
"AuthenticationRequiredPasswordHelpTextWarning": "Syötä uusi salasana",
"AuthenticationRequiredUsernameHelpTextWarning": "Syötä uusi käyttäjätunnus",
"AuthenticationRequiredWarning": "Etäkäytön estämiseksi ilman tunnistautumista {appName} vaatii nyt todennuksen käyttöönoton. Todennus voidaan poistaa käytöstä paikallisille osoitteille.",
"Enabled": "Käytössä",
"External": "Ulkoinen",
"PasswordConfirmation": "Salasanan vahvistus",
"DisabledForLocalAddresses": "Ei käytössä paikallisille osoitteille",
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "{appName} tukee useita listoja, joilta sarjoja voidaan tuoda tietokantaan."
}

View File

@@ -2,11 +2,9 @@
"20MinutesTwenty": "20 Minutes : {0}",
"45MinutesFourtyFive": "45 Minutes : {0}",
"60MinutesSixty": "60 Minutes : {0}",
"APIKey": "Clé API",
"About": "À propos",
"AddListExclusion": "Ajouter une liste d'exclusion",
"BindAddressHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"ApiKeyHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"Branch": "Branche",
"Docker": "Docker",
"DeleteRootFolderMessageText": "Êtes-vous sûr de vouloir supprimer le dossier racine « {name} » ?",
@@ -33,7 +31,7 @@
"AppDataDirectory": "Dossier AppData",
"ApplyTags": "Appliquer les étiquettes",
"Authentication": "Authentification",
"AuthenticationMethodHelpText": "Exiger un nom d'utilisateur et un mot de passe pour accéder à Readarr",
"AuthenticationMethodHelpText": "Exiger un nom d'utilisateur et un mot de passe pour accéder à {appName}",
"AuthorClickToChangeBook": "Cliquer pour changer le livre",
"AutoRedownloadFailedHelpText": "Recherche automatique et tentative de téléchargement d'une version différente",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Les livres effacés du disque dur ne seront plus surveillés dans Readarr",
@@ -50,7 +48,7 @@
"Calendar": "Calendrier",
"CalendarWeekColumnHeaderHelpText": "Affiché au dessus de chaque colonne quand \"Semaine\" est l'affichage actif",
"Cancel": "Annuler",
"CancelMessageText": "Êtes-vous sur de vouloir annuler cette tâche en attente ?",
"CancelPendingTask": "Êtes-vous sur de vouloir annuler cette tâche en attente ?",
"CertificateValidation": "Validation du certificat",
"CertificateValidationHelpText": "Modifier le niveau de rigueur de la validation de la certification HTTPS. Ne pas modifier si vous ne maîtrisez pas les risques.",
"ChangeFileDate": "Changer la date du fichier",
@@ -112,7 +110,7 @@
"DiskSpace": "Espace disque",
"DownloadClient": "Client de téléchargement",
"DownloadClientSettings": "Télécharger les paramètres client",
"DownloadClients": "Clients de téléchargement",
"DownloadClients": "Clients de télécharg.",
"DownloadFailedCheckDownloadClientForMoreDetails": "Téléchargement échoué : voir le client de téléchargement pour plus de détails",
"DownloadFailedInterp": "Échec du téléchargement : {0}",
"DownloadPropersAndRepacksHelpTexts1": "S'il faut ou non mettre à niveau automatiquement vers Propres/Repacks",
@@ -179,7 +177,7 @@
"IndexerSettings": "Paramètres de l'indexeur",
"Indexers": "Indexeurs",
"Interval": "Intervalle",
"IsCutoffCutoff": "Limite",
"IsCutoffCutoff": "Couper",
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Mettre à niveau jusqu'à ce que cette qualité soit atteinte ou dépassée",
"IsTagUsedCannotBeDeletedWhileInUse": "Ne peut pas être supprimé pendant l'utilisation",
"Language": "Langue",
@@ -357,7 +355,7 @@
"Status": "État",
"StatusEndedEnded": "Terminé",
"Style": "Style",
"SuccessMyWorkIsDoneNoFilesToRename": "Victoire ! Mon travail est terminé, aucun fichier à renommer.",
"SuccessMyWorkIsDoneNoFilesToRename": "C'est fait ! Mon travail est terminé, plus aucun fichier à renommer.",
"SuccessMyWorkIsDoneNoFilesToRetag": "Victoire ! Mon travail est terminé, aucun fichier à renommer.",
"SupportsRssvalueRSSIsNotSupportedWithThisIndexer": "RSS n'est pas pris en charge avec cet indexeur",
"SupportsSearchvalueSearchIsNotSupportedWithThisIndexer": "La recherche n'est pas prise en charge avec cet indexeur",
@@ -431,8 +429,8 @@
"UsenetDelay": "Retard Usenet",
"UsenetDelayHelpText": "Délai en minutes avant de récupérer une release de Usenet",
"Username": "Nom d'utilisateur",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Branche à utiliser pour mettre à jour Readarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Branche utilisée par le mécanisme de mise à jour extérieur",
"BranchUpdate": "Branche à utiliser pour mettre à jour Readarr",
"BranchUpdateMechanism": "Branche utilisée par le mécanisme de mise à jour extérieur",
"Version": "Version",
"WeekColumnHeader": "En-tête de colonne de la semaine",
"Year": "Année",
@@ -545,15 +543,15 @@
"ImportListStatusCheckSingleClientMessage": "Listes indisponibles en raison d'échecs: {0}",
"IndexerLongTermStatusCheckAllClientMessage": "Tous les indexeurs sont indisponibles en raison d'échecs de plus de 6 heures",
"Lists": "Listes",
"Monitor": "Surveillé",
"Monitor": "Surveiller",
"MissingFromDisk": "Readarr n'a pas pu trouver le fichier sur le disque, il a donc été supprimé dans la base de données",
"MountCheckMessage": "Le montage contenant un chemin d'auteur est monté en lecture seule: ",
"OnBookFileDelete": "À la suppression d'un fichier vidéo",
"OnBookFileDeleteForUpgrade": "À la suppression du fichier vidéo pour mise à niveau",
"OnBookFileDeleteForUpgradeHelpText": "À la suppression du fichier vidéo pour mise à niveau",
"OnBookFileDeleteHelpText": "À la suppression d'un fichier vidéo",
"OnBookFileDelete": "Lors de la suppression du fichier d'un livre",
"OnBookFileDeleteForUpgrade": "Lors de la suppression du fichier d'un livre pour la mise à niveau",
"OnBookFileDeleteForUpgradeHelpText": "Lors de la suppression du fichier d'un livre pour la mise à niveau",
"OnBookFileDeleteHelpText": "Lors de la suppression du fichier d'un livre",
"OnGrab": "Lors de la saisie",
"OnHealthIssue": "Sur la question de la santé",
"OnHealthIssue": "Lors de problème de santé",
"OnRename": "Au renommage",
"ProxyCheckBadRequestMessage": "Échec du test du proxy. StatusCode: {0}",
"ProxyCheckFailedToTestMessage": "Échec du test du proxy : {0}",
@@ -666,8 +664,8 @@
"ClickToChangeReleaseGroup": "Cliquez pour changer de groupe de diffusion",
"HardlinkCopyFiles": "Lien physique/Copie de fichiers",
"MoveFiles": "Déplacer des fichiers",
"OnApplicationUpdate": "Sur la mise à jour de l'application",
"OnApplicationUpdateHelpText": "Lors de la mise à jour de l'app",
"OnApplicationUpdate": "Lors de la mise à jour de l'application",
"OnApplicationUpdateHelpText": "Lors de la mise à jour de l'application",
"BypassIfAboveCustomFormatScore": "Contourner si au-dessus du score du format personnalisé",
"BypassIfHighestQuality": "Contourner si la qualité est la plus élevée",
"BypassIfAboveCustomFormatScoreHelpText": "Activez le contournement lorsque la version a un score supérieur au score minimum configuré pour le format personnalisé",
@@ -681,7 +679,7 @@
"CopyToClipboard": "Copier dans le presse-papier",
"CustomFormat": "Format personnalisé",
"CustomFormatSettings": "Réglages Formats Personnalisés",
"CustomFormats": "Formats perso.",
"CustomFormats": "Formats personnalisés",
"DeleteCustomFormat": "Supprimer le format personnalisé",
"DeleteCustomFormatMessageText": "Voulez-vous vraiment supprimer le format personnalisé « {name} » ?",
"DeleteFormatMessageText": "Êtes-vous sûr de vouloir supprimer le tag « {0} » ?",
@@ -768,7 +766,7 @@
"ConnectionLostToBackend": "{appName} a perdu sa connexion au backend et devra être rechargé pour fonctionner à nouveau.",
"RecentChanges": "Changements récents",
"System": "Système",
"WhatsNew": "Quoi de neuf ?",
"WhatsNew": "Quoi de neuf ?",
"AllResultsAreHiddenByTheAppliedFilter": "Tous les résultats sont masqués par le filtre appliqué",
"Location": "Emplacement",
"NoResultsFound": "Aucun résultat trouvé",
@@ -925,7 +923,7 @@
"ExtraFileExtensionsHelpText": "Liste de fichiers supplémentaires séparés par des virgules à importer (.nfo sera importé en tant que .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Exemples : '.sub, .nfo' ou 'sub,nfo'",
"UseSSL": "Utiliser SSL",
"DeleteSelected": "Supprimer sélectionnée",
"DeleteSelected": "Supprimer la sélection",
"InvalidUILanguage": "Votre interface utilisateur est définie sur une langue non valide, corrigez-la et enregistrez vos paramètres",
"DownloadClientQbittorrentSettingsContentLayout": "Disposition du contenu",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)",
@@ -976,7 +974,7 @@
"EditAuthor": "Éditer l'auteur",
"EditBook": "Modifier le livre",
"EditList": "Modifier la liste",
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Total: {totalBookCount}, Fichiers : {bookFileCount})",
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Total : {totalBookCount}, Fichiers : {bookFileCount})",
"BookProgressBarText": "{bookCount} / {totalBookCount} (Fichiers : {bookFileCount})",
"CustomFormatsSettingsTriggerInfo": "Un format personnalisé sera appliqué à une version ou à un fichier lorsqu'il correspond à au moins un de chacun des différents types de conditions choisis.",
"IndexerFlags": "Drapeaux de l'indexeur",
@@ -988,5 +986,120 @@
"NotificationsSettingsUpdateLibrary": "Mettre à jour la bibliothèque",
"NotificationsSettingsUpdateMapPathsFrom": "Mapper les chemins depuis",
"NotificationsSettingsUseSslHelpText": "Se connecter à {serviceName} en HTTPS plutôt qu'en HTTP",
"NotificationsSettingsUpdateMapPathsTo": "Mapper les chemins vers"
"NotificationsSettingsUpdateMapPathsTo": "Mapper les chemins vers",
"InteractiveSearchModalHeader": "Recherche interactive",
"FailedLoadingSearchResults": "Échec du chargement des résultats de recherche, veuillez réessayer.",
"MonitoredAuthorIsMonitored": "Artiste non surveillé",
"IndexerSettingsSeedRatio": "Ratio d'envoi",
"IndexerSettingsSeedRatioHelpText": "Le ratio qu'un torrent doit atteindre avant de s'arrêter, vide utilise la valeur par défaut du client de téléchargement. Le ratio doit être d'au moins 1.0 et suivre les règles des indexeurs",
"IndexerSettingsSeedTime": "Temps d'envoi",
"IndexerSettingsSeedTimeHelpText": "Durée pendant laquelle un torrent doit être envoyé avant de s'arrêter, vide utilise la valeur par défaut du client de téléchargement",
"WhySearchesCouldBeFailing": "Cliquez ici pour savoir pourquoi les recherches pourraient échouer",
"ApiKey": "Clé API",
"AuthBasic": "Basique (fenêtre surgissante du navigateur)",
"AuthForm": "Formulaire (page de connexion)",
"AuthenticationMethod": "Méthode d'authentification",
"AuthenticationMethodHelpTextWarning": "Veuillez choisir une méthode d'authentification valide",
"AuthenticationRequired": "Authentification requise",
"AuthenticationRequiredHelpText": "Modifier les demandes pour lesquelles l'authentification est requise. Ne rien modifier si vous n'en comprenez pas les risques.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirmer le nouveau mot de passe",
"AuthenticationRequiredPasswordHelpTextWarning": "Saisir un nouveau mot de passe",
"AuthenticationRequiredUsernameHelpTextWarning": "Saisir un nouveau nom d'utilisateur",
"AuthenticationRequiredWarning": "Pour empêcher l'accès à distance sans authentification, {appName} exige désormais que l'authentification soit activée. Vous pouvez éventuellement désactiver l'authentification pour les adresses locales.",
"DisabledForLocalAddresses": "Désactivée pour les adresses IP locales",
"Enabled": "Activé",
"External": "Externe",
"PasswordConfirmation": "Confirmation du mot de passe",
"TagsSettingsSummary": "Gérer les étiquettes d'auteur, de profil, de restriction et de notification",
"RefreshAuthor": "Actualiser l'auteur",
"RenameBooks": "Renommer les livres",
"ShouldMonitorExisting": "Surveiller les livres existants",
"LatestBook": "Dernier livre",
"WriteTagsNew": "Pour les nouveaux téléchargements uniquement",
"FirstBook": "Premier livre",
"RefreshInformation": "Actualiser les informations",
"ISBN": "ISBN",
"EmbedMetadataInBookFiles": "Intégrer des métadonnées dans les fichiers des livres",
"IgnoredMetaHelpText": "Les livres seront ignorés s'ils contiennent un ou plusieurs termes (insensible à la casse)",
"NewBooks": "Nouveaux livres",
"NoName": "Ne pas afficher le nom",
"HideBooks": "Masquer les livres",
"IsExpandedHideBooks": "Masquer les livres",
"TooManyBooks": "Il vous manque ou il y a trop de livres ? Modifier ou créer un nouveau",
"FileDetails": "Détails du fichier",
"LogSQL": "Log SQL",
"EditionsHelpText": "Changer d'édition pour ce livre",
"ExistingItems": "Éléments existants",
"SendMetadataToCalibre": "Envoyer des métadonnées à Calibre",
"MonitorNewItems": "Surveiller les nouveaux livres",
"NameFirstLast": "Prénom Nom",
"UsernameHelpText": "Nom d'utilisateur du serveur de contenu Calibre",
"SearchBook": "Rechercher un livre",
"HostHelpText": "Hôte du serveur de contenu Calibre",
"MonitorAuthor": "Surveiller l'auteur",
"MonitoredHelpText": "Readarr recherchera et téléchargera le livre",
"NETCore": ".NET Core",
"PasswordHelpText": "Mot de passe du serveur de contenu Calibre",
"ExistingBooks": "Livres existants",
"SelectEdition": "Sélectionnez une édition",
"FilterPlaceHolder": "Filtrer par livre",
"OnAuthorAdded": "Lors de l'ajout d'un auteur",
"OnAuthorAddedHelpText": "Lors de l'ajout d'un auteur",
"EmbedMetadataHelpText": "Dites à Calibre d'écrire les métadonnées dans le fichier du livre actuel",
"UrlBaseHelpText": "Ajoute un préfixe à l'URL de Calibre, par exemple http://[host]:[port]/[urlBase]",
"HasMonitoredBooksNoMonitoredBooksForThisAuthor": "Aucun livre surveillé pour cet auteur",
"IsCalibreLibraryHelpText": "Utiliser le serveur de contenu Calibre pour manipuler la bibliothèque",
"IsExpandedShowBooks": "Afficher les livres",
"LibraryHelpText": "Nom de la bibliothèque du serveur de contenu Calibre. Laissez vide par défaut.",
"MetadataSourceHelpText": "Source de métadonnées alternative (laisser vide par défaut)",
"MissingBooksAuthorNotMonitored": "Livres manquants (auteur non surveillé)",
"NoTagsHaveBeenAddedYet": "Aucun tag n'a été ajouté pour l'instant. Ajoutez des tag s pour lier les auteurs avec des profils de retard, des restrictions ou des notifications. Cliquez sur {0} pour en savoir plus sur les tags dans Readarr.",
"PortHelpText": "Port du serveur de contenu Calibre",
"SelectBook": "Sélectionnez un livre",
"SelectedCountAuthorsSelectedInterp": "{0} Auteur(s) sélectionné(s)",
"UpdateCovers": "Mettre à jour les couvertures",
"UpdateCoversHelpText": "Définir les couvertures de livres dans Calibre pour qu'elles correspondent à celles de Readarr",
"MinimumPages": "Pages minimum",
"FilterAuthor": "Filtrer par auteur",
"FutureBooks": "Livres futurs",
"IgnoreDeletedBooks": "Ignorer les livres supprimés",
"InteractiveSearchModalHeaderBookAuthor": "Recherche interactive - {bookTitle} de {authorName}",
"LoadingEditionsFailed": "Le chargement des éditions a échoué",
"MassBookSearch": "Recherche de livres de masse",
"MassBookSearchWarning": "Voulez-vous vraiment effectuer une recherche groupée de {0} livres ?",
"MetadataProviderSource": "Source du fournisseur de métadonnées",
"MinPagesHelpText": "Ignorer les livres avec moins de pages que cela",
"MinPopularityHelpText": "La popularité est la note moyenne * le nombre de votes",
"MissingBooks": "Livres manquants",
"MissingBooksAuthorMonitored": "Livres manquants (auteur surveillé)",
"MonitorBook": "Surveiller le livre",
"MonitorExistingBooks": "Surveiller les livres existants",
"MonitorNewBooks": "Surveiller les nouveaux livres",
"NameLastFirst": "Nom, Prénom",
"NameStyle": "Style du nom de l'auteur",
"OnAuthorDelete": "Lors de la suppression d'un auteur",
"OnAuthorDeleteHelpText": "Lors de la suppression d'un auteur",
"OnBookDelete": "Lors de la suppression d'un livre",
"OnBookDeleteHelpText": "Lors de la suppression d'un livre",
"OnBookRetagHelpText": "Lors du réétiquetage d'un livre",
"OnBookTagUpdate": "Lors de la mise à jour des étiquettes d'un livre",
"OutputFormatHelpText": "Demandez éventuellement à Calibre de convertir vers d'autres formats lors de l'importation. Liste séparée par des virgules.",
"RefreshBook": "Actualiser le livre",
"SeriesNumber": "Numéro de série",
"SeriesTotal": "Séries ({0})",
"SetReadarrTags": "Définir les étiquettes Readarr",
"ShouldMonitorHelpText": "Surveiller les nouveaux auteurs et livres ajoutés à partir de cette liste",
"ShowBookCount": "Afficher le nombre de livres",
"ShowLastBook": "Afficher le dernier livre",
"SkipBooksWithMissingReleaseDate": "Ignorer les livres dont la date de sortie est manquante",
"SkipBooksWithNoISBNOrASIN": "Ignorer les livres sans ISBN ou ASIN",
"TagsHelpText": "S'applique aux auteurs avec au moins une étiquette correspondante. Laisser vide pour appliquer à tous les auteurs",
"TheFollowingFilesWillBeDeleted": "Les fichiers suivants seront supprimés :",
"UseSslHelpText": "Utilisez SSL pour vous connecter au serveur de contenu Calibre",
"WriteTagsAll": "Tous les fichiers ; importation initiale uniquement",
"WriteTagsSync": "Tous les fichiers ; rester synchronisé avec Goodreads",
"Iso639-3": "Codes de langage ISO 639-3, ou 'null', séparés par des virgules",
"SpecificBook": "Livre spécifique",
"SkipSecondarySeriesBooks": "Sauter les livres de séries secondaires",
"SkipPartBooksAndSets": "Livres et coffrets \"Skip part\""
}

View File

@@ -25,7 +25,7 @@
"BypassProxyForLocalAddresses": "עקיפת פרוקסי לכתובות מקומיות",
"Calendar": "לוּחַ שָׁנָה",
"CalendarWeekColumnHeaderHelpText": "מוצג מעל כל עמודה כאשר השבוע היא התצוגה הפעילה",
"CancelMessageText": "האם אתה בטוח שברצונך לבטל משימה זו בהמתנה?",
"CancelPendingTask": "האם אתה בטוח שברצונך לבטל משימה זו בהמתנה?",
"CertificateValidation": "אימות תעודה",
"CertificateValidationHelpText": "שנה את מידת אימות ההסמכה של HTTPS",
"ChangeFileDate": "שנה את תאריך הקובץ",
@@ -411,8 +411,8 @@
"UsenetDelay": "עיכוב Usenet",
"UsenetDelayHelpText": "עיכוב תוך דקות להמתין לפני שתופס שחרור מאוסנט",
"Username": "שם משתמש",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "ענף לשימוש עדכון Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "ענף המשמש את מנגנון העדכון החיצוני",
"BranchUpdate": "ענף לשימוש עדכון Radarr",
"BranchUpdateMechanism": "ענף המשמש את מנגנון העדכון החיצוני",
"Version": "גִרְסָה",
"WeekColumnHeader": "כותרת עמודות שבוע",
"Year": "שָׁנָה",
@@ -420,10 +420,8 @@
"20MinutesTwenty": "60 דקות: {0}",
"45MinutesFourtyFive": "60 דקות: {0}",
"60MinutesSixty": "60 דקות: {0}",
"APIKey": "מפתח API",
"About": "אודות",
"AddListExclusion": "הוסף אי הכללת רשימה",
"ApiKeyHelpTextWarning": "נדרש הפעלה מחדש כדי להיכנס לתוקף",
"AnalyticsEnabledHelpTextWarning": "נדרש הפעלה מחדש כדי להיכנס לתוקף",
"Automatic": "אוֹטוֹמָטִי",
"Cancel": "לְבַטֵל",
@@ -667,5 +665,16 @@
"SourceTitle": "כותרת מקור",
"AutoRedownloadFailed": "הורדה נכשלה",
"IndexerFlags": "אינדקס דגלים",
"InteractiveSearchModalHeader": "חיפוש אינטראקטיבי"
"InteractiveSearchModalHeader": "חיפוש אינטראקטיבי",
"FailedLoadingSearchResults": "טעינת תוצאות החיפוש נכשלה, נסה שוב.",
"RemotePathMappingCheckFilesLocalWrongOSPath": "אתה משתמש בדוקר; קליינט ההורדות {downloadClientName} שם הורדות ב-{path} אבל הנתיב לא תקין {osName}. בחן מחדש את ניתוב התיקיות והגדרות קליינט ההורדות.",
"RemotePathMappingCheckLocalWrongOSPath": "אתה משתמש בדוקר; קליינט ההורדות {downloadClientName} שם הורדות ב-{path} אבל הנתיב לא תקין {osName}. בחן מחדש את ניתוב התיקיות והגדרות קליינט ההורדות.",
"ApiKey": "מפתח API",
"AuthBasic": "בסיסי (חלון קופץ לדפדפן)",
"AuthForm": "טפסים (דף כניסה)",
"AuthenticationRequired": "נדרש אימות",
"AuthenticationRequiredHelpText": "הגדר עבור אילו קריאות נדרש אימות. עדיף להשאיר את ברירת המחדל.",
"AuthenticationRequiredWarning": "בכדי למנוע גישה מרחוק ללא אימות, {appName} דורש הגדרת אימות.\nהגדר את הפרטים ושיטת האימות. ישנה אפשרות לדלג על אימות מהרשת הביתית שלך. \nבמידת הצורך יש לפנות אל שו״ת למידע נוסף.",
"DisabledForLocalAddresses": "מושבת לכתובות מקומיות",
"Enabled": "מופעל"
}

View File

@@ -1,5 +1,5 @@
{
"45MinutesFourtyFive": "90 मिनट: {0}",
"45MinutesFourtyFive": "45 मिनट: {0}",
"60MinutesSixty": "60 मिनट: {0}",
"About": "के बारे में",
"AddListExclusion": "सूची बहिष्करण जोड़ें",
@@ -31,7 +31,7 @@
"Calendar": "पंचांग",
"CalendarWeekColumnHeaderHelpText": "प्रत्येक स्तंभ के ऊपर दिखाया गया जब सप्ताह सक्रिय दृश्य होता है",
"Cancel": "रद्द करना",
"CancelMessageText": "क्या आप वाकई इस लंबित कार्य को रद्द करना चाहते हैं?",
"CancelPendingTask": "क्या आप वाकई इस लंबित कार्य को रद्द करना चाहते हैं?",
"CertificateValidation": "प्रमाणपत्र सत्यापन",
"CertificateValidationHelpText": "बदलें कि HTTPS प्रमाणन सत्यापन कितना सख्त है",
"ChangeFileDate": "फ़ाइल दिनांक बदलें",
@@ -417,16 +417,14 @@
"UsenetDelay": "यूज़नेट देरी",
"UsenetDelayHelpText": "यूज़नेट से एक रिलीज हथियाने से पहले इंतजार करने के लिए मिनटों में देरी",
"Username": "उपयोगकर्ता नाम",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "रेडर को अपडेट करने के लिए उपयोग करने के लिए शाखा",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "बाहरी अद्यतन तंत्र द्वारा उपयोग की जाने वाली शाखा",
"BranchUpdate": "रेडर को अपडेट करने के लिए उपयोग करने के लिए शाखा",
"BranchUpdateMechanism": "बाहरी अद्यतन तंत्र द्वारा उपयोग की जाने वाली शाखा",
"Version": "संस्करण",
"WeekColumnHeader": "वीक कॉलम हैडर",
"Year": "साल",
"YesCancel": "हाँ, रद्द करें",
"20MinutesTwenty": "90 मिनट: {0}",
"APIKey": "एपीआई कुंजी",
"20MinutesTwenty": "20 मिनट: {0}",
"AnalyticsEnabledHelpTextWarning": "प्रभावी करने के लिए पुनरारंभ की आवश्यकता है",
"ApiKeyHelpTextWarning": "प्रभावी करने के लिए पुनरारंभ की आवश्यकता है",
"DeleteTag": "टैग हटाएं",
"DeleteRootFolderMessageText": "क्या आप वाकई '{0}' इंडेक्स को हटाना चाहते हैं?",
"EnableRSS": "आरएसएस को सक्षम करें",
@@ -583,5 +581,64 @@
"RemoveSelectedItemBlocklistMessageText": "क्या आप वाकई चयनित आइटम को ब्लैकलिस्ट से हटाना चाहते हैं?",
"RemoveSelectedItemQueueMessageText": "क्या आप वाकई {0} आइटम {1} को कतार से हटाना चाहते हैं?",
"RemoveSelectedItemsQueueMessageText": "क्या आप वाकई {0} आइटम {1} को कतार से हटाना चाहते हैं?",
"NoEventsFound": "कोई घटना नहीं मिली"
"NoEventsFound": "कोई घटना नहीं मिली",
"ApplyTagsHelpTextHowToApplyAuthors": "चयनित फिल्मों के लिए टैग कैसे लागू करें",
"DeleteSelectedDownloadClients": "डाउनलोड क्लाइंट हटाएं",
"ExistingTag": "मौजूदा टैग",
"Events": "आयोजन",
"LastDuration": "lastDuration",
"NextExecution": "अगला निष्पादन",
"Yes": "हाँ",
"Small": "छोटा",
"InteractiveSearchModalHeader": "इंटरएक्टिव खोज",
"ExtraFileExtensionsHelpText": "आयात करने के लिए कोमा ने अतिरिक्त फ़ाइलों की सूची अलग कर दी (.nfo को .nfo- मूल के रूप में आयात किया जाएगा)",
"ExtraFileExtensionsHelpTextsExamples": "उदाहरण: '.sub, .nfo' या 'सब, nfo'",
"ConnectionLost": "संपर्क टूट गया",
"RecentChanges": "हाल में हुए बदलाव",
"ApplyTagsHelpTextAdd": "जोड़ें: टैग की मौजूदा सूची में टैग जोड़ें",
"No": "नहीं",
"System": "प्रणाली",
"SetTags": "टैग सेट करें",
"DeleteSelectedIndexers": "अनुक्रमणिका हटाएं",
"Activity": "गतिविधि",
"AddNew": "नया जोड़ें",
"Medium": "मध्यम",
"Backup": "बैकअप",
"ConnectionLostReconnect": "Radarr अपने आप कनेक्ट होने का प्रयास करेगा, या आप नीचे पुनः लोड कर सकते हैं।",
"RemoveQueueItemConfirmation": "क्या आप वाकई {0} आइटम {1} को कतार से हटाना चाहते हैं?",
"CustomFilter": "कस्टम फ़िल्टर",
"AutoRedownloadFailed": "डाउनलोड विफल",
"SourceTitle": "स्रोत शीर्षक",
"FreeSpace": "खाली जगह",
"ImportLists": "सूचियों",
"ListsSettingsSummary": "सूचियों",
"Location": "स्थान",
"SomeResultsAreHiddenByTheAppliedFilter": "कुछ परिणाम लागू फ़िल्टर द्वारा छिपे हुए हैं",
"TotalSpace": "कुल स्थान",
"WhatsNew": "नया क्या है?",
"ApplyTagsHelpTextHowToApplyDownloadClients": "चयनित फिल्मों के लिए टैग कैसे लागू करें",
"ApplyTagsHelpTextHowToApplyImportLists": "चयनित फिल्मों के लिए टैग कैसे लागू करें",
"ApplyTagsHelpTextRemove": "निकालें: दर्ज किए गए टैग निकालें",
"ApplyTagsHelpTextReplace": "प्रतिस्थापित करें: दर्ज किए गए टैगों के साथ टैग बदलें (सभी टैग्स को खाली करने के लिए कोई टैग दर्ज न करें)",
"AllResultsAreHiddenByTheAppliedFilter": "सभी परिणाम लागू फ़िल्टर द्वारा छिपे हुए हैं",
"ApplyTagsHelpTextHowToApplyIndexers": "चयनित फिल्मों के लिए टैग कैसे लागू करें",
"FailedLoadingSearchResults": "खोज परिणाम लोड करने में विफल, कृपया पुनः प्रयास करें।",
"IndexerFlags": "इंडेक्स फ्लैग",
"Large": "विशाल",
"LastExecution": "अंतिम निष्पादन",
"LastWriteTime": "अंतिम समय लिखें",
"NoChange": "कोई परिवर्तन नहीं होता है",
"NoResultsFound": "कोई परिणाम नहीं मिला",
"NotificationStatusAllClientHealthCheckMessage": "सभी सूचियाँ विफल होने के कारण अनुपलब्ध हैं",
"NotificationStatusSingleClientHealthCheckMessage": "विफलताओं के कारण अनुपलब्ध सूची: {0}",
"RedownloadFailed": "डाउनलोड विफल",
"RemovingTag": "टैग हटाना",
"SelectDropdown": "'चुनते हैं..।",
"SelectQuality": "गुणवत्ता का चयन करें",
"Ui": "यूआई",
"ApiKey": "एपीआई कुंजी",
"AuthBasic": "बेसिक (ब्राउज़र पॉपअप)",
"AuthForm": "प्रपत्र (लॉग इन पेज)",
"DisabledForLocalAddresses": "स्थानीय पते के लिए अक्षम",
"Enabled": "सक्रिय"
}

View File

@@ -56,7 +56,6 @@
"URLBase": "URL Base",
"Usenet": "Usenet",
"Analytics": "Analitika",
"APIKey": "API ključ",
"Clear": "Očisti",
"Grab": "Dohvati",
"MetadataProfile": "profil metapodataka",
@@ -126,7 +125,7 @@
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "U Radarru se automatski isključuje nadzor za filmove koji su izbrisani sa diska",
"BackupFolderHelpText": "Relativne putanje će biti unutar Radarrovog AppData direktorija",
"BypassIfHighestQuality": "Zaobiđi ako je Najviši Kvalitet",
"CancelMessageText": "Jeste li sigurni da želite otkazati ovaj zadatak na čekanju?",
"CancelPendingTask": "Jeste li sigurni da želite otkazati ovaj zadatak na čekanju?",
"ChmodFolderHelpTextWarning": "Ovo jedino radi ako je korisnik koji je pokrenuo Radarr vlasnik datoteke. Bolje je osigurati da klijent za preuzimanje postavi dozvolu ispravno.",
"ChownGroupHelpTextWarning": "Ovo jedino radi ako je korisnik koji je pokrenuo Radarr vlasnik datoteke. Bolje je osigurati da klijent za preuzimanje koristi istu grupu kao Radarr.",
"DeleteImportListMessageText": "Jeste li sigurni da želite obrisati oznaku formata {0}?",
@@ -135,8 +134,8 @@
"DeleteNotificationMessageText": "Jeste li sigurni da želite obrisati oznaku formata {0}?",
"DeleteQualityProfileMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?",
"DeleteRootFolderMessageText": "Jeste li sigurni da želite obrisati oznaku formata {0}?",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Grana korištena za ažuriranje Radarra",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Grana korištena od strane vanjskog mehanizma za ažuriranje",
"BranchUpdate": "Grana korištena za ažuriranje Radarra",
"BranchUpdateMechanism": "Grana korištena od strane vanjskog mehanizma za ažuriranje",
"ColonReplacement": "Zamjena Zareza",
"DeleteRemotePathMapping": "Daljinsko Mapiranje Portova",
"BlocklistReleaseHelpText": "Spriječi Radarr da automatski dohvaća ovu verziju ponovno",
@@ -178,5 +177,26 @@
"UseProxy": "Koristi proxy",
"RemoveFilter": "Ukloni filter",
"Name": "Ime",
"Version": "Verzija"
"Version": "Verzija",
"ListsSettingsSummary": "Lista",
"ImportLists": "Lista",
"ImportListExclusions": "Dodaj na Listu Isključenja",
"Activity": "Aktivnost",
"AddNew": "Dodaj Novo",
"DeleteImportListExclusion": "Dodaj na Listu Isključenja",
"Events": "Događaj",
"Backup": "Sigurnosna kopija",
"AllResultsAreHiddenByTheAppliedFilter": "Svi rezultati su skriveni zbog primjenjenog filtera",
"HasPendingChangesSaveChanges": "Spremi izmjene",
"Library": "Biblioteka",
"RemoveQueueItemConfirmation": "Jeste li sigurni da želite izbrisati stavku {0} iz reda?",
"Size": " Veličina",
"SomeResultsAreHiddenByTheAppliedFilter": "Svi rezultati su skriveni zbog primjenjenog filtera",
"System": "Sustav",
"Ui": "Korisničko sučelje",
"ApiKey": "API ključ",
"AuthBasic": "Osnovno (Skočni prozor preglednika)",
"AuthForm": "Forme (Login Stranica)",
"DisabledForLocalAddresses": "Onemogućeno za Lokalne Adrese",
"Enabled": "Omogući"
}

View File

@@ -24,7 +24,7 @@
"Calendar": "Naptár",
"CalendarWeekColumnHeaderHelpText": "Minden oszlop felett jelenjen meg, hogy melyik hét az aktuális",
"Cancel": "Mégse",
"CancelMessageText": "Biztosan törlöd ezt a függőben lévő feladatot?",
"CancelPendingTask": "Biztosan törlöd ezt a függőben lévő feladatot?",
"CertificateValidation": "Tanúsítvány érvényesítése",
"CertificateValidationHelpText": "Módosítsa a HTTPS-tanúsítvány-ellenőrzés szigorúságát. Ne változtasson, hacsak nem érti a kockázatokat.",
"ChangeFileDate": "Fájl dátumának módosítása",
@@ -393,7 +393,6 @@
"20MinutesTwenty": "20 Perc: {0}",
"45MinutesFourtyFive": "45 Perc: {0}",
"60MinutesSixty": "60 Perc: {0}",
"APIKey": "API Kulcs",
"About": "Névjegy",
"AddListExclusion": "Listakizárás hozzáadása",
"AddingTag": "Címke hozzáadása",
@@ -423,8 +422,8 @@
"UsenetDelay": "Usenet késleltetés",
"UsenetDelayHelpText": "Időeltolás percekben, mielőtt megkaparintana egy Usenet kiadást",
"Username": "Felhasználónév",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Ágazattípus a Radarr frissítéseihez",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "A külső frissítési mechanizmus által használt ágazat",
"BranchUpdate": "Ágazattípus a Radarr frissítéseihez",
"BranchUpdateMechanism": "A külső frissítési mechanizmus által használt ágazat",
"Version": "Verzió",
"WeekColumnHeader": "Heti oszlopfejléc",
"Year": "Év",
@@ -564,7 +563,6 @@
"MusicBrainzTrackID": "MusicBrainz zeneszám azonosítója",
"MusicbrainzId": "MusicBrainz azonosító",
"NETCore": ".NET Mag",
"ApiKeyHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"AnalyticsEnabledHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"DeleteRootFolderMessageText": "Biztosan törli a(z) \"{name}\" gyökérmappát?",
"LoadingBooksFailed": "A film fájljainak betöltése sikertelen",
@@ -1049,5 +1047,32 @@
"RemoveQueueItemRemovalMethod": "Eltávolítási módszer",
"RemoveQueueItemRemovalMethodHelpTextWarning": "Az „Eltávolítás a letöltési kliensből” eltávolítja a letöltést és a fájl(oka)t a letöltési kliensből.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "Az „Eltávolítás a letöltési kliensből” eltávolítja a letöltéseket és a fájlokat a letöltési kliensből.",
"OnAuthorAdded": "A szerző hozzáadva"
"OnAuthorAdded": "A szerző hozzáadva",
"DashOrSpaceDashDependingOnName": "Dash vagy Space Dash névtől függően",
"Rejections": "Elutasítások",
"BlocklistAndSearchHint": "Indítsa el a csere keresését a tiltólistázás után",
"DownloadClientDelugeSettingsDirectoryHelpText": "Választható hely a letöltések elhelyezéséhez, hagyja üresen az alapértelmezett Aria2 hely használatához",
"FailedLoadingSearchResults": "Nem sikerült betölteni a keresési eredményeket, próbálkozzon újra.",
"CustomFilter": "Egyedi Szűrők",
"IndexerFlags": "Indexer Zászló",
"InteractiveSearchModalHeader": "Interaktív Keresés",
"SelectDropdown": "Válassz...",
"SelectQuality": "Minőség kiválasztása",
"SelectReleaseGroup": "Release csoport kiválasztása",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Választható hely a letöltések elhelyezéséhez, hagyja üresen az alapértelmezett Aria2 hely használatához",
"ApiKey": "API Kulcs",
"AuthForm": "Űrlapok (bejelentkezési oldal)",
"AuthenticationMethod": "Hitelesítési Módszer",
"AuthenticationMethodHelpTextWarning": "Kérjük, válasszon érvényes hitelesítési módot",
"AuthenticationRequired": "Azonosítás szükséges",
"AuthenticationRequiredHelpText": "Módosítsa, hogy mely kérésekhez van szükség hitelesítésre. Ne változtasson, hacsak nem érti a kockázatokat.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Erősítsd meg az új jelszót",
"AuthenticationRequiredPasswordHelpTextWarning": "Adjon meg új jelszót",
"AuthenticationRequiredUsernameHelpTextWarning": "Adjon meg új felhasználónevet",
"AuthenticationRequiredWarning": "A hitelesítés nélküli távoli hozzáférés megakadályozása érdekében a(z) {appName} alkalmazásnak engedélyeznie kell a hitelesítést. Opcionálisan letilthatja a helyi címekről történő hitelesítést.",
"DisabledForLocalAddresses": "Helyi címeknél letiltva",
"External": "Külső",
"PasswordConfirmation": "Jelszó megerősítése",
"AuthBasic": "Alap (böngésző előugró ablak)",
"Enabled": "Engedélyezés"
}

View File

@@ -86,5 +86,21 @@
"ConnectionLostToBackend": "Koneksi {appName} telah terputus dari backend dan perlu dimuat ulang untuk dipulihkan.",
"ApplyChanges": "Terapkan Perubahan",
"History": "Riwayat",
"20MinutesTwenty": "Indonesia"
"20MinutesTwenty": "Indonesia",
"UnableToLoadTheCalendar": "Tidak dapat memuat kalender",
"CouldntFindAnyResultsForTerm": "Tidak ditemukan hasil untuk '{term}'",
"RedownloadFailed": "Pengunduhan Ulang Gagal",
"ConnectSettingsSummary": "Notifikasi, koneksi ke server/pemutar media, dan script khusus",
"AutoRedownloadFailed": "Pengunduhan Ulang Gagal",
"StatusEndedContinuing": "Berlanjut",
"AuthBasic": "Dasar (Popup Browser)",
"AuthForm": "Formulir (Halaman Masuk)",
"AuthenticationMethod": "Metode Autentikasi",
"AuthenticationMethodHelpTextWarning": "Silakan pilih metode autentikasi yang sah",
"AuthenticationRequired": "Autentikasi Diperlukan",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Konfirmasi sandi baru",
"AuthenticationRequiredPasswordHelpTextWarning": "Masukkan sandi baru",
"AuthenticationRequiredUsernameHelpTextWarning": "Masukkan nama pengguna baru",
"AuthenticationRequiredWarning": "Untuk mencegah akses jarak jauh tanpa autentikasi, {appName} kini mewajibkan pengaktifkan autentikasi. Kamu dapat menonaktifkan autentikasi dari jaringan lokal.",
"Enabled": "Aktif"
}

View File

@@ -1,5 +1,4 @@
{
"ApiKeyHelpTextWarning": "Krefst endurræsingar til að taka gildi",
"AnalyticsEnabledHelpTextWarning": "Krefst endurræsingar til að taka gildi",
"Backups": "Afrit",
"Clear": "Hreinsa",
@@ -16,7 +15,6 @@
"20MinutesTwenty": "120 mínútur: {0}",
"45MinutesFourtyFive": "60 mínútur: {0}",
"60MinutesSixty": "60 mínútur: {0}",
"APIKey": "API lykill",
"About": "Um það bil",
"AddListExclusion": "Bæta við lista útilokun",
"AddingTag": "Bætir við merki",
@@ -46,7 +44,7 @@
"Calendar": "Dagatal",
"CalendarWeekColumnHeaderHelpText": "Sýnt fyrir ofan hvern dálk þegar vikan er virka skjámyndin",
"Cancel": "Hætta við",
"CancelMessageText": "Ertu viss um að þú viljir hætta við þetta verkefni í bið?",
"CancelPendingTask": "Ertu viss um að þú viljir hætta við þetta verkefni í bið?",
"CertificateValidation": "Staðfesting skírteina",
"CertificateValidationHelpText": "Breyttu hversu ströng HTTPS vottun er",
"ChangeFileDate": "Breyttu dagsetningu skráar",
@@ -431,8 +429,8 @@
"UsenetDelay": "Seinkun Usenet",
"UsenetDelayHelpText": "Seinkaðu í nokkrar mínútur til að bíða áður en þú grípur losun frá Usenet",
"Username": "Notendanafn",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Útibú til að nota til að uppfæra Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Útibú notað af ytri uppfærslu",
"BranchUpdate": "Útibú til að nota til að uppfæra Radarr",
"BranchUpdateMechanism": "Útibú notað af ytri uppfærslu",
"Version": "Útgáfa",
"WeekColumnHeader": "Haus vikudálkur",
"Year": "Ár",
@@ -584,5 +582,64 @@
"RemoveSelectedItemQueueMessageText": "Ertu viss um að þú viljir fjarlægja {0} hlut {1} úr biðröðinni?",
"RemoveSelectedItemsQueueMessageText": "Ertu viss um að þú viljir fjarlægja {0} hlut {1} úr biðröðinni?",
"Required": "Nauðsynlegt",
"NoEventsFound": "Engir viðburðir fundust"
"NoEventsFound": "Engir viðburðir fundust",
"Events": "Viðburðir",
"FreeSpace": "Laust pláss",
"ApplyTagsHelpTextHowToApplyAuthors": "Hvernig á að setja merki á völdu kvikmyndirnar",
"NoChange": "Engin breyting",
"ExistingTag": "Núverandi merki",
"Small": "Lítil",
"Large": "Stór",
"LastDuration": "lastDuration",
"LastExecution": "Síðasta aftaka",
"NotificationStatusAllClientHealthCheckMessage": "Allir listar eru ekki tiltækir vegna bilana",
"RedownloadFailed": "Niðurhal mistókst",
"AutoRedownloadFailed": "Niðurhal mistókst",
"DeleteSelectedDownloadClients": "Eyða niðurhals viðskiptavinur",
"IndexerFlags": "Indexer fánar",
"LastWriteTime": "Síðasti skrifatími",
"NotificationStatusSingleClientHealthCheckMessage": "Listar ekki tiltækir vegna bilana: {0}",
"SetTags": "Settu merki",
"SomeResultsAreHiddenByTheAppliedFilter": "Sumar niðurstöður eru faldar af beittu síunni",
"DeleteSelectedIndexers": "Eyða Indexer",
"ExtraFileExtensionsHelpTextsExamples": "Dæmi: '.sub, .nfo' eða 'sub, nfo'",
"ExtraFileExtensionsHelpText": "Komma aðskilinn listi yfir auka skrár til að flytja inn (.nfo verður fluttur inn sem .nfo-orig)",
"ConnectionLost": "Tenging rofin",
"ConnectionLostReconnect": "Radarr mun reyna að tengjast sjálfkrafa eða þú getur smellt á endurhlaða hér að neðan.",
"Activity": "Virkni",
"ApplyTagsHelpTextAdd": "Bæta við: Bættu merkjum við núverandi lista yfir merki",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Hvernig á að setja merki á völdu kvikmyndirnar",
"Backup": "Afritun",
"AddNew": "Bæta við nýju",
"Location": "Staðsetning",
"ImportLists": "Listar",
"Ui": "HÍ",
"AllResultsAreHiddenByTheAppliedFilter": "Allar niðurstöður eru faldar af beittu síunni",
"RemovingTag": "Fjarlægir merkið",
"CustomFilter": "Sérsniðin síur",
"SourceTitle": "Heimildartitill",
"WhatsNew": "Hvað er nýtt?",
"ApplyTagsHelpTextHowToApplyImportLists": "Hvernig á að setja merki á völdu kvikmyndirnar",
"ApplyTagsHelpTextHowToApplyIndexers": "Hvernig á að setja merki á völdu kvikmyndirnar",
"ApplyTagsHelpTextRemove": "Fjarlægja: Fjarlægðu innsláttarmerkin",
"ApplyTagsHelpTextReplace": "Skipta um: Skiptu um merkin með innsláttu merkjunum (sláðu inn engin merki til að hreinsa öll merki)",
"FailedLoadingSearchResults": "Mistókst að hlaða leitarniðurstöður. Reyndu aftur.",
"InteractiveSearchModalHeader": "Gagnvirk leit",
"ListsSettingsSummary": "Listar",
"Medium": "Miðlungs",
"NextExecution": "Næsta framkvæmd",
"No": "Nei",
"NoResultsFound": "Engar niðurstöður fundust",
"RecentChanges": "Nýlegar breytingar",
"RemoveQueueItemConfirmation": "Ertu viss um að þú viljir fjarlægja {0} hlut {1} úr biðröðinni?",
"SelectDropdown": "'Veldu ...",
"SelectQuality": "Veldu Gæði",
"System": "Kerfi",
"TotalSpace": "Heildarrými",
"Yes": "Já",
"AuthForm": "Eyðublöð (Innskráningarsíða)",
"DisabledForLocalAddresses": "Óvirkt vegna heimilisfanga",
"Enabled": "Virkt",
"ApiKey": "API lykill",
"AuthBasic": "Grunn (sprettiglugga vafra)"
}

View File

@@ -3,10 +3,8 @@
"20MinutesTwenty": "20 Minuti: {0}",
"45MinutesFourtyFive": "45 Minuti: {0}",
"60MinutesSixty": "60 Minuti: {0}",
"APIKey": "Chiave API",
"About": "Info",
"AddingTag": "Aggiungendo etichetta",
"Fixed": "Fissato",
"Local": "Locale",
"Remove": "Rimuovi",
"Source": "Fonte",
@@ -17,13 +15,13 @@
"Usenet": "Usenet",
"UsenetDelay": "Ritardo della Usenet",
"UsenetDelayHelpText": "Minuti di attesa prima di prendere una release da Usenet",
"Username": "Nome utente",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Branch da utilizzare per aggiornare Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ramo utilizzato dal sistema di aggiornamento esterno",
"Username": "Nome Utente",
"BranchUpdate": "Branch da utilizzare per aggiornare Radarr",
"BranchUpdateMechanism": "Ramo utilizzato dal sistema di aggiornamento esterno",
"Version": "Versione",
"WeekColumnHeader": "Intestazione colonna settimana",
"Year": "Anno",
"YesCancel": "Si, Cancella",
"YesCancel": "Sì, Cancella",
"AgeWhenGrabbed": "Età (quando recuperato)",
"AlreadyInYourLibrary": "Già presente nella tua libreria",
"AlternateTitles": "Titolo alternativo",
@@ -32,25 +30,25 @@
"AppDataDirectory": "Cartella AppData",
"ApplyTags": "Applica Etichette",
"Authentication": "Autenticazione",
"AuthenticationMethodHelpText": "Utilizza nome utente e password per accedere a Readarr",
"AuthenticationMethodHelpText": "Utilizza nome utente e password per accedere a {appName}",
"AuthorClickToChangeBook": "Clicca per cambiare libro",
"AutoRedownloadFailedHelpText": "Cerca e prova a scaricare automaticamente un'altra versione",
"Automatic": "Automatico",
"BackupFolderHelpText": "I percorsi relativi saranno nella cartella AppData di Readarr",
"BackupNow": "Esegui backup ora",
"BackupRetentionHelpText": "I backup più vecchi del periodo specificato saranno cancellati automaticamente",
"Backups": "Backups",
"Backups": "Backup",
"BindAddress": "Indirizzo di Ascolto",
"BindAddressHelpText": "Indirizzi IP validi, localhost o '*' per tutte le interfacce",
"BindAddressHelpTextWarning": "Richiede il riavvio per avere effetto",
"BookIsDownloading": "Libro in download",
"BookIsDownloadingInterp": "Libro in download - {0}% {1}",
"Branch": "Ramo",
"Branch": "Branca",
"BypassProxyForLocalAddresses": "Evita il Proxy per gli Indirizzi Locali",
"Calendar": "Calendario",
"CalendarWeekColumnHeaderHelpText": "Mostra sopra ogni colonna quando la settimana è la vista attiva",
"Cancel": "Annulla",
"CancelMessageText": "Sei sicuro di voler cancellare questa operazione in sospeso?",
"CancelPendingTask": "Sei sicuro di voler cancellare questa operazione in sospeso?",
"CertificateValidation": "Convalida del Certificato",
"CertificateValidationHelpText": "Cambia quanto rigorosamente vengono validati i certificati HTTPS. Non cambiare senza conoscerne i rischi.",
"ChangeFileDate": "Cambiare la Data del File",
@@ -75,30 +73,30 @@
"CreateGroup": "Crea gruppo",
"CutoffHelpText": "Una volta raggiunta questa qualità, Radarr non scaricherà più film",
"CutoffUnmet": "Soglia Non Raggiunta",
"DatabaseMigration": "Migrazione DB",
"DatabaseMigration": "Migrazione Database",
"Dates": "Date",
"DelayProfile": "Profilo di Ritardo",
"DelayProfiles": "Profili di Ritardo",
"DelayingDownloadUntilInterp": "Ritardare il download fino al {0} a {1}",
"Delete": "Cancella",
"DeleteBackup": "Cancella Backup",
"DeleteBackupMessageText": "Sei sicuro di voler cancellare il backup '{0}'?",
"DeleteDelayProfile": "Cancella Profilo di Ritardo",
"DeleteDelayProfileMessageText": "Sei sicuro di voler cancellare questo profilo di ritardo?",
"DeleteBackupMessageText": "Sei sicuro di voler eliminare il backup '{name}'?",
"DeleteDelayProfile": "Elimina Profilo di Ritardo",
"DeleteDelayProfileMessageText": "Sei sicuro di volere eliminare questo profilo di ritardo?",
"DeleteDownloadClient": "Cancella Client di Download",
"DeleteDownloadClientMessageText": "Sei sicuro di voler eliminare il client di download '{0}'?",
"DeleteDownloadClientMessageText": "Sei sicuro di voler eliminare il client di download '{name}'?",
"DeleteEmptyFolders": "Cancella le cartelle vuote",
"DeleteEmptyFoldersHelpText": "Cancellare le cartelle vuote dei film durante la scansione del disco e quando i file di film vengono cancellati",
"DeleteImportListExclusion": "Rimuovi Esclusione dalla Lista Importazioni",
"DeleteImportListExclusionMessageText": "Sei sicuro di voler cancellare questa lista di esclusioni delle importazioni?",
"DeleteImportListMessageText": "Sei sicuro di voler eliminare la lista '{0}'?",
"DeleteImportListMessageText": "Sei sicuro di voler eliminare la lista '{name}'?",
"DeleteIndexer": "Cancella Indicizzatore",
"DeleteIndexerMessageText": "Sicuro di voler eliminare l'indicizzatore '{0}'?",
"DeleteMetadataProfileMessageText": "Sicuro di voler cancellare il profilo di qualità {0}",
"DeleteIndexerMessageText": "Sei sicuro di voler eliminare l'indicizzatore '{name}'?",
"DeleteMetadataProfileMessageText": "Sicuro di voler cancellare il profilo di qualità '{name}'?",
"DeleteNotification": "Cancella Notifica",
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{0}'?",
"DeleteQualityProfile": "Cancella il Profilo di Qualità",
"DeleteQualityProfileMessageText": "Sicuro di voler cancellare il profilo di qualità {0}",
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{name}'?",
"DeleteQualityProfile": "Elimina Profilo Qualità",
"DeleteQualityProfileMessageText": "Sicuro di voler cancellare il profilo di qualità '{name}'?",
"DeleteReleaseProfile": "Cancellare il profilo di ritardo",
"DeleteReleaseProfileMessageText": "Sei sicuro di voler cancellare questo profilo di ritardo?",
"DeleteSelectedBookFiles": "Cancellare i film selezionati",
@@ -107,7 +105,7 @@
"DeleteTagMessageText": "Sei sicuro di voler eliminare l'etichetta '{0}'?",
"DestinationPath": "Percorso di Destinazione",
"DetailedProgressBar": "Barra di Avanzamento Dettagliata",
"DiskSpace": "Spazio su Disco",
"DiskSpace": "Spazio sul Disco",
"Docker": "Docker",
"DownloadClient": "Client di Download",
"DownloadClientSettings": "Impostazioni del Client di Download",
@@ -119,11 +117,11 @@
"Edit": "Modifica",
"Edition": "Edizione",
"Enable": "Abilita",
"EnableAutomaticAdd": "Attiva l'Aggiunta Automatica",
"EnableAutomaticAdd": "Abilita Aggiunta Automatica",
"EnableAutomaticSearch": "Attiva la Ricerca Automatica",
"EnableColorImpairedMode": "Abilita la Modalità Daltonismo",
"EnableColorImpairedModeHelpText": "Stile alterato per permettere agli utenti daltonici di distinguere meglio le informazioni codificate a colori",
"EnableCompletedDownloadHandlingHelpText": "Importa automaticamente i download completati dai client di download",
"EnableCompletedDownloadHandlingHelpText": "Importa automaticamente i download completati dal client di download",
"EnableHelpText": "Abilita la creazione del file di metadati per questo tipo di metadati",
"EnableInteractiveSearch": "Abilita la Ricerca Interattiva",
"EnableRSS": "Abilita RSS",
@@ -135,11 +133,11 @@
"Exception": "Eccezione",
"FailedDownloadHandling": "Gestione dei Download Falliti",
"FileDateHelpText": "Modifica la data dei file in importazione/rescan",
"FileManagement": "Gestione dei File",
"FileManagement": "Gestione File",
"FileNames": "Nomi file",
"Filename": "Nome del File",
"Files": "File",
"FirstDayOfWeek": "Primo giorno della settimana",
"FirstDayOfWeek": "Primo Giorno della Settimana",
"Folder": "Cartella",
"Folders": "Cartelle",
"ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Per maggiori informazioni sui singoli Indexer clicca sul pulsante info.",
@@ -172,7 +170,7 @@
"ImportExtraFilesHelpText": "Importa file Extra corrispondenti (sottotitoli, nfo, ecc) dopo aver importato un film",
"ImportFailedInterp": "Importazione fallita: {0}",
"ImportedTo": "Importato verso",
"Importing": "Importazione",
"Importing": "Importando",
"IncludeHealthWarningsHelpText": "Includi gli avvisi di salute",
"IncludeUnknownAuthorItemsHelpText": "Mostra le voci senza un film nella coda. Ciò potrebbe include film spostati o altro nelle categorie di Radarr",
"IncludeUnmonitored": "Includi non Monitorati",
@@ -198,28 +196,28 @@
"MarkAsFailed": "Segna come fallito",
"MarkAsFailedMessageText": "Sei sicuro di voler segnare '{0}' come fallito?",
"MaximumLimits": "Limiti massimi",
"MaximumSize": "Dimensione massima",
"MaximumSize": "Dimensione Massima",
"MaximumSizeHelpText": "La dimensione massima in MB di una release affinchè sia presa, imposta zero per illimitata",
"Mechanism": "Meccanismo",
"MediaInfo": "Info Media",
"MediaManagementSettings": "Impostazione gestione Media",
"Message": "Messaggio",
"MetadataSettings": "Impostazioni Metadati",
"MinimumAge": "Età minima",
"MinimumAge": "Età Minima",
"MinimumAgeHelpText": "Solo Usenet: Età minima in minuti di NZB prima di essere prelevati. Usalo per dare tempo alle nuove release di propagarsi al vostro provider usenet.",
"MinimumFreeSpace": "Spazio libero minimo",
"MinimumFreeSpaceWhenImportingHelpText": "Previeni l'importazione se resterebbe uno spazio libero inferiore a questo",
"MinimumLimits": "Limiti minimi",
"Missing": "Mancante",
"Mode": "Modo",
"Mode": "Modalità",
"Monitored": "Monitorato",
"MoreInfo": "Maggiori Info",
"MustContain": "Deve contenere",
"MustNotContain": "Non deve contenere",
"MoreInfo": "Ulteriori Informazioni",
"MustContain": "Deve Contenere",
"MustNotContain": "Non Deve Contenere",
"Name": "Nome",
"NamingSettings": "Impostazioni di denominazione",
"New": "Nuovo",
"NoBackupsAreAvailable": "Nessun Backup disponibile",
"NoBackupsAreAvailable": "Nessun backup disponibile",
"NoHistory": "Nessuna Storia",
"NoLeaveIt": "No, Lascialo",
"NoLimitForAnyRuntime": "Nessun limite di durata",
@@ -232,7 +230,7 @@
"OnHealthIssueHelpText": "Quando c'è un problema",
"OnRenameHelpText": "Durante la rinomina",
"OnUpgradeHelpText": "In aggiornamento",
"OpenBrowserOnStart": "Apri il browser all'avvio",
"OpenBrowserOnStart": "Apri browser all'avvio",
"Options": "Opzioni",
"Original": "Originale",
"Overview": "Panoramica",
@@ -244,8 +242,8 @@
"Permissions": "Permessi",
"Port": "Porta",
"PortHelpTextWarning": "Richiede il riavvio per avere effetti",
"PortNumber": "Numero di porta",
"PosterSize": "Dimensione del poster",
"PortNumber": "Numero Porta",
"PosterSize": "Dimensioni Locandina",
"PreviewRename": "Anteprima Rinomina",
"Profiles": "Profili",
"Proper": "Proper",
@@ -253,19 +251,19 @@
"Protocol": "Protocollo",
"ProtocolHelpText": "Scegli che protocollo(i) usare e quale è preferito quando si deve scegliere tra release altrimenti uguali",
"Proxy": "Proxy",
"ProxyBypassFilterHelpText": "Usa ',' come separatore, e '*.' come jolly per i sottodomini",
"ProxyType": "Tipo di Proxy",
"ProxyBypassFilterHelpText": "Usa ',' come separatore, e '*.' come wildcard per i sottodomini",
"ProxyType": "Tipo Proxy",
"ProxyUsernameHelpText": "Devi inserire nome utente e password solo se richiesto. Altrimenti lascia vuoto.",
"PublishedDate": "Data di pubblicazione",
"PublishedDate": "Data Pubblicazione",
"Quality": "Qualità",
"QualityDefinitions": "Definizioni delle Qualità",
"QualityProfile": "Profilo di Qualità",
"QualityProfiles": "Profili di Qualità",
"QualitySettings": "Impostazione di Qualità",
"QualityProfile": "Profilo Qualità",
"QualityProfiles": "Profili Qualità",
"QualitySettings": "Impostazioni Qualità",
"Queue": "Coda",
"RSSSync": "Sync RSS",
"RSSSyncInterval": "Intervallo di Sync RSS",
"ReadTheWikiForMoreInformation": "Leggi la Wiki per maggiori informazioni",
"ReadTheWikiForMoreInformation": "Leggi la Wiki per più informazioni",
"ReadarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "Radarr supporta qualunque indexer che usi gli standard Newznab, cosi come gli altri Indexer sotto.",
"ReadarrTags": "Tag di Radarr",
"Real": "Reale",
@@ -274,7 +272,7 @@
"RecycleBinCleanupDaysHelpTextWarning": "I file nel cestino più vecchi del numero selezionato di giorni saranno eliminati automaticamente",
"RecycleBinHelpText": "I file dei film andranno qui quando cancellati invece che venire eliminati definitivamente",
"RecyclingBin": "Cestino",
"RecyclingBinCleanup": "Pulizia del cestino",
"RecyclingBinCleanup": "Pulizia Cestino",
"Redownload": "Riscarica",
"Refresh": "Aggiorna",
"RefreshInformationAndScanDisk": "Aggiorna le informazioni e scansiona il disco",
@@ -301,11 +299,11 @@
"RequiredPlaceHolder": "Aggiungi una nuova restrizione",
"RescanAfterRefreshHelpTextWarning": "Radarr non identificherà in automatico i cambiamenti ai file quando non impostato a \"Sempre\"",
"RescanAuthorFolderAfterRefresh": "Riscansiona la cartella del Film dopo il refresh",
"Reset": "Resetta",
"Reset": "Reimposta",
"ResetAPIKey": "Resetta la Chiave API",
"ResetAPIKeyMessageText": "Sei sicuro di voler reimpostare la tua chiave API?",
"Restart": "Riavvia",
"RestartNow": "Riavvia adesso",
"RestartNow": "Riavvia ora",
"RestartReadarr": "Riavvia Radarr",
"Restore": "Ripristina",
"RestoreBackup": "Ripristina Backup",
@@ -319,24 +317,24 @@
"SSLCertPassword": "Password Certificato SSL",
"SSLCertPath": "Percorso Certificato SSL",
"SSLPort": "Porta SSL",
"Scheduled": "Programmato",
"Scheduled": "Pianificato",
"ScriptPath": "Percorso dello script",
"Search": "Cerca",
"SearchAll": "Cerca Tutto",
"SearchForMissing": "Cerca i film mancanti",
"SearchSelected": "Cerca il film selezionato",
"Search": "Ricerca",
"SearchAll": "Ricerca tutto",
"SearchForMissing": "Ricerca dei Mancanti",
"SearchSelected": "Ricerca Selezionate",
"Security": "Sicurezza",
"SendAnonymousUsageData": "Invia dati anonimi sull'uso",
"SetPermissions": "Imposta permessi",
"SetPermissions": "Imposta Permessi",
"SetPermissionsLinuxHelpText": "Eseguire chmod quando i file sono importati/rinominati?",
"SetPermissionsLinuxHelpTextWarning": "Se non sei sicuro di cosa facciano queste impostazioni, non cambiarle.",
"Settings": "Impostazioni",
"ShortDateFormat": "Formato Data Corto",
"ShowCutoffUnmetIconHelpText": "Mostra l'icona dei file quando il taglio non è stato raggiunto",
"ShowDateAdded": "Mostra data di aggiunta",
"ShowDateAdded": "Mostra Data Aggiunta",
"ShowMonitored": "Mostra i monitorati",
"ShowMonitoredHelpText": "Mostra lo stato Monitorato sotto il poster",
"ShowPath": "Mostra percorso",
"ShowPath": "Mostra Percorso",
"ShowQualityProfile": "Mostra Profilo Qualità",
"ShowQualityProfileHelpText": "Mostra profilo qualità sotto il poster",
"ShowRelativeDates": "Mostra date relative",
@@ -356,7 +354,7 @@
"SslPortHelpTextWarning": "Richiede il riavvio per avere effetti",
"StandardBookFormat": "Formato Film Standard",
"StartTypingOrSelectAPathBelow": "Comincia a digitare o seleziona un percorso sotto",
"StartupDirectory": "Cartella di avvio",
"StartupDirectory": "Cartella di Avvio",
"Status": "Stato",
"StatusEndedEnded": "Finito",
"Style": "Stile",
@@ -368,17 +366,17 @@
"SupportsSearchvalueWillBeUsedWhenInteractiveSearchIsUsed": "Verrà usato durante la ricerca interattiva",
"TagIsNotUsedAndCanBeDeleted": "L'etichetta non è in uso e può essere eliminata",
"Tasks": "Attività",
"TestAll": "Prova Tutti",
"TestAll": "Prova Tutto",
"TestAllClients": "Testa tutti i client",
"TestAllIndexers": "Prova tutti gli indicizzatori",
"TestAllLists": "Testa tutte le liste",
"ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Questo verrà applicato a tutti gli indexer, segui le regole impostate da loro",
"TimeFormat": "Formato orario",
"TimeFormat": "Formato Orario",
"Title": "Titolo",
"TorrentDelay": "Ritardo del torrent",
"TorrentDelayHelpText": "Ritardo in minuti da aspettare prima di prendere un torrent",
"Torrents": "Torrents",
"TotalFileSize": "Dimensione totale dei file",
"TotalFileSize": "Totale Dimensione File",
"UILanguage": "Lingua dell'Interfaccia",
"UILanguageHelpText": "Lingua che Radarr userà per la UI",
"UILanguageHelpTextWarning": "Ricaricamento del browser richiesto",
@@ -426,7 +424,6 @@
"Updates": "Aggiornamenti",
"UrlBaseHelpTextWarning": "Richiede il riavvio per avere effetti",
"AnalyticsEnabledHelpTextWarning": "Richiede il riavvio per avere effetto",
"ApiKeyHelpTextWarning": "Richiede il riavvio per avere effetto",
"DeleteRootFolderMessageText": "Sei sicuro di voler eliminare l'indexer '{0}'?",
"LoadingBooksFailed": "Caricamento dei file del Film fallito",
"ProxyPasswordHelpText": "Devi inserire nome utente e password solo se richiesto. Altrimenti lascia vuoto.",
@@ -437,7 +434,7 @@
"MaintenanceRelease": "Release di Manutenzione: correzione di bug e altri miglioramenti. Vedi la storia dei Commit su Github per maggiori dettagli",
"OutputPath": "Percorso di Destinazione",
"ReplaceIllegalCharactersHelpText": "Sostituisci i caratteri non consentiti. Se non selezionato, Radarr invece li rimuoverà",
"Progress": "Avanzamento",
"Progress": "Progressi",
"Actions": "Azioni",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "I libri cancellati dal disco sono automaticamente non monitorati in Readarr",
"BookAvailableButMissing": "Libro Disponibile, ma Mancante",
@@ -453,7 +450,7 @@
"Tomorrow": "Domani",
"CloneIndexer": "Copia Indicizzatore",
"RemoveFromBlocklist": "Rimuovi della blacklist",
"Time": "Ora",
"Time": "Orario",
"Label": "Etichetta",
"UnableToLoadBlocklist": "Non riesco a caricare la BlackList",
"Component": "Componente",
@@ -522,15 +519,15 @@
"IndexerSearchCheckNoInteractiveMessage": "Non è disponibile nessun indexer con abilitata la Ricerca Interattiva, Radarr non fornirà nessun risultato tramite la ricerca interattiva",
"IndexerStatusCheckAllClientMessage": "Nessun Indicizzatore disponibile a causa di errori",
"IndexerStatusCheckSingleClientMessage": "Indicizzatori non disponibili a causa di errori: {0}",
"Metadata": "Metadata",
"Metadata": "Metadati",
"Monitor": "Segui",
"MountCheckMessage": "La destinazione contenente il percorso di un film è montata in sola lettura: ",
"OnGrab": "Al Prelievo",
"ProxyCheckBadRequestMessage": "Il test del proxy è fallito. Codice Stato: {0}",
"ProxyCheckFailedToTestMessage": "Test del proxy fallito: {0}",
"QualitySettingsSummary": "Dimensioni delle qualità e denominazione",
"Queued": "In coda",
"RefreshAndScan": "Aggiorna e Scansiona",
"Queued": "In Coda",
"RefreshAndScan": "Aggiorna & Scansiona",
"RemotePathMappingCheckBadDockerPath": "Stai utilizzando docker; Il client di download {0} mette i download in {1} ma questo non è un percorso valido {2}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download.",
"RemotePathMappingCheckDockerFolderMissing": "Stai utilizzando docker; il download client {0} riporta files in {1} ma questa directory non sembra esistere nel contenitore. Controlla la mappa dei percorsi remoti e le impostazioni dei volumi del container.",
"RemotePathMappingCheckGenericPermissions": "Il download client {0} mette i files in {1} ma Radarr non può vedere questa directory. Potrebbe essere necessario aggiustare i permessi della cartella.",
@@ -538,7 +535,7 @@
"QueueIsEmpty": "La coda è vuota",
"RemotePathMappingCheckWrongOSPath": "Stai utilizzando docker; Il client di download {0} mette i download in {1} ma questo non è un percorso valido {2}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download.",
"RootFolderCheckSingleMessage": "Cartella radice mancante: {0}",
"TimeLeft": "Tempo Rimanente",
"TimeLeft": "Tempo Rimasto",
"BackupIntervalHelpText": "Intervallo per eseguire il backup del DB e delle impostazioni di Readarr",
"ConnectSettingsSummary": "Notifiche, collegamenti a media server/player e script personalizzati",
"FailedToLoadQueue": "Impossibile caricare la coda",
@@ -597,7 +594,7 @@
"Publisher": "Editore",
"RenameFiles": "Rinomina File",
"Series": "Serie",
"Test": "Test",
"Test": "Prova",
"InstanceName": "Nome Istanza",
"InstanceNameHelpText": "Nome istanza nella scheda e per il nome dell'app nel Syslog",
"LogRotateHelpText": "Numero massimo di file di log da tenere salvati nella cartella log",
@@ -614,7 +611,7 @@
"ChownGroup": "Gruppo chown",
"DiscNumber": "Numero Disco",
"DeleteImportList": "Cancella la lista di importazione",
"DeleteRootFolder": "Cancella la cartella principale",
"DeleteRootFolder": "Elimina Cartella Radice",
"CalibreSettings": "Impostazioni di Calibre",
"Started": "Iniziato",
"CalibreContentServer": "Server di Contenuto Calibre",
@@ -641,10 +638,10 @@
"ChooseImportMethod": "Selezionare Metodo di Importazione",
"ClickToChangeReleaseGroup": "Clicca per cambiare gruppo di rilascio",
"HardlinkCopyFiles": "Hardlink/Copia Files",
"MoveFiles": "Sposta Files",
"MoveFiles": "Sposta File",
"OnApplicationUpdate": "All'aggiornamento dell'applicazione",
"OnApplicationUpdateHelpText": "All'aggiornamento dell'applicazione",
"ThemeHelpText": "Cambia il Tema dell'interfaccia dellapplicazione, il Tema 'Auto' userà il suo Tema di Sistema per impostare la modalità Chiara o Scura. Ispirato da {0}",
"ThemeHelpText": "Cambia il Tema dell'interfaccia dellapplicazione, il Tema 'Auto' userà il suo Tema di Sistema per impostare la modalità Chiara o Scura. Ispirato da Theme.Park",
"BypassIfHighestQuality": "Aggira se è di Qualità Massima",
"CustomFormatScore": "Formato Personalizzato Punteggio",
"MinimumCustomFormatScore": "Punteggio formato personalizzato minimo",
@@ -654,7 +651,7 @@
"CustomFormats": "Formati Personalizzati",
"CutoffFormatScoreHelpText": "Una volta raggiunto questo formato personalizzato, Radarr non scaricherà più i film",
"DeleteCustomFormat": "Cancella Formato Personalizzato",
"DeleteCustomFormatMessageText": "Sei sicuro di voler eliminare il formato personalizzato '{0}'?",
"DeleteCustomFormatMessageText": "Sei sicuro di voler eliminare il formato personalizzato '{name}'?",
"DeleteFormatMessageText": "Sei sicuro di voler cancellare il formato etichetta {0} ?",
"ExportCustomFormat": "Esporta formato personalizzato",
"Formats": "Formati",
@@ -680,14 +677,14 @@
"RemoveSelectedItem": "Rimuovi elemento selezionato",
"ApplyTagsHelpTextReplace": "Sostituire: Sostituisce le etichette con quelle inserite (non inserire nessuna etichette per eliminarle tutte)",
"ApplyTagsHelpTextHowToApplyAuthors": "Come applicare etichette agli indicizzatori selezionati",
"CountIndexersSelected": "{0} indicizzatore(i) selezionato(i)",
"CountIndexersSelected": "{selectedCount} indicizzatori selezionati",
"No": "No",
"NoChange": "Nessuna Modifica",
"NoChange": "Nessun Cambio",
"RemoveCompleted": "Rimuovi completati",
"RemoveSelectedItemQueueMessageText": "Sei sicuro di voler rimuovere {0} dalla coda?",
"Yes": "Si",
"RemoveSelectedItemQueueMessageText": "Sei sicuro di voler rimuovere 1 elemento dalla coda?",
"Yes": "Sì",
"BlocklistReleases": "Blocca questa Release",
"DeleteConditionMessageText": "Sei sicuro di voler eliminare l'etichetta '{0}'?",
"DeleteConditionMessageText": "Sei sicuro di voler eliminare l'etichetta '{name}'?",
"Required": "necessario",
"Negated": "Negato",
"RemoveDownloadsAlert": "Le impostazioni per la rimozione sono stati spostati nelle impostazioni individuali dei Client di Download nella tabella sopra.",
@@ -701,11 +698,10 @@
"BlocklistReleaseHelpText": "Impedisci a Lidarr di re-acquisire automaticamente questa versione",
"DeleteRemotePathMapping": "Elimina la Mappatura dei Percorsi Remoti",
"DeleteSelectedDownloadClients": "Cancella i Client di Download",
"DeleteSelectedDownloadClientsMessageText": "Sei sicuro di voler eliminare l'indexer '{0}'?",
"DeleteSelectedDownloadClientsMessageText": "Sei sicuro di voler eliminare i '{count}' client di download selezionato/i?",
"DeleteSelectedImportLists": "Cancella la lista di importazione",
"DeleteSelectedImportListsMessageText": "Sei sicuro di voler eliminare l'indexer '{0}'?",
"DeleteSelectedIndexers": "Cancella Indexer",
"DeleteSelectedIndexersMessageText": "Sei sicuro di voler eliminare l'indexer '{0}'?",
"DeleteSelectedIndexers": "Elimina Indicizzatore/i",
"DownloadClientTagHelpText": "Usa questo indicizzatore per i film con almeno un tag corrispondente. Lascia in bianco per usarlo con tutti i film.",
"ExistingTag": "Etichetta esistente",
"NoEventsFound": "Nessun evento trovato",
@@ -729,5 +725,180 @@
"AppUpdated": "{appName} Aggiornato",
"AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato",
"AutoRedownloadFailed": "Download fallito",
"AddListExclusion": "Aggiungi elenco esclusioni"
"AddListExclusion": "Aggiungi Lista esclusioni",
"Location": "Posizione",
"ListsSettingsSummary": "Liste",
"RecentChanges": "Cambiamenti Recenti",
"IndexerFlags": "Flags dell'Indicizzatore",
"ExtraFileExtensionsHelpText": "Liste di file Extra da importare separate da virgola (.nfo saranno importate come .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Esempi: '.sub, .nfo' or 'sub,nfo'",
"Large": "Grande",
"LastDuration": "Ultima Durata",
"LastExecution": "Ultima esecuzione",
"System": "Sistema",
"TotalSpace": "Totale Spazio",
"LastWriteTime": "Orario di Ultima Scrittura",
"NotificationStatusSingleClientHealthCheckMessage": "Applicazioni non disponibili a causa di errori: {0}",
"Small": "Piccolo",
"Events": "Eventi",
"FreeSpace": "Spazio Libero",
"ConnectionLostToBackend": "{appName} ha perso la connessione al backend e dovrà essere ricaricato per ripristinare la funzionalità.",
"NoResultsFound": "nessun risultato trovato",
"SourceTitle": "Titolo Sorgente",
"NextExecution": "Prossima esecuzione",
"SelectDropdown": "Seleziona...",
"AppUpdatedVersion": "{appName} è stato aggiornato alla versione `{version}`, per vedere le modifiche devi ricaricare {appName}",
"ConnectionLostReconnect": "{appName} cercherà di connettersi automaticamente, oppure clicca su ricarica qui sotto.",
"CustomFilter": "Filtro Personalizzato",
"FailedLoadingSearchResults": "Caricamento dei risultati della ricerca fallito, prova ancora.",
"ImportLists": "Liste",
"InteractiveSearchModalHeader": "Ricerca interattiva",
"Library": "Libreria",
"Medium": "medio",
"NotificationStatusAllClientHealthCheckMessage": "Tutte le applicazioni non sono disponibili a causa di errori",
"ReleaseProfiles": "profilo release",
"RemoveQueueItemConfirmation": "Sei sicuro di voler rimuovere '{sourceTitle}' dalla coda?",
"SelectQuality": "Seleziona Qualità",
"SomeResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dai filtri applicati",
"Ui": "Interfaccia",
"WhatsNew": "Cosa c'è di nuovo?",
"RemotePathMappingCheckFilesLocalWrongOSPath": "Stai utilizzando docker; Il client di download {downloadClientName} riporta files in {path} ma questo non è un percorso valido {osName}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download.",
"RemotePathMappingCheckLocalWrongOSPath": "Stai utilizzando docker; Il client di download {downloadClientName} mette i download in {path} ma questo non è un percorso valido {osName}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download.",
"CalibreContentServerText": "L'utilizzo di un Server di Contenuto Calibre (non Calibre Web) permette a Readarr di aggiungere libri alla tua libreria Calibre e di innescare conversioni tra formati",
"ApiKey": "Chiavi API",
"AuthBasic": "Base (Popup del Browser)",
"AuthForm": "Form (Pagina di Login)",
"AuthenticationMethod": "Metodo di Autenticazione",
"AuthenticationMethodHelpTextWarning": "Selezione un metodo di autenticazione valido",
"AuthenticationRequired": "Autenticazione richiesta",
"AuthenticationRequiredHelpText": "Cambia a quali richieste l'autenticazione verrà chiesta. Non cambiare se non comprendi i rischi.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Conferma la nuova password",
"AuthenticationRequiredPasswordHelpTextWarning": "Inserisci la nuova password",
"AuthenticationRequiredUsernameHelpTextWarning": "Inserisci username",
"AuthenticationRequiredWarning": "Per prevenire accessi remoti non autorizzati, {appName} da ora richiede che l'autenticazione sia abilitata. Opzionalmente puoi disabilitare l'autenticazione per gli indirizzi di rete locali.",
"DisabledForLocalAddresses": "Disabilitato per Indirizzi Locali",
"Enabled": "Abilitato",
"ChangeCategory": "Cambia Categoria",
"WouldYouLikeToRestoreBackup": "Vuoi ripristinare il backup '{name}'?",
"BlocklistAndSearch": "Lista dei Blocchi e Ricerca",
"ManageIndexers": "Gestisci Indicizzatori",
"NotificationsSettingsUseSslHelpText": "Connetti a {serviceName} tramite HTTPS indece di HTTP",
"RemoveMultipleFromDownloadClientHint": "Rimuovi i download e i file dal client di download",
"NoIndexersFound": "Nessun indicizzatore trovato",
"RemoveFailedDownloads": "Rimuovi Download Falliti",
"NotificationsPlexSettingsAuthenticateWithPlexTv": "Autentica con Plex.tv",
"ManageLists": "Gestisci Liste",
"NotificationsSettingsUpdateLibrary": "Aggiorna Libreria",
"PasswordConfirmation": "Conferma Password",
"RemoveCompletedDownloads": "Rimuovi Download Completati",
"RemoveFromDownloadClientHint": "Rimuovi il download e i file dal client di download",
"RemoveQueueItem": "Rimuovi - {sourceTitle}",
"NoMissingItems": "Nessun elemento mancante",
"IsShowingMonitoredUnmonitorSelected": "Monitora Selezionati",
"IsShowingMonitoredMonitorSelected": "Monitora Selezionati",
"WriteTagsNo": "Mai",
"DeleteSelectedIndexersMessageText": "Sei sicuro di voler eliminare {count} applicazione(i) selezionata(e)?",
"Loading": "Caricamento",
"CountDownloadClientsSelected": "{selectedCount} client di download selezionato/i",
"NoDownloadClientsFound": "Nessun client di download trovato",
"SizeLimit": "Limite Dimensione",
"CustomFormatsSpecificationRegularExpression": "Espressione Regolare",
"InvalidUILanguage": "L'interfaccia è impostata in una lingua non valida, correggi e salva le tue impostazioni",
"LabelIsRequired": "Etichetta richiesta",
"IgnoreDownload": "Ignora Download",
"Implementation": "Implementazione",
"External": "Esterno",
"IgnoreDownloads": "Ignora Download",
"ThereWasAnErrorLoadingThisItem": "Si è verificato un errore caricando questo elemento",
"ThereWasAnErrorLoadingThisPage": "Si è verificato un errore caricando questa pagina",
"MinPagesHelpText": "Ignora libri con meno pagine di questo",
"SearchForAllMissingBooks": "Ricerca tutti i film mancanti",
"MinimumPopularity": "Popolarità Minima",
"MinimumPages": "Pagine Minime",
"MissingBooksAuthorNotMonitored": "Libri Mancanti (Autore non monitorato)",
"LatestBook": "Ultimo Libro",
"MissingBooks": "Libri Mancanti",
"MissingBooksAuthorMonitored": "Libri Mancanti (Autore monitorato)",
"SearchMonitored": "Ricerca Monitorate",
"MonitorExistingBooks": "Monitora Libri Esistenti",
"FutureBooks": "Libri Futuri",
"PastDays": "Giorni Scorsi",
"DeleteSelected": "Elimina Selezionati",
"MassBookSearch": "Ricerca Massiva di Libri",
"RefreshAuthor": "Aggiorna Autore",
"NoName": "Non mostrare il nome",
"SearchBook": "Ricerca Libro",
"SendMetadataToCalibre": "Invia Metadati a Calibre",
"DataNewNone": "Non monitorare nessun nuovo libro",
"MusicBrainzAuthorID": "ID Autore MusicBrainz",
"SearchForMonitoredBooks": "Ricerca libri monitorati",
"CountAuthorsSelected": "{selectedCount} autore/i selezionato/i",
"DataListMonitorNone": "Non monitorare autori o libri",
"EditionsHelpText": "Cambia edizione per questo libro",
"DataNewAllBooks": "Monitora tutti i libri nuovi",
"EntityName": "Nome Entità",
"MonitorAuthor": "Monitora Autore",
"ExistingItems": "Elementi Esistenti",
"ExistingBooks": "Libri Esistenti",
"SearchBoxPlaceHolder": "es. Guerra e Pace, goodreads:656, isbn:067003469X, asin:B00JCDK5ME",
"RefreshInformation": "Aggiorna informazioni",
"RenameBooks": "Rinomina Libri",
"MonitorNewItemsHelpText": "Quale libri nuovi dovrebbero essere monitorati",
"DataAllBooks": "Monitora tutti i libri",
"DataNone": "Nessun libro sarà monitorato",
"DeleteFormat": "Elimina Formato",
"Development": "Sviluppo",
"HasMonitoredBooksNoMonitoredBooksForThisAuthor": "Nessun libro monitorato per questo autore",
"IsExpandedShowBooks": "Mostra libri",
"MinPopularityHelpText": "La Popolarità è il voto medio * numero di voti",
"FileDetails": "Dettagli File",
"FilterAuthor": "Filtra Autore",
"ISBN": "ISBN",
"EditAuthor": "Modifica Autore",
"EditSelectedIndexers": "Modifica Indicizzatori Selezionati",
"IsExpandedHideFileInfo": "Nascondi info file",
"LogSQL": "Log SQL",
"MusicbrainzId": "ID MusicBrainz",
"MonitoredAuthorIsUnmonitored": "Autore non monitorato",
"Monitoring": "Monitorando",
"BookProgressBarText": "{bookCount} / {totalBookCount} (File: {bookFileCount})",
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Totale: {totalBookCount}, File: {bookFileCount})",
"ErrorLoadingContent": "Si è verificato un errore caricando questo contenuto",
"ConvertToFormat": "Converti Al Formato",
"EditBook": "Modifica Libro",
"FilterPlaceHolder": "Filtra Libro",
"FirstBook": "Primo Libro",
"IndexerSettingsSeedRatio": "Rapporto Seed",
"Bookshelf": "Libreria",
"ItsEasyToAddANewAuthorOrBookJustStartTypingTheNameOfTheItemYouWantToAdd": "È semplice aggiungere un Nuovo Autore o Libro solamente iniziando a digitare il nome dell'elemento che vuoi aggiungere",
"SelectEdition": "Seleziona Edizione",
"FutureDays": "Giorni Futuri",
"HideBooks": "Nascondi libri",
"IgnoreDeletedBooks": "Ignore Libri Eliminati",
"ManageClients": "Gestisci Clients",
"ManageDownloadClients": "Gestisci Clients di Download",
"IsExpandedHideBooks": "Nascondi libri",
"IsExpandedShowFileInfo": "Mostra info file",
"ManualDownload": "Download Manuale",
"MetadataSource": "Fonte Metadati",
"MetadataSourceHelpText": "Fonte Alternativa Metadati (Lascia bianco per predefinito)",
"Other": "Altri",
"MonitorBook": "Monitora Libro",
"MonitorNewBooks": "Monitora Libri Nuovi",
"MonitorNewItems": "Monitora Libri Nuovi",
"MonitoredAuthorIsMonitored": "Autore monitorato",
"MusicBrainzBookID": "ID Libro MusicBrainz",
"NETCore": ".NET Core",
"NewBooks": "Nuovi Libri",
"RefreshBook": "Aggiorna Libro",
"ResetTitles": "Reimposta Titoli",
"RemoveQueueItemRemovalMethod": "Metodo di Rimozione",
"SelectBook": "Seleziona Libro",
"SelectedCountAuthorsSelectedInterp": "{0} Autore/i Selezionato/i",
"ShouldMonitorExisting": "Monitora Libri Esistenti",
"UseSSL": "Usa SSL",
"Fixed": "Fissato",
"MusicBrainzTrackID": "ID Libro MusicBrainz",
"CountImportListsSelected": "{selectedCount} autore/i selezionato/i",
"DownloadClientDelugeSettingsDirectory": "Cartella Download"
}

View File

@@ -3,7 +3,6 @@
"20MinutesTwenty": "60分{0}",
"45MinutesFourtyFive": "60分{0}",
"About": "約",
"ApiKeyHelpTextWarning": "有効にするには再起動が必要です",
"AnalyticsEnabledHelpTextWarning": "有効にするには再起動が必要です",
"DeleteRootFolderMessageText": "インデクサー「{0}」を削除してもよろしいですか?",
"DeleteDelayProfile": "遅延プロファイルの削除",
@@ -321,7 +320,6 @@
"SearchSelected": "選択した検索",
"Security": "セキュリティ",
"60MinutesSixty": "60分{0}",
"APIKey": "APIキー",
"AddListExclusion": "リストの除外を追加",
"AddingTag": "タグの追加",
"AgeWhenGrabbed": "年齢(つかんだとき)",
@@ -351,7 +349,7 @@
"Calendar": "カレンダー",
"CalendarWeekColumnHeaderHelpText": "週がアクティブビューの場合、各列の上に表示されます",
"Cancel": "キャンセル",
"CancelMessageText": "この保留中のタスクをキャンセルしてもよろしいですか?",
"CancelPendingTask": "この保留中のタスクをキャンセルしてもよろしいですか?",
"CertificateValidation": "証明書の検証",
"CertificateValidationHelpText": "HTTPS認証検証の厳密さを変更する",
"ChangeFileDate": "ファイルの日付を変更する",
@@ -431,8 +429,8 @@
"UsenetDelay": "Usenet遅延",
"UsenetDelayHelpText": "Usenetからリリースを取得する前に待機するために数分遅れます",
"Username": "ユーザー名",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Radarrの更新に使用するブランチ",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "外部更新メカニズムで使用されるブランチ",
"BranchUpdate": "Radarrの更新に使用するブランチ",
"BranchUpdateMechanism": "外部更新メカニズムで使用されるブランチ",
"Version": "バージョン",
"WeekColumnHeader": "週の列ヘッダー",
"Year": "年",
@@ -634,5 +632,13 @@
"CustomFilter": "カスタムフィルター",
"RemoveQueueItemConfirmation": "キューから{0}アイテム{1}を削除してもよろしいですか?",
"SourceTitle": "ソースタイトル",
"AutoRedownloadFailed": "ダウンロードに失敗しました"
"AutoRedownloadFailed": "ダウンロードに失敗しました",
"FailedLoadingSearchResults": "検索結果の読み込みに失敗しました。もう一度お試しください。",
"IndexerFlags": "インデクサフラグ",
"InteractiveSearchModalHeader": "インタラクティブ検索",
"AuthForm": "フォーム(ログインページ)",
"Enabled": "有効",
"ApiKey": "APIキー",
"AuthBasic": "基本(ブラウザポップアップ)",
"DisabledForLocalAddresses": "ローカルアドレスでは無効"
}

View File

@@ -62,7 +62,6 @@
"DownloadFailedCheckDownloadClientForMoreDetails": "다운로드 실패 : 자세한 내용은 다운로드 클라이언트를 확인하십시오.",
"DownloadFailedInterp": "다운로드 실패 : {0}",
"60MinutesSixty": "60 분 : {0}",
"APIKey": "API 키",
"About": "약",
"AddListExclusion": "목록 제외 추가",
"AddingTag": "태그 추가",
@@ -89,7 +88,7 @@
"Calendar": "달력",
"CalendarWeekColumnHeaderHelpText": "주가 활성보기 일 때 각 열 위에 표시됩니다.",
"Cancel": "취소",
"CancelMessageText": "이 보류중인 작업을 취소 하시겠습니까?",
"CancelPendingTask": "이 보류중인 작업을 취소 하시겠습니까?",
"CertificateValidation": "인증서 검증",
"CertificateValidationHelpText": "HTTPS 인증 유효성 검사의 엄격한 방법 변경",
"ChangeFileDate": "파일 날짜 변경",
@@ -424,12 +423,11 @@
"UsenetDelay": "유즈넷 지연",
"UsenetDelayHelpText": "Usenet에서 릴리스를 가져 오기 전에 대기하는 데 몇 분 지연",
"Username": "사용자 이름",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Radarr 업데이트에 사용할 분기",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "외부 업데이트 메커니즘에서 사용하는 분기",
"BranchUpdate": "Radarr 업데이트에 사용할 분기",
"BranchUpdateMechanism": "외부 업데이트 메커니즘에서 사용하는 분기",
"Version": "버전",
"WeekColumnHeader": "주 열 헤더",
"YesCancel": "예, 취소합니다",
"ApiKeyHelpTextWarning": "적용하려면 다시 시작해야합니다.",
"AnalyticsEnabledHelpTextWarning": "적용하려면 다시 시작해야합니다.",
"DeleteRootFolderMessageText": "인덱서 '{0}'을 (를) 삭제 하시겠습니까?",
"LoadingBooksFailed": "영화 파일을로드하지 못했습니다.",
@@ -625,5 +623,13 @@
"RemoveQueueItemConfirmation": "대기열에서 {0} 항목 {1}을 제거하시겠습니까?",
"SelectQuality": "품질 선택",
"SourceTitle": "소스 제목",
"AutoRedownloadFailed": "다운로드 실패함"
"AutoRedownloadFailed": "다운로드 실패함",
"InteractiveSearchModalHeader": "대화형 검색",
"IndexerFlags": "인덱서 플래그",
"FailedLoadingSearchResults": "검색 결과를 불러오지 못했습니다. 다시 시도하십시오.",
"ApiKey": "API 키",
"AuthBasic": "기본 (브라우저 팝업)",
"AuthForm": "양식 (로그인 페이지)",
"DisabledForLocalAddresses": "로컬 주소에 대해 비활성화됨",
"Enabled": "활성화"
}

View File

@@ -1,6 +1,5 @@
{
"AlternateTitles": "Alternativ tittel",
"APIKey": "API Nøkkel",
"AppDataDirectory": "AppData -katalog",
"ApplyTags": "Bruk Tags",
"Backups": "Sikkerhetskopier",
@@ -29,7 +28,7 @@
"BindAddressHelpText": "Gyldig IPv4 -adresse, localhost eller \"*\" for alle grensesnitt",
"BypassProxyForLocalAddresses": "Omgå proxy for lokale adresser",
"Cancel": "Avbryt",
"CancelMessageText": "Er du sikker på at du vil avbryte denne ventende oppgaven?",
"CancelPendingTask": "Er du sikker på at du vil avbryte denne ventende oppgaven?",
"CertificateValidation": "Sertifikatvalidering",
"CertificateValidationHelpText": "Endre hvor streng HTTPS -sertifisering validering er. Ikke endre med mindre du forstår risikoene.",
"ChangeHasNotBeenSavedYet": "Endringen er ikke lagret ennå",
@@ -44,8 +43,8 @@
"DeleteTagMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"ResetAPIKeyMessageText": "Er du sikker på at du vil tilbakestille API -nøkkelen din?",
"ShowQualityProfile": "Legg til kvalitetsprofil",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Gren som skal brukes til å oppdatere Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Gren brukt av ekstern oppdateringsmekanisme",
"BranchUpdate": "Gren som skal brukes til å oppdatere Radarr",
"BranchUpdateMechanism": "Gren brukt av ekstern oppdateringsmekanisme",
"DeleteDownloadClientMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"DeleteImportListMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"DeleteIndexerMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
@@ -149,5 +148,55 @@
"60MinutesSixty": "60 Minutter: {0}",
"ApplyChanges": "Bekreft endringer",
"ApiKeyValidationHealthCheckMessage": "Vennligst oppdater din API-nøkkel til å være minst {0} tegn lang. Du kan gjøre dette via innstillinger eller konfigurasjonsfilen",
"Activity": "Aktivitet"
"Activity": "Aktivitet",
"Docker": "Docker",
"BlocklistReleaseHelpText": "Hindrer {appName} i å automatisk gripe denne utgivelsen igjen",
"DeleteRemotePathMapping": "Legg til ekstern kartlegging",
"ApplyTagsHelpTextHowToApplyAuthors": "Slik bruker du tagger på de valgte filmene",
"ApplyTagsHelpTextHowToApplyImportLists": "Slik bruker du tagger på de valgte filmene",
"RemoveSelectedItemQueueMessageText": "Er du sikker på at du vil fjerne {0} elementet {1} fra køen?",
"UnableToAddANewDownloadClientPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
"Library": "Bibliotek",
"Ui": "Grensesnitt",
"UnableToAddANewNotificationPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
"ApplyTagsHelpTextHowToApplyIndexers": "Slik bruker du tagger på de valgte filmene",
"ApplyTagsHelpTextRemove": "Fjern: Fjern de angitte kodene",
"UnableToAddANewIndexerPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
"BlocklistReleases": "Blacklist -utgivelse",
"CatalogNumber": "katalognummer",
"DeleteSelectedDownloadClientsMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"UnableToAddANewListPleaseTryAgain": "Ikke mulig å legge til ny automatisk tagg, vennligst prøv igjen",
"Theme": "Tema",
"ApplyTagsHelpTextAdd": "Legg til: Legg til taggene i den eksisterende listen med tagger",
"ConnectionLost": "Tilkobling mistet",
"DeleteImportListExclusion": "Legg til importeringsliste unntak",
"Events": "Hendelse",
"ImportListExclusions": "Legg til importeringsliste unntak",
"AllResultsAreHiddenByTheAppliedFilter": "Alle resultatene er skjult av det anvendte filteret",
"AddNew": "Legg til ny",
"DeleteConditionMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"DeleteSelectedIndexersMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"Backup": "Sikkerhetskopiering",
"ConnectionLostReconnect": "Radarr vil forsøke å koble til automatisk, eller du kan klikke oppdater nedenfor.",
"ConnectionLostToBackend": "Radarr har mistet tilkoblingen til baksystemet og må lastes inn på nytt for å gjenopprette funksjonalitet.",
"SomeResultsAreHiddenByTheAppliedFilter": "Alle resultatene er skjult av det anvendte filteret",
"DeleteSelectedImportListsMessageText": "Er du sikker på at du vil slette formattaggen {0}?",
"ImportLists": "Liste",
"Required": "Kreve",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Slik bruker du tagger på de valgte filmene",
"ApplyTagsHelpTextReplace": "Erstatt: Erstatt taggene med de angitte kodene (skriv inn ingen tagger for å slette alle taggene)",
"ListsSettingsSummary": "Liste",
"ReleaseProfiles": "utgivelseprofil",
"RemoveQueueItemConfirmation": "Er du sikker på at du vil fjerne {0} elementet {1} fra køen?",
"RemoveSelectedItemsQueueMessageText": "Er du sikker på at du vil fjerne {0} elementet {1} fra køen?",
"Reset": "Tilbakestill",
"UnableToAddANewRootFolderPleaseTryAgain": "Ikke mulig å legge til ny automatisk tagg, vennligst prøv igjen",
"AuthForm": "Skjemaer (påloggingsside)",
"DisabledForLocalAddresses": "Deaktivert for lokale adresser",
"Enabled": "Aktiver",
"ApiKey": "API Nøkkel",
"AuthBasic": "Grunnleggende (nettleser -popup)",
"UnableToAddANewImportListExclusionPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
"UnableToAddANewMetadataProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
"UnableToAddANewQualityProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen"
}

View File

@@ -1,5 +1,4 @@
{
"ApiKeyHelpTextWarning": "Herstarten vereist om in werking te treden",
"AnalyticsEnabledHelpTextWarning": "Herstarten vereist om in werking te treden",
"Reset": "Reset",
"SslCertPasswordHelpTextWarning": "Herstarten vereist om in werking te treden",
@@ -14,7 +13,6 @@
"20MinutesTwenty": "20 Minuten: {0}",
"45MinutesFourtyFive": "45 Minuten: {0}",
"60MinutesSixty": "60 Minuten: {0}",
"APIKey": "API-sleutel",
"About": "Over",
"AddListExclusion": "Lijst uitzondering toevoegen",
"AddingTag": "Tag wordt toegevoegd",
@@ -45,7 +43,7 @@
"Calendar": "Kalender",
"CalendarWeekColumnHeaderHelpText": "Wordt getoond boven elke kolom wanneer de actieve weergave Week is",
"Cancel": "Annuleer",
"CancelMessageText": "Bent u zeker dat u deze taak in afwachting wilt annuleren?",
"CancelPendingTask": "Bent u zeker dat u deze taak in afwachting wilt annuleren?",
"CertificateValidation": "Certificaat Validatie",
"CertificateValidationHelpText": "Wijzig hoe strict HTTPS certificaat validatie is. Wijzig dit niet behalve als je de risico's begrijpt.",
"ChangeFileDate": "Wijzig Bestandsdatum",
@@ -426,8 +424,8 @@
"UsenetDelay": "Usenet Vertraging",
"UsenetDelayHelpText": "Vertraging in minuten om te wachten voordat een uitgave wordt opgehaald van Usenet",
"Username": "Gebruikersnaam",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Te gebruiken branch om Radarr bij te werken",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Gebruikte branch door extern update mechanisme",
"BranchUpdate": "Te gebruiken branch om Radarr bij te werken",
"BranchUpdateMechanism": "Gebruikte branch door extern update mechanisme",
"Version": "Versie",
"WeekColumnHeader": "Week Kolom Koptekst",
"Year": "Jaar",
@@ -655,5 +653,106 @@
"ChownGroup": "chown groep",
"AutomaticUpdatesDisabledDocker": "Automatische updates zijn niet ondersteund wanneer je het docker update mechanisme gebruikt. Je dient de container image up te daten buiten {appName} om of een script te gebruiken",
"ChangeCategory": "Verander categorie",
"WouldYouLikeToRestoreBackup": "Wilt u de back-up {name} herstellen?"
"WouldYouLikeToRestoreBackup": "Wilt u de back-up {name} herstellen?",
"Required": "Benodigd",
"RemoveSelectedItemsQueueMessageText": "Weet je zeker dat je {0} van de wachtrij wilt verwijderen?",
"BlocklistReleaseHelpText": "Voorkom dat {appName} deze release nogmaals automatisch ophaalt",
"DeleteRemotePathMapping": "Bewerk Externe Pad Verwijzing",
"Negated": "Genegeerd",
"No": "Nee",
"NoChange": "Geen Wijziging",
"ApplyTagsHelpTextHowToApplyAuthors": "Hoe tags toe te passen op de geselecteerd films",
"CountDownloadClientsSelected": "{count} download client(s) geselecteerd",
"DeleteConditionMessageText": "Bent u zeker dat u de lijst '{name}' wilt verwijderen?",
"FreeSpace": "Vrije Ruimte",
"ImportLists": "importlijst",
"TotalSpace": "Totale Ruimte",
"CatalogNumber": "catalogusnummer",
"NotificationStatusAllClientHealthCheckMessage": "Alle applicaties onbeschikbaar door fouten",
"RemovingTag": "Tag verwijderen",
"Yes": "Ja",
"DeleteSelectedDownloadClients": "Verwijder Downloader",
"IndexerFlags": "Indexeerder Flags",
"InteractiveSearchModalHeader": "Interactief Zoeken",
"RemoveFailedDownloads": "Verwijder mislukte downloads",
"ResetQualityDefinitions": "Reset kwaliteitsdefinities",
"SomeResultsAreHiddenByTheAppliedFilter": "Sommige resultaten zijn verborgen door de aangebrachte filter",
"DownloadClientTagHelpText": "Gebruik deze indexer alleen voor films met ten minste één overeenkomende tag. Laat leeg om te gebruiken met alle films.",
"Events": "Gebeurtenissen",
"Loading": "Laden",
"BlocklistReleases": "Uitgave op blokkeerlijst zetten",
"RemoveFailed": "Verwijderen mislukt",
"RemoveSelectedItem": "Verwijder geselecteerde item",
"DeleteSelectedIndexers": "Verwijder Indexeerder",
"ExistingTag": "Bestaande tag",
"ConnectionLost": "Verbinding Onderbroken",
"LastDuration": "Laatste Looptijd",
"Medium": "Gemiddeld",
"NoEventsFound": "Geen gebeurtenissen gevonden",
"RedownloadFailed": "Opnieuw downloaden mislukt",
"NoResultsFound": "Geen resultaten gevonden",
"EnableRssHelpText": "Wordt gebruikt wanneer {appName} periodiek zoekt naar uitgaven via RSS synchronisatie",
"Location": "Locatie",
"RecentChanges": "Recente wijzigingen",
"CustomFilter": "Aangepaste Filters",
"ErrorLoadingContent": "Er ging iets fout bij het laden van dit item",
"SourceTitle": "Bron Titel",
"FailedLoadingSearchResults": "Fout bij laden van zoek resultaten, probeer het opnieuw.",
"Large": "Groot",
"System": "Systeem",
"ExtraFileExtensionsHelpText": "Komma gescheiden lijst met extra bestanden om te importeren (.nfo zal als .nfo-orig worden geïmporteerd)",
"ExtraFileExtensionsHelpTextsExamples": "Voorbeelden: '.sub, .nfo' of 'sub,nfo'",
"ConnectionLostReconnect": "Radarr zal automatisch proberen te verbinden, of u kunt hieronder op herladen klikken.",
"ConnectionLostToBackend": "Radarr heeft zijn verbinding met de backend verloren en zal moeten worden herladen om de functionaliteit te kunnen herstellen.",
"AutoRedownloadFailed": "Opnieuw downloaden mislukt",
"AutoRedownloadFailedFromInteractiveSearch": "Opnieuw downloaden mislukt vanuit interactief zoeken",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Zoek en download automatisch een andere release als een release vanuit interactief zoeken mislukt is",
"LastExecution": "Laatste Uitvoering",
"LastWriteTime": "Laatste Modificatietijd",
"Library": "Bibliotheek",
"ListsSettingsSummary": "importlijst",
"NextExecution": "Volgende uitvoering",
"NotificationStatusSingleClientHealthCheckMessage": "Applicaties onbeschikbaar door fouten",
"RecycleBinUnableToWriteHealthCheck": "Kan niet schrijven naar prullenbak: {path}. Zorg dat dit pad bestaat en schrijfbaar is voor de gebruiker waaronder {appName} draait",
"ReleaseProfiles": "releaseprofiel",
"RemoveCompletedDownloads": "Verwijder voltooide downloads",
"RemoveDownloadsAlert": "De verwijderopties zijn verplaatst naar de opties voor de individuele downloadprogramma's in de tabel hierboven.",
"RemoveQueueItemConfirmation": "Weet je zeker dat je {0} van de wachtrij wilt verwijderen?",
"RemoveSelectedItems": "Verwijder geselecteerde items",
"SelectDropdown": "'Selecteer...",
"SelectQuality": "Selecteer Kwaliteit",
"SelectReleaseGroup": "Selecteer Release Groep",
"SetTags": "Tags Toepassen",
"Small": "Klein",
"Theme": "Thema",
"Ui": "Gebruikersinterface",
"WhatsNew": "Wat is er nieuw?",
"AuthBasic": "Basic (Browser Pop-up)",
"AuthForm": "Formulier (inlogpagina)",
"AuthenticationMethod": "Authenticatiemethode",
"AuthenticationMethodHelpTextWarning": "Selecteer een geldige verificatie methode",
"AuthenticationRequired": "Verificatie vereist",
"AuthenticationRequiredHelpText": "Pas aan welke requests verificatie nodig hebben. Pas niets aan als je de risico's niet begrijpt.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Bevestig het nieuwe wachtwoord",
"AuthenticationRequiredPasswordHelpTextWarning": "Voer een nieuw wachtwoord in",
"AuthenticationRequiredUsernameHelpTextWarning": "Voeg een nieuwe gebruikersnaam in",
"AuthenticationRequiredWarning": "Om toegang zonder authenticatie te voorkomen vereist {appName} nu verificatie. Je kan dit optioneel uitschakelen voor lokale adressen.",
"DisabledForLocalAddresses": "Uitgeschakeld voor lokale adressen",
"Enabled": "Ingeschakeld",
"ApiKey": "API-sleutel",
"ClickToChangeIndexerFlags": "Klik om indexeringsvlaggen te wijzigen",
"CustomFormatsSpecificationFlag": "Vlag",
"CustomFormatsSpecificationRegularExpression": "Reguliere expressie",
"BlocklistOnlyHint": "Blokkeer lijst zonder te zoeken naar een vervanger",
"BlocklistAndSearch": "Blokkeerlijst en zoeken",
"BlocklistAndSearchHint": "Een vervanger zoeken na het blokkeren",
"BlocklistAndSearchMultipleHint": "Zoekopdrachten voor vervangers starten na het blokkeren van de lijst",
"CustomFormatsSettingsTriggerInfo": "Een Aangepast Formaat wordt toegepast op een uitgave of bestand als het overeenkomt met ten minste één van de verschillende condities die zijn gekozen.",
"ConnectionSettingsUrlBaseHelpText": "Voegt een voorvoegsel toe aan de {connectionName} url, zoals {url}",
"BlocklistMultipleOnlyHint": "Blocklist zonder te zoeken naar vervangers",
"BlocklistOnly": "Alleen bloklijst",
"ChangeCategoryHint": "Verandert download naar de 'Post-Import Categorie' van Downloadclient",
"Clone": "Kloon",
"CustomFormatsSpecificationRegularExpressionHelpText": "Aangepaste opmaak RegEx is hoofdletterongevoelig",
"ChangeCategoryMultipleHint": "Wijzigt downloads naar de 'Post-Import Categorie' van Downloadclient"
}

View File

@@ -11,7 +11,6 @@
"Group": "Grupa",
"20MinutesTwenty": "60 minut: {0}",
"About": "O",
"ApiKeyHelpTextWarning": "Wymaga ponownego uruchomienia, aby odniosło skutek",
"AnalyticsEnabledHelpTextWarning": "Wymaga ponownego uruchomienia, aby odniosło skutek",
"DeleteRootFolderMessageText": "Czy na pewno chcesz usunąć indeksator „{0}”?",
"DiskSpace": "Miejsca na dysku",
@@ -41,12 +40,11 @@
"RemovedFromTaskQueue": "Usunięto z kolejki zadań",
"45MinutesFourtyFive": "60 minut: {0}",
"60MinutesSixty": "60 minut: {0}",
"APIKey": "Klucz API",
"AddListExclusion": "Dodaj wykluczenie z listy",
"AddingTag": "Dodawanie tagu",
"RemoveTagExistingTag": "Istniejący tag",
"RemoveTagRemovingTag": "Usuwanie tagu",
"AgeWhenGrabbed": "Wiek (po złapaniu)",
"AgeWhenGrabbed": "Wiek (przy złapaniu)",
"ShowRelativeDates": "Pokaż daty względne",
"AlreadyInYourLibrary": "Już w Twojej bibliotece",
"AlternateTitles": "Alternatywny tytuł",
@@ -73,7 +71,7 @@
"BackupRetentionHelpText": "Automatyczne kopie zapasowe starsze niż okres przechowywania zostaną automatycznie wyczyszczone",
"Backups": "Kopie zapasowe",
"BindAddress": "Adres powiązania",
"BindAddressHelpText": "Prawidłowy adres IPv4 lub „*” dla wszystkich interfejsów",
"BindAddressHelpText": "Prawidłowy adres IP, localhost lub '*' dla wszystkich interfejsów",
"BindAddressHelpTextWarning": "Wymaga ponownego uruchomienia, aby odniosło skutek",
"BookIsDownloading": "Film jest pobierany",
"BookIsDownloadingInterp": "Film jest pobierany - {0}% {1}",
@@ -82,7 +80,7 @@
"Calendar": "Kalendarz",
"CalendarWeekColumnHeaderHelpText": "Wyświetlany nad każdą kolumną, gdy tydzień jest aktywnym widokiem",
"Cancel": "Anuluj",
"CancelMessageText": "Czy na pewno chcesz anulować to oczekujące zadanie?",
"CancelPendingTask": "Czy na pewno chcesz anulować to oczekujące zadanie?",
"CertificateValidation": "Walidacja certyfikatu",
"CertificateValidationHelpText": "Zmień ścisłość walidacji certyfikatu HTTPS. Nie zmieniaj, jeśli nie rozumiesz związanych z tym zagrożeń.",
"ChangeFileDate": "Zmień datę pliku",
@@ -113,18 +111,18 @@
"DelayingDownloadUntilInterp": "Opóźnianie pobierania do {0} o {1}",
"Delete": "Usunąć",
"DeleteBackup": "Usuń kopię zapasową",
"DeleteBackupMessageText": "Czy na pewno chcesz usunąć kopię zapasową „{0}”?",
"DeleteBackupMessageText": "Czy na pewno chcesz usunąć kopię zapasową „{name}”?",
"DeleteDelayProfile": "Usuń profil opóźnienia",
"DeleteDelayProfileMessageText": "Czy na pewno chcesz usunąć ten profil opóźnienia?",
"DeleteDownloadClient": "Usuń klienta pobierania",
"DeleteDownloadClientMessageText": "Czy na pewno chcesz usunąć klienta pobierania „{0}”?",
"DeleteDownloadClientMessageText": "Czy na pewno chcesz usunąć klienta pobierania „{name}”?",
"DeleteEmptyFolders": "Usuń puste foldery",
"DeleteEmptyFoldersHelpText": "Usuń puste foldery z filmami podczas skanowania dysku i po usunięciu plików filmowych",
"DeleteImportListExclusion": "Usuń wykluczenie listy importu",
"DeleteImportListExclusionMessageText": "Czy na pewno chcesz usunąć to wykluczenie listy importu?",
"DeleteImportListMessageText": "Czy na pewno chcesz usunąć listę „{0}”?",
"DeleteIndexer": "Usuń indeksator",
"DeleteIndexerMessageText": "Czy na pewno chcesz usunąć indeksator „{0}”?",
"DeleteIndexerMessageText": "Czy na pewno chcesz usunąć indeksator „{name}”?",
"DeleteMetadataProfileMessageText": "Czy na pewno usunąć informacje dodatkowe '{0name}'?",
"DeleteNotification": "Usuń powiadomienie",
"DeleteNotificationMessageText": "Czy na pewno chcesz usunąć powiadomienie „{0}”?",
@@ -289,7 +287,7 @@
"RemoveCompletedDownloadsHelpText": "Usuń zaimportowane pliki do pobrania z historii klienta pobierania",
"RemoveFailedDownloadsHelpText": "Usuń nieudane pobieranie z historii klienta pobierania",
"RemoveFilter": "Usuń filtr",
"RemoveFromDownloadClient": "Usuń z klienta pobierania",
"RemoveFromDownloadClient": "Usuń z Klienta Pobierania",
"RemoveFromQueue": "Usuń z kolejki",
"RemoveHelpTextWarning": "Usunięcie spowoduje usunięcie pobierania i plików z klienta pobierania.",
"RemoveSelected": "Usuń zaznaczone",
@@ -354,7 +352,7 @@
"SslPortHelpTextWarning": "Wymaga ponownego uruchomienia, aby odniosło skutek",
"StandardBookFormat": "Standardowy format filmu",
"StartTypingOrSelectAPathBelow": "Zacznij pisać lub wybierz ścieżkę poniżej",
"StartupDirectory": "Katalog startowy",
"StartupDirectory": "Katalog Startowy",
"Status": "Status",
"StatusEndedEnded": "Zakończone",
"Style": "Styl",
@@ -431,8 +429,8 @@
"UsenetDelay": "Opóźnienie Usenetu",
"UsenetDelayHelpText": "Opóźnij w ciągu kilku minut, aby poczekać przed pobraniem wersji z Usenetu",
"Username": "Nazwa Użytkownika",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Oddział do użycia do aktualizacji Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Gałąź używana przez zewnętrzny mechanizm aktualizacji",
"BranchUpdate": "Oddział do użycia do aktualizacji Radarr",
"BranchUpdateMechanism": "Gałąź używana przez zewnętrzny mechanizm aktualizacji",
"Version": "Wersja",
"WeekColumnHeader": "Nagłówek kolumny tygodnia",
"YesCancel": "Tak, anuluj",
@@ -676,5 +674,28 @@
"Backup": "Kopia zapasowa",
"AllResultsAreHiddenByTheAppliedFilter": "Wszystkie wyniki są ukrywane przez zastosowany filtr",
"ExtraFileExtensionsHelpText": "Rozdzielana przecinkami lista dodatkowych plików do zaimportowania (.nfo zostanie zaimportowane jako .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Przykłady: „.sub, .nfo” lub „sub, nfo”"
"ExtraFileExtensionsHelpTextsExamples": "Przykłady: „.sub, .nfo” lub „sub, nfo”",
"ListsSettingsSummary": "Listy",
"IndexerFlags": "Flagi indeksujące",
"RemoveQueueItemConfirmation": "Czy na pewno chcesz usunąć elementy ({0}) z kolejki?",
"CustomFilter": "Filtry niestandardowe",
"SourceTitle": "Tytuł źródłowy",
"AutoRedownloadFailed": "Pobieranie nie udane",
"FailedLoadingSearchResults": "Nie udało się załadować wyników wyszukiwania, spróbuj ponownie.",
"ImportLists": "Listy",
"InteractiveSearchModalHeader": "Wyszukiwanie interaktywne",
"SelectDropdown": "Wybierz...",
"SelectQuality": "Wybierz Jakość",
"SelectReleaseGroup": "Wybierz grupę wydającą",
"AuthBasic": "Podstawowe (wyskakujące okienko przeglądarki)",
"AuthForm": "Formularze (strona logowania)",
"DisabledForLocalAddresses": "Wyłączone dla adresów lokalnych",
"Enabled": "Włączone",
"ApiKey": "Klucz API",
"ASIN": "ASIN",
"AppUpdatedVersion": "{appName} został zaktualizowany do wersji `{version}`, by uzyskać nowe zmiany należy przeładować {appName}",
"AppUpdated": "{appName} Zaktualizowany",
"AuthenticationMethod": "Metoda Autoryzacji",
"AuthenticationMethodHelpTextWarning": "Wybierz prawidłową metodę autoryzacji",
"AuthenticationRequired": "Wymagana Autoryzacja"
}

View File

@@ -9,7 +9,6 @@
"OnUpgradeHelpText": "Ao atualizar",
"AnalyticsEnabledHelpTextWarning": "Requer reinício para aplicar alterações",
"Backups": "Cópias de segurança",
"ApiKeyHelpTextWarning": "Requer reinício para aplicar alterações",
"DeleteRootFolderMessageText": "Tem a certeza que quer eliminar a pasta raiz \"{0}\"?",
"LoadingBooksFailed": "Falha no carregamento dos livros",
"ProxyPasswordHelpText": "Apenas insira o utilizador e a palavra-passe caso seja requerido. Caso contrário, deixe em branco.",
@@ -51,8 +50,8 @@
"UsenetDelay": "Atraso para Usenet",
"UsenetDelayHelpText": "Tempo, em minutos, para aguardar antes de capturar uma versão de Usenet",
"Username": "Nome de utilizador",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Ramificação utilizada para atualizar o Readarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ramificação utilizada pelo mecanismo externo de atualização",
"BranchUpdate": "Ramificação utilizada para atualizar o Readarr",
"BranchUpdateMechanism": "Ramificação utilizada pelo mecanismo externo de atualização",
"Version": "Versão",
"WeekColumnHeader": "Cabeçalho da coluna de semana",
"Year": "Ano",
@@ -60,7 +59,6 @@
"20MinutesTwenty": "20 minutos: {0}",
"45MinutesFourtyFive": "45 minutos: {0}",
"60MinutesSixty": "60 minutos: {0}",
"APIKey": "Chave da API",
"About": "Sobre",
"ConnectSettings": "Definições de ligação",
"Connections": "Ligações",
@@ -167,7 +165,7 @@
"Calendar": "Calendário",
"CalendarWeekColumnHeaderHelpText": "Mostrar acima de cada coluna quando a semana é a vista ativa",
"Cancel": "Cancelar",
"CancelMessageText": "Tem a certeza que quer cancelar esta tarefa pendente?",
"CancelPendingTask": "Tem a certeza que quer cancelar esta tarefa pendente?",
"CertificateValidation": "Validação de certificado",
"CertificateValidationHelpText": "Mudar nível de restrição da validação da certificação HTTPS",
"ChangeFileDate": "Modificar data do ficheiro",
@@ -439,7 +437,7 @@
"AudioFileMetadata": "Escrever metadados em ficheiros de áudio",
"AuthorNameHelpText": "O nome do autor/livro a eliminar (pode ser qualquer palavra)",
"CalibreOutputProfile": "Perfil de saída do Calibre",
"ChownGroup": "Grupo chown",
"ChownGroup": "Fazer chown em grupo",
"CollapseMultipleBooks": "Fechar múltiplos livros",
"DefaultMetadataProfileIdHelpText": "Há um perfil de qualidade padrão para autores nesta pasta",
"DefaultTagsHelpText": "Há um perfil de qualidade padrão para autores nesta pasta",
@@ -855,5 +853,107 @@
"AutomaticUpdatesDisabledDocker": "As actualizações automáticas não são diretamente suportadas quando se utiliza o mecanismo de atualização do Docker. Terá de atualizar a imagem do contentor fora de {appName} ou utilizar um script",
"EditSelectedDownloadClients": "Editar Clientes de Transferência Selecionados",
"ApplyChanges": "Aplicar alterações",
"Backup": "Backup"
"Backup": "Backup",
"CountImportListsSelected": "{selectedCount} lista(s) de importação selecionada(s)",
"ClickToChangeIndexerFlags": "Clique para alterar os sinalizadores do indexador",
"CountIndexersSelected": "{selectedCount} indexador(es) selecionado(s)",
"CustomFormatsSpecificationFlag": "Sinalizar",
"DeleteConditionMessageText": "Tem a certeza que quer eliminar a condição \"{name}\"?",
"Clone": "Clonar",
"CustomFormatsSpecificationRegularExpression": "Expressão regular (regex)",
"CustomFormatsSpecificationRegularExpressionHelpText": "O regex do formato personalizado não diferencia maiúsculas e minúsculas",
"BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar à lista de bloqueio",
"BlocklistMultipleOnlyHint": "Adicionar à lista de bloqueio sem procurar por substitutos",
"BlocklistOnly": "Apenas adicionar à lista de bloqueio",
"BlocklistAndSearch": "Adicionar à lista de bloqueio e pesquisar",
"BlocklistAndSearchHint": "Iniciar uma pesquisa por um substituto após adicionar à lista de bloqueio",
"BlocklistOnlyHint": "Adicionar à lista de bloqueio sem procurar por um substituto",
"ChangeCategory": "Alterar categoria",
"ChangeCategoryHint": "Altera o download para a \"Categoria pós-importação\" do cliente de download",
"ChangeCategoryMultipleHint": "Altera os downloads para a \"Categoria pós-importação' do cliente de download",
"CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a uma versão ou ficheiro quando corresponder a pelo menos um dos diferentes tipos de condição escolhidos.",
"DashOrSpaceDashDependingOnName": "Traço ou Espaço e Traço, dependendo do nome",
"ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}",
"NoEventsFound": "Nenhum evento encontrado",
"BlocklistReleaseHelpText": "Impede o {appName} de capturar automaticamente estes ficheiros novamente",
"DeleteRemotePathMapping": "Editar mapeamento de caminho remoto",
"Location": "Localização",
"Medium": "Médio",
"ApplyTagsHelpTextHowToApplyAuthors": "Como aplicar etiquetas aos filmes selecionados",
"CountDownloadClientsSelected": "{count} cliente(s) de transferência selecionado(s)",
"DeleteSelectedDownloadClients": "Eliminar cliente de transferências",
"ListsSettingsSummary": "importar lista",
"RecentChanges": "Mudanças recentes",
"RemoveCompleted": "Eliminação Completa",
"RemovingTag": "Eliminando etiqueta",
"Required": "Obrigatório",
"SetTags": "Definir etiquetas",
"SkipRedownloadHelpText": "Impede que o {appName} tente transferir versões alternativas para itens removidos",
"ResetQualityDefinitions": "Redefinir Qualidade de Definições",
"Yes": "Sim",
"NextExecution": "Próxima execução",
"System": "Sistema",
"Events": "Eventos",
"Large": "Grande",
"TotalSpace": "Espaço total",
"Ui": "IU",
"ExtraFileExtensionsHelpTextsExamples": "Exemplos: \".sub, .nfo\" ou \"sub,nfo\"",
"RemoveSelectedItems": "Remover os Items Selecionados",
"RedownloadFailed": "Falha na transferência",
"BypassIfAboveCustomFormatScore": "Ignorar se estiver acima da pontuação de formato personalizado",
"ConnectionLost": "Ligação perdida",
"AutoRedownloadFailedFromInteractiveSearch": "Falha na transferência a partir da Pesquisa interactiva",
"No": "Não",
"LastExecution": "Execução mais recente",
"LastWriteTime": "Hora da última escrita",
"Small": "Pequeno",
"AutomaticAdd": "Adicionar automaticamente",
"BlocklistReleases": "Bloquear versão",
"CountAuthorsSelected": "{selectedCount} indexador(es) selecionado(s)",
"DeleteSelectedIndexers": "Eliminar indexador",
"CustomFilter": "Filtros personalizados",
"DataListMonitorAll": "Monitore artistas e todos os álbuns de cada artista incluído na lista de importação",
"ExistingTag": "Etiqueta existente",
"ExtraFileExtensionsHelpText": "Lista separada por vírgulas de ficheiros adicionais a importar (.nfo será importado como .nfo-orig)",
"SourceTitle": "Título original",
"FailedLoadingSearchResults": "Erro ao carregar resultados da busca. Por favor, tente novamente.",
"Negated": "Negado",
"WhatsNew": "O que há de novo?",
"DownloadClientTagHelpText": "Só use este indexador para filmes com pelo menos uma etiqueta correspondente. Deixe em branco para usar com todos os filmes.",
"BypassIfAboveCustomFormatScoreHelpText": "Ativar o desvio quando a versão tem uma pontuação superior à pontuação mínima configurada para o formato personalizado",
"DeleteRemotePathMappingMessageText": "Tem a certeza que quer eliminar este mapeamento de caminho remoto?",
"RemoveSelectedItemQueueMessageText": "Tem a certeza que deseja remover {0} da fila?",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procurar automaticamente e tentar transferir uma versão diferente quando a versão falhada foi obtida a partir da pesquisa interactiva",
"DeleteSelectedImportLists": "Eliminar lista de importação",
"AutoRedownloadFailed": "Falha na transferência",
"FreeSpace": "Espaço livre",
"IndexerFlags": "Sinalizadores do indexador",
"InteractiveSearchModalHeader": "Pesquisa interativa",
"LastDuration": "Última Duração",
"Library": "Biblioteca",
"MinimumCustomFormatScoreHelpText": "Pontuação Mínima do Formato Personalizado necessária para contornar o atraso do protocolo preferido",
"NoChange": "Sem mudança",
"NoResultsFound": "Nenhum resultado encontrado",
"RemoveDownloadsAlert": "As definições de remoção foram movidas para as respetivas definições de cada Cliente de Transferências na tabela acima.",
"RemoveFailed": "Remoção Falhou",
"RemoveQueueItemConfirmation": "Tem a certeza que deseja remover {0} da fila?",
"RemoveSelectedItem": "Remover o Item Selecionado",
"RemoveSelectedItemsQueueMessageText": "Tem a certeza que deseja remover {0} da fila?",
"SelectDropdown": "Selecione...",
"SelectQuality": "Selecionar qualidade",
"SelectReleaseGroup": "Selecionar Grupo de Lançamento",
"SomeResultsAreHiddenByTheAppliedFilter": "Alguns resultados estão ocultos pelo filtro aplicado",
"ApiKey": "Chave da API",
"AuthBasic": "Básico (pop-up do browser)",
"AuthForm": "Formulários (Página de Login)",
"AuthenticationMethod": "Método de Autenticação",
"AuthenticationMethodHelpTextWarning": "Selecione um método de autenticação válido",
"AuthenticationRequired": "Autenticação Necessária",
"AuthenticationRequiredHelpText": "Altere para quais solicitações a autenticação é necessária. Não mude a menos que você entenda os riscos.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirmar nova senha",
"AuthenticationRequiredPasswordHelpTextWarning": "Insira uma nova senha",
"AuthenticationRequiredUsernameHelpTextWarning": "Insira um novo Nome de Usuário",
"AuthenticationRequiredWarning": "Para evitar o acesso remoto sem autenticação, {appName} agora exige que a autenticação esteja habilitada. Opcionalmente, você pode desabilitar a autenticação de endereços locais.",
"DisabledForLocalAddresses": "Desativado para endereços locais",
"Enabled": "Ativado"
}

View File

@@ -10,12 +10,10 @@
"UnableToAddANewNotificationPleaseTryAgain": "Não foi possível adicionar uma nova notificação. Tente novamente.",
"UnableToAddANewQualityProfilePleaseTryAgain": "Não foi possível adicionar um novo perfil de qualidade. Tente novamente.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Não foi possível adicionar um novo mapeamento de caminho remoto. Tente novamente.",
"20MinutesTwenty": "20 Minutos: {0}",
"45MinutesFourtyFive": "45 Minutos: {0}",
"60MinutesSixty": "60 Minutos: {0}",
"APIKey": "Chave API",
"20MinutesTwenty": "20 minutos: {0}",
"45MinutesFourtyFive": "45 minutos: {0}",
"60MinutesSixty": "60 minutos: {0}",
"AgeWhenGrabbed": "Tempo de vida (quando obtido)",
"ApiKeyHelpTextWarning": "Requer reinício para ter efeito",
"LoadingBooksFailed": "Falha ao carregar livros",
"Logs": "Registros",
"MustContain": "Deve conter",
@@ -31,7 +29,7 @@
"AppDataDirectory": "Diretório AppData",
"ApplyTags": "Aplicar Tags",
"Authentication": "Autenticação",
"AuthenticationMethodHelpText": "Exigir nome de usuário e senha para acessar o Readarr",
"AuthenticationMethodHelpText": "Exigir Nome de Usuário e Senha para acessar {appName}",
"AuthorClickToChangeBook": "Clique para alterar o livro",
"AutoRedownloadFailedHelpText": "Procurar e tentar baixar automaticamente uma versão diferente",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Livros excluídos do disco deixam de ser monitorados no Readarr automaticamente",
@@ -57,7 +55,7 @@
"Edit": "Editar",
"Edition": "Edição",
"Enable": "Habilitar",
"GrabRelease": "Obter lançamento",
"GrabRelease": "Baixar Lançamento",
"GrabReleaseMessageText": "O Readarr não conseguiu determinar para qual autor e livro é este lançamento. O Readarr pode não conseguir importar automaticamente este lançamento. Deseja obter \"{0}\"?",
"GrabSelected": "Baixar Selecionado",
"Group": "Grupo",
@@ -75,7 +73,7 @@
"Calendar": "Calendário",
"CalendarWeekColumnHeaderHelpText": "Mostrar acima de cada coluna quando a semana está na exibição ativa",
"Cancel": "Cancelar",
"CancelMessageText": "Tem certeza que deseja cancelar esta tarefa pendente?",
"CancelPendingTask": "Tem certeza que deseja cancelar esta tarefa pendente?",
"CertificateValidation": "Validação de certificado",
"CertificateValidationHelpText": "Altere a rigidez da validação da certificação HTTPS. Não mude a menos que você entenda os riscos.",
"ChangeFileDate": "Alterar data do arquivo",
@@ -100,7 +98,7 @@
"CreateEmptyAuthorFoldersHelpText": "Criar pastas de autor ausente durante a verificação do disco",
"CreateGroup": "Criar grupo",
"CutoffHelpText": "Assim que esta qualidade for alcançada, o Readarr não baixará mais livros",
"CutoffUnmet": "Corte não atendido",
"CutoffUnmet": "Corte Não Alcançado",
"DatabaseMigration": "Migração de banco de dados",
"Dates": "Datas",
"DelayProfile": "Perfil de atraso",
@@ -187,7 +185,7 @@
"IndexerSettings": "Configurações do indexador",
"Indexers": "Indexadores",
"Interval": "Intervalo",
"IsCutoffCutoff": "Limite",
"IsCutoffCutoff": "Corte",
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Atualizar até que essa qualidade seja alcançada ou excedida",
"IsTagUsedCannotBeDeletedWhileInUse": "Não pode ser excluído durante o uso",
"Language": "Idioma",
@@ -199,7 +197,7 @@
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "O registro em log deve ser habilitado apenas temporariamente",
"Logging": "Registro em log",
"LongDateFormat": "Formato longo de data",
"MIA": "Desaparecidos",
"MIA": "Ausentes",
"ManualImport": "Importação manual",
"MarkAsFailed": "Marcar como falha",
"MarkAsFailedMessageText": "Tem certeza que deseja marcar \"{0}\" como falhado?",
@@ -297,7 +295,7 @@
"RemoveTagExistingTag": "Tag existente",
"RemoveTagRemovingTag": "Removendo tag",
"RemovedFromTaskQueue": "Removido da Fila de Tarefas",
"RenameBooksHelpText": "O Readarr usará o nome de arquivo existente se a renomeação estiver desativada",
"RenameBooksHelpText": "O Readarr usará o nome de arquivo existente se a renomeação estiver deshabilitada",
"Reorder": "Reordenar",
"ReplaceIllegalCharacters": "Substituir Caracteres Ilegais",
"RequiredHelpText": "Essa condição {0} deve corresponder para que o formato personalizado seja aplicado. Caso contrário, uma correspondência {0} é suficiente.",
@@ -429,8 +427,8 @@
"UsenetDelay": "Atraso da Usenet",
"UsenetDelayHelpText": "Atraso em minutos para esperar antes de pegar um lançamento da Usenet",
"Username": "Nome do usuário",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Ramificação para atualizar o Readarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ramificação usada pelo mecanismo de atualização externo",
"BranchUpdate": "Ramificação para atualizar o Readarr",
"BranchUpdateMechanism": "Ramificação usada pelo mecanismo de atualização externo",
"Version": "Versão",
"WeekColumnHeader": "Cabeçalho da Coluna da Semana",
"Year": "Ano",
@@ -605,7 +603,7 @@
"ConsoleLogLevel": "Nível de log do console",
"CollapseMultipleBooksHelpText": "Recolher vários livros lançados no mesmo dia",
"CollapseMultipleBooks": "Recolher vários livros",
"ChownGroup": "chown Grupo",
"ChownGroup": "Fazer chown em grupo",
"CatalogNumber": "Número do Catálogo",
"CalibreUsername": "Nome de usuário do Calibre",
"CalibreUrlBase": "URL base do Calibre",
@@ -668,7 +666,7 @@
"NameStyle": "Estilo do nome do autor",
"BookAvailableButMissing": "Filme disponível, mas ausente",
"NotMonitored": "Não monitorado",
"ShowBookTitleHelpText": "Mostrar título do filme abaixo do pôster",
"ShowBookTitleHelpText": "Mostrar título do livro abaixo do pôster",
"ShowReleaseDate": "Mostrar data de lançamento",
"NotAvailable": "Indisponível",
"ShowTitle": "Mostrar Título",
@@ -730,14 +728,14 @@
"OnBookFileDeleteHelpText": "Ao Excluir um Arquivo de Livro",
"OnBookTagUpdate": "Ao Atualizar Etiqueta de um Livro",
"OnDownloadFailure": "Na Falha do Download",
"OnGrab": "Ao Baixar",
"OnGrab": "Ao obter",
"OnHealthIssue": "Ao Problema de Saúde",
"OnImportFailure": "Em uma Falha de Importação",
"OnReleaseImport": "Ao Importar Lançamento",
"OnRename": "Ao Renomear",
"OnUpgrade": "Ao Atualizar",
"AppDataLocationHealthCheckMessage": "A atualização não será possível para evitar a exclusão de AppData na atualização",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa interativa habilitada, o Readarr não fornecerá nenhum resultado de pesquisa interativa",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa habilitada, o Readarr não dará nenhum resultado para pesquisa interativa",
"ConnectSettingsSummary": "Notificações, conexões com servidores/tocadores de mídia e scripts personalizados",
"DownloadClientStatusCheckAllClientMessage": "Todos os clientes de download estão indisponíveis devido a falhas",
"DownloadClientsSettingsSummary": "Clientes de download, gerenciamento de download e mapeamentos de caminhos remotos",
@@ -797,7 +795,7 @@
"ReadarrSupportsAnyDownloadClient": "Readarr suporta muitos clientes populares de download de torrent e usenet.",
"RemotePathMappingCheckDockerFolderMissing": "Você está usando o docker; o cliente de download {0} coloca os downloads em {1}, mas esse diretório parece não existir dentro do contêiner. Revise seus mapeamentos de caminho remoto e configurações de volume do contêiner.",
"RemotePathMappingCheckFilesLocalWrongOSPath": "O cliente de download local {0} relatou arquivos em {1}, mas este não é um caminho {2} válido. Revise as configurações do cliente de download.",
"RemotePathMappingCheckGenericPermissions": "O cliente de download {0} coloca os downloads em {1}, mas Readarr não pode ver este diretório. Pode ser necessário ajustar as permissões da pasta.",
"RemotePathMappingCheckGenericPermissions": "O cliente de download {0} coloca os downloads em {1}, mas o Readarr não pode ver este diretório. Pode ser necessário ajustar as permissões da pasta.",
"RemotePathMappingCheckRemoteDownloadClient": "O cliente de download remoto {0} relatou arquivos em {1}, mas este diretório parece não existir. Provavelmente faltando mapeamento de caminho remoto.",
"SettingsRemotePathMappingLocalPathHelpText": "Caminho que Readarr deve usar para acessar o caminho remoto localmente",
"RootFolderCheckSingleMessage": "Pasta raiz ausente: {0}",
@@ -931,7 +929,7 @@
"ResetQualityDefinitions": "Redefinir definições de qualidade",
"ResetQualityDefinitionsMessageText": "Tem certeza de que deseja redefinir as definições de qualidade?",
"BlocklistReleaseHelpText": "Impede que o Readarr obtenha automaticamente esses arquivos novamente",
"NoCutoffUnmetItems": "Nenhum item com limite não atendido",
"NoCutoffUnmetItems": "Nenhum item com limite não atingido",
"NoEventsFound": "Não foram encontrados eventos",
"NoMissingItems": "Nenhum item ausente",
"CountImportListsSelected": "{selectedCount} lista(s) de importação selecionada(s)",
@@ -1028,11 +1026,11 @@
"AutoRedownloadFailed": "Falha no Novo Download",
"AutoRedownloadFailedFromInteractiveSearch": "Falha no Novo Download da Pesquisa Interativa",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procure e tente baixar automaticamente uma versão diferente quando a versão com falha for obtida da pesquisa interativa",
"BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar a lista de bloqueio",
"BlocklistMultipleOnlyHint": "Adiciona a Lista de bloqueio sem procurar substitutos",
"BlocklistOnly": "Apenas Adicionar a Lista de Bloqueio",
"ChangeCategoryMultipleHint": "Altera os downloads para a 'Categoria Pós-Importação' do Cliente de Download",
"CustomFormatsSpecificationRegularExpression": "Expressão Regular",
"BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar à lista de bloqueio",
"BlocklistMultipleOnlyHint": "Adicionar à lista de bloqueio sem procurar por substitutos",
"BlocklistOnly": "Apenas adicionar à lista de bloqueio",
"ChangeCategoryMultipleHint": "Altera os downloads para a \"Categoria pós-importação' do cliente de download",
"CustomFormatsSpecificationRegularExpression": "Expressão regular (regex)",
"IgnoreDownload": "Ignorar Download",
"IgnoreDownloadHint": "Impede que {appName} processe ainda mais este download",
"IgnoreDownloads": "Ignorar Downloads",
@@ -1041,12 +1039,12 @@
"RemoveQueueItemConfirmation": "Tem certeza de que deseja remover '{sourceTitle}' da fila?",
"RemoveQueueItemRemovalMethod": "Método de Remoção",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remover do Cliente de Download' removerá os downloads e os arquivos do cliente de download.",
"BlocklistAndSearch": "Lista de Bloqueio e Pesquisa",
"BlocklistAndSearchHint": "Inicie uma busca por um substituto após adicionar a lista de bloqueio",
"BlocklistOnlyHint": "Adiciona a Lista de bloqueio sem procurar um substituto",
"ChangeCategory": "Alterar Categoria",
"ChangeCategoryHint": "Altera o download para a 'Categoria Pós-Importação' do Cliente de Download",
"CustomFormatsSpecificationRegularExpressionHelpText": "RegEx do Formato Personalizado Não Diferencia Maiúsculas de Minúsculas",
"BlocklistAndSearch": "Adicionar à lista de bloqueio e pesquisar",
"BlocklistAndSearchHint": "Iniciar uma pesquisa por um substituto após adicionar à lista de bloqueio",
"BlocklistOnlyHint": "Adicionar à lista de bloqueio sem procurar por um substituto",
"ChangeCategory": "Alterar categoria",
"ChangeCategoryHint": "Altera o download para a \"Categoria pós-importação\" do cliente de download",
"CustomFormatsSpecificationRegularExpressionHelpText": "O regex do formato personalizado não diferencia maiúsculas e minúsculas",
"DoNotBlocklist": "Não coloque na lista de bloqueio",
"DoNotBlocklistHint": "Remover sem colocar na lista de bloqueio",
"RemoveFromDownloadClientHint": "Remove download e arquivo(s) do cliente de download",
@@ -1061,7 +1059,7 @@
"SelectQuality": "Selecionar uma Qualidade",
"CustomFilter": "Filtro Personalizado",
"LabelIsRequired": "Rótulo é requerido",
"ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo a URL {connectionName}, como {url}",
"ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}",
"InteractiveSearchModalHeader": "Pesquisa Interativa",
"DownloadClientDelugeSettingsDirectory": "Diretório de Download",
"DownloadClientDelugeSettingsDirectoryCompleted": "Mover para o Diretório Quando Concluído",
@@ -1076,11 +1074,32 @@
"NotificationsSettingsUpdateMapPathsTo": "Mapear Caminhos Para",
"NotificationsSettingsUseSslHelpText": "Conecte-se a {serviceName} por HTTPS em vez de HTTP",
"NotificationsSettingsUpdateMapPathsToHelpText": "Caminho {serviceName}, usado para modificar caminhos de série quando {serviceName} vê a localização do caminho da biblioteca de forma diferente de {appName} (requer 'Atualizar Biblioteca')",
"ClickToChangeIndexerFlags": "Clique para alterar sinalizadores do indexador",
"CustomFormatsSpecificationFlag": "Sinalizador",
"ClickToChangeIndexerFlags": "Clique para alterar os sinalizadores do indexador",
"CustomFormatsSpecificationFlag": "Sinalizar",
"Rejections": "Rejeições",
"SelectIndexerFlags": "Selecionar Sinalizadores do Indexador",
"SetIndexerFlags": "Definir Sinalizadores de Indexador",
"IndexerFlags": "Sinalizadores do Indexador",
"CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a um lançamento ou arquivo quando corresponder a pelo menos um de cada um dos diferentes tipos de condição escolhidos."
"CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a um lançamento ou arquivo quando corresponder a pelo menos um dos diferentes tipos de condição escolhidos.",
"IndexerSettingsSeedTime": "Tempo de semeação",
"IndexerSettingsSeedRatio": "Proporção de semeação",
"IndexerSettingsSeedRatioHelpText": "A proporção que um torrent deve atingir antes de parar, vazio usa o padrão do cliente de download. A proporção deve ser de pelo menos 1,0 e seguir as regras dos indexadores",
"IndexerSettingsSeedTimeHelpText": "O tempo que um torrent deve ser semeado antes de parar, vazio usa o padrão do cliente de download",
"FailedLoadingSearchResults": "Falha ao carregar os resultados da pesquisa. Tente novamente.",
"WhySearchesCouldBeFailing": "Clique aqui para descobrir por que as pesquisas podem estar falhando",
"AuthBasic": "Básico (pop-up do navegador)",
"AuthForm": "Formulário (página de login)",
"AuthenticationMethod": "Método de autenticação",
"AuthenticationMethodHelpTextWarning": "Selecione um método de autenticação válido",
"AuthenticationRequired": "Autenticação exigida",
"AuthenticationRequiredHelpText": "Altere para quais solicitações a autenticação é necessária. Não mude a menos que você entenda os riscos.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirme a nova senha",
"AuthenticationRequiredPasswordHelpTextWarning": "Digite uma nova senha",
"AuthenticationRequiredUsernameHelpTextWarning": "Digite um novo nome de usuário",
"AuthenticationRequiredWarning": "Para evitar o acesso remoto sem autenticação, {appName} agora exige que a autenticação esteja habilitada. Opcionalmente, você pode desabilitar a autenticação de endereços locais.",
"DisabledForLocalAddresses": "Desabilitado para endereços locais",
"Enabled": "Habilitado",
"External": "Externo",
"ApiKey": "Chave API",
"PasswordConfirmation": "Confirmação Da Senha"
}

View File

@@ -2,9 +2,7 @@
"20MinutesTwenty": "120 de minute: {0}",
"45MinutesFourtyFive": "90 de minute: {0}",
"60MinutesSixty": "60 de minute: {0}",
"APIKey": "Cheie API",
"About": "Despre",
"ApiKeyHelpTextWarning": "Necesită repornire pentru a intra în vigoare",
"AnalyticsEnabledHelpTextWarning": "Necesită repornire pentru a intra în vigoare",
"AppDataDirectory": "Directorul AppData",
"ApplyTags": "Aplicați etichete",
@@ -112,7 +110,7 @@
"Calendar": "Calendar",
"CalendarWeekColumnHeaderHelpText": "Afișat deasupra fiecărei coloane când săptămâna este vizualizarea activă",
"Cancel": "Anulează",
"CancelMessageText": "Sigur doriți să anulați această sarcină în așteptare?",
"CancelPendingTask": "Sigur doriți să anulați această sarcină în așteptare?",
"CertificateValidation": "Validarea certificatului",
"CertificateValidationHelpText": "Modificați cât de strictă este validarea certificării HTTPS. Nu schimbați dacă nu înțelegeți riscurile.",
"ChangeHasNotBeenSavedYet": "Modificarea nu a fost încă salvată",
@@ -430,8 +428,8 @@
"UsenetDelay": "Întârziere Usenet",
"UsenetDelayHelpText": "Întârziați în câteva minute pentru a aștepta înainte de a lua o eliberare de la Usenet",
"Username": "Nume utilizator",
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Sucursală de utilizat pentru actualizarea Radarr",
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ramură utilizată de mecanismul extern de actualizare",
"BranchUpdate": "Sucursală de utilizat pentru actualizarea Radarr",
"BranchUpdateMechanism": "Ramură utilizată de mecanismul extern de actualizare",
"Version": "Versiune",
"WeekColumnHeader": "Antetul coloanei săptămânii",
"Year": "An",
@@ -653,5 +651,14 @@
"RemoveQueueItemConfirmation": "Sigur doriți să eliminați {0} elementul {1} din coadă?",
"SelectQuality": "Selectați Calitate",
"AutoRedownloadFailed": "Descarcare esuata",
"SourceTitle": "Titlul sursei"
"SourceTitle": "Titlul sursei",
"FailedLoadingSearchResults": "Nu s-au putut încărca rezultatele căutării, încercați din nou.",
"AuthBasic": "Basic (fereastră pop-up browser)",
"AuthForm": "Formulare (Pagina de autentificare)",
"AuthenticationRequired": "Autentificare necesara",
"AuthenticationRequiredPasswordHelpTextWarning": "Introduceți o parolă nouă",
"AuthenticationRequiredUsernameHelpTextWarning": "Introduceți un nou nume de utilizator",
"DisabledForLocalAddresses": "Dezactivat pentru adresele locale",
"ApiKey": "Cheie API",
"Enabled": "Activat"
}

Some files were not shown because too many files have changed in this diff Show More