Compare commits

...

828 Commits

Author SHA1 Message Date
Inex Code 4930fc2387 feat: Show the error screen when libsecret fails
continuous-integration/drone/push Build is passing Details
2024-05-02 15:05:38 +03:00
Inex Code 11d0e58334 fix: Flatpak builds didn't work 2024-04-26 18:08:04 +03:00
NaiJi ✨ a6b846cc78 feat(backups): Show how much space a service uses on backup (#500)
continuous-integration/drone/push Build is passing Details
Fixes #434

![image](/attachments/351cc025-8dae-44f2-9bca-18f8950e0780)

Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: #500
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Co-committed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-04-24 13:18:02 +03:00
NaiJi ✨ 6819192219 feat: Add country names to installation process (#501)
continuous-integration/drone/push Build is passing Details
Fixes #494

Reviewed-on: #501
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Co-committed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-04-24 12:54:32 +03:00
NaiJi ✨ ffdb9d92fb Merge pull request 'fix(backups): Implement filtering for enabled services for backups' (#499) from filter-enabled-backup-services into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #499
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-04-17 18:48:56 +03:00
NaiJi ✨ 1c42598787 fix(backups): Implement filtering for enabled services for backups
- Resolve: #433
2024-04-16 23:03:11 +04:00
dettlaff c179a109fd fix: add subtitle for flash button (#462)
continuous-integration/drone/push Build is passing Details
closes #453

![image](/attachments/398ae5b1-df90-43cf-8389-0be4bafde9fd)

idk how to change hover

Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: #462
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-04-11 13:53:31 +03:00
def add2366e6b feat: add copy link to service page (#461)
continuous-integration/drone/push Build is passing Details
closes #452

Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: #461
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2024-04-11 13:14:20 +03:00
dettlaff 0dc281a4f6 feat: add route to service cards in storage page (#446)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: #446
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-04-11 13:04:22 +03:00
dettlaff a4737e9f05 feat: cubit.state.progress check for connect_to_existing
continuous-integration/drone/push Build is passing Details
2024-04-03 13:00:27 +03:00
Inex Code bf66717854 fix(docs): Digital Ocean DNS used wrong manual
continuous-integration/drone/push Build is failing Details
2024-04-03 12:54:33 +03:00
Inex Code d3b7f31c65 chore: Upgrade flutter and dependencies 2024-04-02 18:11:29 +03:00
Inex Code 1684d60a54 ci: Fix appimage builds (#488)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #488
2024-03-14 21:32:21 +02:00
Inex Code aad595c04e Merge pull request 'chore: update iOS icons' (#487) from inex/release-party into master
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #487
2024-03-14 20:04:25 +02:00
Inex Code c078dee25a chore: update iOS icons 2024-03-14 20:04:11 +02:00
Inex Code 04401e3c00 hotfix: Backups unable to init
continuous-integration/drone/push Build was killed Details
2024-03-14 19:51:51 +02:00
Inex Code 66b487545f Merge pull request 'chore: 0.11.0 release' (#485) from inex/release-party into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #485
2024-03-14 19:25:45 +02:00
Inex Code 48c28261b8 chore: 0.11.0 release 2024-03-14 20:22:03 +03:00
Inex Code e874392a83 refactor: Remove the server deletion function
continuous-integration/drone/push Build is failing Details
2024-03-14 18:19:52 +02:00
Inex Code 7a2d468324 Merge pull request 'update translations' (#478) from translations into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #478
2024-03-14 18:17:26 +02:00
Weblate 79b9f53fa6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2024-03-14 16:00:58 +00:00
Dmitri B 61752c71f2 Translated using Weblate (Estonian)
Currently translated at 100.0% (571 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:58 +00:00
Deem Alosili 54ebaf34db Translated using Weblate (Arabic)
Currently translated at 98.7% (564 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:58 +00:00
Inex Code a9114fb3f4 Translated using Weblate (Kazakh)
Currently translated at 20.4% (117 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:58 +00:00
Inex Code c1a9906729 Translated using Weblate (German)
Currently translated at 82.3% (470 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:58 +00:00
Inex Code d12ff88ab3 Translated using Weblate (Russian)
Currently translated at 100.0% (571 of 571 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-03-14 16:00:58 +00:00
Yaron 5144b0dcd9 Translated using Weblate (Hebrew)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:58 +00:00
def 577098193b Translated using Weblate (French)
Currently translated at 41.9% (229 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:58 +00:00
Meko b288230c3b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:58 +00:00
Deem Alosili e665a8e0e4 Translated using Weblate (Arabic)
Currently translated at 100.0% (564 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:58 +00:00
Meko edebd82ef0 Translated using Weblate (Ukrainian)
Currently translated at 99.6% (544 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
def 9993ec2c87 Translated using Weblate (Arabic)
Currently translated at 99.6% (562 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
Deem Alosili fff7bf98a5 Translated using Weblate (Arabic)
Currently translated at 99.6% (562 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
def 3e70ff03a3 Translated using Weblate (Indonesian)
Currently translated at 0.1% (1 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/id/
2024-03-14 16:00:57 +00:00
def 89f6288f88 Translated using Weblate (French)
Currently translated at 41.5% (227 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:57 +00:00
Meko 623e31fd2c Translated using Weblate (Ukrainian)
Currently translated at 90.2% (493 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
def 18b496ea9b Translated using Weblate (Spanish)
Currently translated at 17.0% (93 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-03-14 16:00:57 +00:00
def 55a2dd080c Translated using Weblate (German)
Currently translated at 85.5% (467 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:57 +00:00
Nil f5ea94fd1b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (564 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/zh_Hans/
2024-03-14 16:00:57 +00:00
Deem Alosili e0a3698a51 Translated using Weblate (Arabic)
Currently translated at 96.6% (545 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ar/
2024-03-14 16:00:57 +00:00
Inex Code 3be041c4b5 Translated using Weblate (Estonian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Inex Code 6e2c2407a4 Translated using Weblate (Hebrew)
Currently translated at 97.8% (534 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:57 +00:00
Inex Code 66a59b7a9d Translated using Weblate (Latvian)
Currently translated at 31.1% (170 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2024-03-14 16:00:57 +00:00
Inex Code 5b1e0a5cea Translated using Weblate (Slovenian)
Currently translated at 35.5% (194 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2024-03-14 16:00:57 +00:00
Inex Code 5394c06d46 Translated using Weblate (Azerbaijani)
Currently translated at 74.5% (407 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2024-03-14 16:00:57 +00:00
Inex Code 336193b531 Translated using Weblate (Thai)
Currently translated at 41.9% (229 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2024-03-14 16:00:57 +00:00
Inex Code 4a99c9955a Translated using Weblate (Slovak)
Currently translated at 74.5% (407 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2024-03-14 16:00:57 +00:00
Inex Code 261990acc8 Translated using Weblate (French)
Currently translated at 41.2% (225 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2024-03-14 16:00:57 +00:00
Inex Code 22323de1d6 Translated using Weblate (Belarusian)
Currently translated at 76.7% (419 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2024-03-14 16:00:57 +00:00
Inex Code c93a98058b Translated using Weblate (Ukrainian)
Currently translated at 89.3% (488 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Inex Code 58697d66d9 Translated using Weblate (Spanish)
Currently translated at 17.0% (93 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-03-14 16:00:57 +00:00
Inex Code 6c7d342911 Translated using Weblate (Czech)
Currently translated at 76.7% (419 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2024-03-14 16:00:57 +00:00
Inex Code e7634df7c0 Translated using Weblate (Polish)
Currently translated at 86.8% (474 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2024-03-14 16:00:57 +00:00
Inex Code b3fd65e02d Translated using Weblate (German)
Currently translated at 85.1% (465 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2024-03-14 16:00:57 +00:00
Inex Code 3b28c31a9f Translated using Weblate (Russian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-03-14 16:00:57 +00:00
Inex Code c9f031fc41 Added translation using Weblate (Chinese (Traditional)) 2024-03-14 16:00:57 +00:00
Inex Code 21c24d7492 Added translation using Weblate (Chinese (Simplified)) 2024-03-14 16:00:57 +00:00
Inex Code 7caa84002c Added translation using Weblate (Arabic) 2024-03-14 16:00:57 +00:00
TabithiS 60359eea03 Translated using Weblate (Kazakh)
Currently translated at 20.9% (118 of 564 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Meko a59c384106 Translated using Weblate (Ukrainian)
Currently translated at 89.3% (488 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Dmitri B a9ee135241 Translated using Weblate (Estonian)
Currently translated at 100.0% (546 of 546 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Weblate 6137602637 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2024-03-14 16:00:57 +00:00
TabithiS 06cfd211a8 Translated using Weblate (Ukrainian)
Currently translated at 85.7% (462 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
TabithiS edb4695228 Translated using Weblate (Polish)
Currently translated at 88.8% (479 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2024-03-14 16:00:57 +00:00
TabithiS bd41849aeb Translated using Weblate (Japanese)
Currently translated at 0.5% (3 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ja/
2024-03-14 16:00:57 +00:00
TabithiS c54bfef4fc Translated using Weblate (Kazakh)
Currently translated at 2.7% (15 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 1a22917d0f Translated using Weblate (Ukrainian)
Currently translated at 81.0% (437 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 3e61dafa3f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/uk/
2024-03-14 16:00:57 +00:00
TabithiS 8780ceec83 Translated using Weblate (Kazakh)
Currently translated at 0.5% (3 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/kk/
2024-03-14 16:00:57 +00:00
Nagibator Nagibuchiy 120bb85f26 Translated using Weblate (Ukrainian)
Currently translated at 80.3% (433 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
TabithiS 081c30dd24 Translated using Weblate (Ukrainian)
Currently translated at 80.3% (433 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2024-03-14 16:00:57 +00:00
Dmitri B b8ca1093fc Translated using Weblate (Estonian)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Dmitri B 55b9ca652f Translated using Weblate (Estonian)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Dmitri eeb93d6523 Translated using Weblate (Estonian)
Currently translated at 50.2% (271 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/et/
2024-03-14 16:00:57 +00:00
Yaron 8f3078931d Translated using Weblate (Hebrew)
Currently translated at 100.0% (539 of 539 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-03-14 16:00:57 +00:00
Inex Code b0528aba81 fix: english strings
continuous-integration/drone/push Build is passing Details
2024-03-14 17:59:49 +02:00
dettlaff b62c0cf388 fix: delete old english strings 2024-03-14 17:59:49 +02:00
Inex Code 6e1ed0474b build(ios): Update ios build things
continuous-integration/drone/push Build is passing Details
2024-03-13 19:35:25 +03:00
Inex Code b25e2f2d5f feat(ui): Overflow of the network graph card 2024-03-13 19:22:56 +03:00
Inex Code 4b08b96b38 feat(ui): Text overflow on the storage card 2024-03-13 19:03:44 +03:00
Inex Code f1c5fa7d82 feat(ui): Try out iOS bottom navbar 2024-03-13 18:32:04 +03:00
Inex Code e9538a4a84 feat(ui): Use adaptive widgets where possible 2024-03-13 18:20:50 +03:00
Inex Code 1cb5df19f3 fix: Title overflow of the provider and service cards titles 2024-03-13 18:02:13 +03:00
Inex Code bba29caeba feat: Add ssh settings
continuous-integration/drone/push Build is passing Details
2024-03-09 19:30:43 +03:00
Inex Code b2384a5635 feat(jobs): Block starting client-side jobs when server is rebuilding or moving a service 2024-03-08 14:14:23 +03:00
Inex Code ff2b6b8f03 refactor(ui): Move server settings to a separate screen 2024-03-05 18:10:15 +03:00
NaiJi ✨ 50ba929519 Merge pull request 'feat(ui): Move provider card title to the top row' (#449) from move-title-in-cards into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #449
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-03-04 13:01:04 +02:00
NaiJi ✨ 3fb7013f84 Merge branch 'master' into move-title-in-cards 2024-03-04 12:58:48 +02:00
NaiJi ✨ aec259301c feat(ui): Change provider card title to headline medium
- Resolve: #448
2024-03-04 14:58:16 +04:00
NaiJi ✨ b8b8ac43ea Merge branch 'master' into move-title-in-cards 2024-03-04 12:42:27 +02:00
Inex Code 67bcbe419f fix: Do not include faulty link-local DNS records in the list of found records
continuous-integration/drone/push Build is passing Details
2024-03-04 01:31:27 +03:00
Inex Code 60c6736487 fix: Empty server confirmation screen during recovery
continuous-integration/drone/push Build is passing Details
2024-03-02 18:50:05 +02:00
Inex Code b29ee2e90e fix: Misleading value of "Do not verify TLS"
continuous-integration/drone/push Build is passing Details
2024-03-01 11:16:53 +02:00
Inex Code 6611093f48 Merge pull request 'fix: Detect the situation when we have faulty link-local IPv6 records' (#473) from inex/fix-linklocal-ipv6 into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #473
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-03-01 11:14:24 +02:00
Inex Code 643020ebd7 fix: Detect the situation when we have faulty link-local IPv6 records 2024-03-01 11:54:27 +03:00
Inex Code c8577b3bdf fix: When using fallback upgrade, UI showed that upgrade failed
continuous-integration/drone/push Build is passing Details
2024-02-23 20:15:39 +03:00
Inex Code 212c60c613 Merge pull request 'fix: Return the binds migration interface' (#467) from inex/binds-migration into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #467
2024-02-23 18:51:52 +02:00
Inex Code a9a7b04ad5 fix: Return the binds migration interface
Turns out, there are still servers that didn't perform the binds migration. The can't perform it anymore because email changed the id. I'm getting back the option to perform the binds migration, with some fallback defaults.
2024-02-23 19:50:28 +03:00
Inex Code 490e5f92f3 refactor(ui): Code deduplication in AboutApplicationPage
continuous-integration/drone/push Build is passing Details
2024-02-23 17:56:54 +02:00
Inex Code e36cba045a feat(ui): Select device icon depending on the screen width 2024-02-23 17:56:54 +02:00
Inex Code b4f700d56a feat(ui): Select device icon depending on the platform we are runnning on 2024-02-23 17:56:54 +02:00
Inex Code 9532ddc8af feat(ui): About page now contains links 2024-02-23 17:56:54 +02:00
Inex Code 0d12b1d2d7 Merge pull request 'refactor: Introduce the API connection repository' (#440) from api-connection-refactor into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #440
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-02-23 16:49:39 +02:00
Inex Code 275e8b1f40 chore: Fixes from review 2024-02-23 17:49:10 +03:00
Inex Code 160e6d3b35 refactor: Remove unused job 2024-02-21 05:00:45 +03:00
Inex Code 7bb96b5ed0 chore: remove prints 2024-02-21 00:45:32 +03:00
Inex Code 43a339af91 refactor: Code deduplication in server data reload 2024-02-20 23:34:45 +03:00
Inex Code caa2fd3b8e refactor: Handle situation when the job has to be removed
Closes #166
2024-02-20 23:17:36 +03:00
Inex Code 4eb8f34e37 Merge remote-tracking branch 'origin/master' into api-connection-refactor 2024-02-20 20:13:19 +03:00
Inex Code 92cf2cde6d refactor: Refactor ServerDetailsCubit to use ApiConnectionRepository 2024-02-20 20:09:14 +03:00
Inex Code 9459191c09 refactor: Remove Job dependency on ClientJobsCubit 2024-02-20 20:04:39 +03:00
Inex Code 16094a3257 refactor: Rework ClientJobs cubit so it doesn't depend on other cubits
Also implemented tracking of the jobs and rebuild status
2024-02-20 19:33:24 +03:00
Inex Code fdb40fccd7 fix: Init ApiConnectionRepository after server access recovery 2024-02-14 15:59:01 +03:00
Inex Code 9a1f47711c chore: Update GraphQL schema with experimental system rebuild tracking 2024-02-12 20:20:30 +03:00
Inex Code 455b1ed7f9 refactor: Replace UsersCubit with UsersBloc 2024-02-09 18:01:05 +03:00
Inex Code e5f00f8770 refactor: Make sure that blocs use sealed classes 2024-02-09 16:54:04 +03:00
Inex Code 710b9b53dd refactor: Replace ApiDevicesCubit with DevicesBloc 2024-02-09 14:07:03 +03:00
Inex Code 27e5abfe4a Merge pull request 'feat: change NavigationDestinationLabelBehavior' (#458) from subtitles_for_menu_options into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #458
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-08 17:18:28 +02:00
def 035fe990d0 Merge branch 'master' into subtitles_for_menu_options 2024-02-08 17:15:21 +02:00
Inex Code 3a525f0d11 refactor: Replace RecoveryKeyCubit with RecoveryKeyBloc 2024-02-08 18:08:29 +03:00
Inex Code 1daf957245 chore: Move ConnectionStatus bloc to bloc folder 2024-02-08 16:58:45 +03:00
Inex Code 0f26683758 Merge pull request 'fix: remove snackbar style notifs' (#457) from remove_snackbar_style_notif into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #457
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-08 14:40:17 +02:00
def 087deede3a Merge branch 'master' into remove_snackbar_style_notif 2024-02-08 14:39:30 +02:00
Inex Code 46910061ed ci: Update Windows build
continuous-integration/drone/push Build was killed Details
2024-02-08 14:30:50 +02:00
aliaksei tratseuski dd81053f42 refactor(UI): Rewrite onboarding page
continuous-integration/drone/push Build was killed Details
rewrote OnboardingPage:
* decomposed into separate widgets
* now content stays centered on wide screens (set so width won't expand further than 480px)
* pageController is now properly disposed
* added some more code changes to
    * main (error widget builder)
    * brand_header (centerTitle instead of empty actions list)
    * console_page (listener callback fix, used gaps instead of SizedBox'es, added keys to list items)
    * service_page (just cleaner build method)
	* removed some dead code

Co-authored-by: Aliaksei Tratseuski <aliaksei.tratseuski@gmail.com>
Reviewed-on: #444
Co-authored-by: aliaksei tratseuski <misterfourtytwo@noreply.git.selfprivacy.org>
Co-committed-by: aliaksei tratseuski <misterfourtytwo@noreply.git.selfprivacy.org>
2024-02-08 13:59:52 +02:00
dettlaff c67661ff65 feat: change NavigationDestinationLabelBehavior 2024-02-08 00:19:27 +04:00
dettlaff ba0e247fba fix: remove SnackBarBehaviov 2024-02-08 00:06:55 +04:00
Inex Code 418d96b842 Merge pull request 'fix(hetzner): Fix the resize volume request' (#456) from hetzner-volume-resize-hotfix into master
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #456
2024-02-07 12:47:41 +02:00
Inex Code 74675cab23 chore: Bump version to 0.10.1 2024-02-07 13:47:22 +03:00
Inex Code 98228cfc05 fix(hetzner): Fix the resize volume request 2024-02-07 13:39:41 +03:00
Inex Code 6914b01d2a refactor: remove ProviderVolumes cubit 2024-02-06 18:21:21 +03:00
Aliaksei Tratseuski 370186030a added keys to segmented_buttons _ButtonSegment's
continuous-integration/drone/push Build is passing Details
2024-02-05 12:59:29 +02:00
Aliaksei Tratseuski 40f4f8822f chore: segmented_buttons rewrite 2024-02-05 12:59:29 +02:00
NaiJi ✨ 1d834703be feat(ui): Move provider card title to the top row
- Resolve: #448
2024-02-04 11:12:14 +04:00
Inex Code 3b9d616045 refactor: Introduce VolumesBloc, remove ServerVolumeCubit 2024-02-01 18:30:06 +04:00
Inex Code 8684a2a48a Merge pull request 'style: Enable directives_ordering lint' (#445) from directives_ordering into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #445
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-31 18:25:43 +02:00
Inex Code 3222a9b500 refactor: Init blocs in initState and not in widget build 2024-01-31 18:06:49 +04:00
Inex Code e330f71b63 refactor: Optimistic state update when forgetting a snapshot 2024-01-31 18:06:22 +04:00
Inex Code 1ba8f324fe refactor: Use transformers for blocs 2024-01-31 16:17:27 +04:00
Inex Code 21c0e200a9 fix: Regenerate codegen for updated model name 2024-01-31 16:03:15 +04:00
Inex Code 725c592086 refactor: Fix callbacks returning sets 2024-01-31 15:14:37 +04:00
Inex Code 02870c3149 style: Formatting 2024-01-31 15:05:12 +04:00
Inex Code fe6f900165 refactor: Move event handler registration to the beginning of blocs 2024-01-31 15:04:59 +04:00
Inex Code f46865ca71 style: Apply directives_ordering lint 2024-01-31 14:57:12 +04:00
Inex Code 31c6a18918 Merge remote-tracking branch 'origin/directives_ordering' into api-connection-refactor
# Conflicts:
#	lib/config/bloc_config.dart
#	lib/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart
#	lib/logic/cubit/backups/backups_cubit.dart
#	lib/logic/cubit/dns_records/dns_records_cubit.dart
#	lib/logic/cubit/providers/providers_cubit.dart
#	lib/logic/models/service.dart
#	lib/ui/pages/backups/backup_details.dart
#	lib/ui/pages/backups/change_period_modal.dart
#	lib/ui/pages/backups/change_rotation_quotas_modal.dart
#	lib/ui/pages/backups/copy_encryption_key_modal.dart
#	lib/ui/pages/more/more.dart
#	lib/ui/pages/server_storage/binds_migration/migration_process_page.dart
#	lib/ui/pages/server_storage/server_storage.dart
#	lib/ui/pages/server_storage/storage_card.dart
2024-01-31 14:50:40 +04:00
Inex Code acb5da9a92 style: Enable directives_ordering lint 2024-01-31 09:14:23 +04:00
Inex Code 149969aed8 refactor: Rename ServerVolume model to reflect that it is tied to provider 2024-01-29 20:49:20 +04:00
Inex Code 9bfaf5d381 refactor: Remove usesBinds from ApiServerVolumeCubit 2024-01-29 20:45:49 +04:00
Inex Code bdd00683cd refactor: Optimistic state update when removing all finished jobs 2024-01-29 20:14:12 +04:00
Inex Code 831a0e95eb refactor: Rewrite services cubit to bloc, using ApiRepo streams 2024-01-29 19:58:37 +04:00
Inex Code a5e7725733 refactor: Rewrite backups cubit to bloc, using ApiRepo streams 2024-01-29 17:54:09 +04:00
NaiJi ✨ 76c420301c Merge pull request 'fix(dns): Make sure that we notice domain ownership lost' (#441) from dns-check into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #441
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-28 09:55:42 +02:00
NaiJi ✨ 2b30136def fix(dns): Make sure that we notice domain ownership lost
- #390
2024-01-28 09:18:36 +04:00
Inex Code b1be3f24d6 refactor: Rewire cubit from depending on server_installation_cubit to the new connection manager 2024-01-26 18:46:09 +04:00
Inex Code 332e31b655 refactor: Remove binds migration 2024-01-26 14:58:59 +04:00
Inex Code 24e5c8baee refactor: Remove unused providers cubit 2024-01-26 14:49:36 +04:00
Inex Code fa21bdf034 refactor: Remove unused timer singleton 2024-01-26 14:43:44 +04:00
Inex Code f10441dca1 Merge pull request 'feat: Enable more languages' (#435) from enable-languages into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #435
2024-01-23 18:50:33 +02:00
Inex Code 82a6f79a35 feat: Enable more languages 2024-01-23 20:49:47 +04:00
Inex Code 1ee02b7433 Merge pull request 'chore: Oops, fix the changelog' (#426) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #426
2024-01-19 16:51:41 +02:00
Inex Code bb03bf6a10 chore: Oops, fix the changelog 2024-01-19 17:51:25 +03:00
Inex Code e7f02e4ad8 Merge pull request 'chore: Bump version to 0.10.0' (#425) from release-party into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #425
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-19 16:50:09 +02:00
Inex Code 175e189d5a chore: Update appimage version 2024-01-19 17:49:56 +03:00
Inex Code 4e7409ca6d chore: Bump version to 0.10.0 2024-01-19 17:47:45 +03:00
Inex Code a1ab687933 Merge pull request 'chore: Update translations' (#413) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #413
2024-01-19 16:00:03 +02:00
Inex Code 3fb5804b20 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/ru/
2024-01-19 13:59:45 +00:00
Inex Code 954630f5e9 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2024-01-19 13:59:45 +00:00
Inex Code 83fe4fa0f3 Translated using Weblate (Russian)
Currently translated at 100.0% (538 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-01-19 13:59:45 +00:00
Inex Code a93844b89c Added translation using Weblate (Estonian) 2024-01-19 13:59:45 +00:00
Yaron ba3d1b86b7 Translated using Weblate (Hebrew)
Currently translated at 100.0% (538 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Yaron c8c3ffb4b9 Translated using Weblate (Hebrew)
Currently translated at 99.2% (534 of 538 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Yaron 3c6eefdbbf Translated using Weblate (Hebrew)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2024-01-19 13:59:45 +00:00
Weblate 82fc4c68c2 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/
2024-01-19 13:59:45 +00:00
NaiJi ✨ 2ab33144fd Translated using Weblate (Spanish)
Currently translated at 18.3% (98 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2024-01-19 13:59:45 +00:00
NaiJi ✨ e4be60a51b Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2024-01-19 13:59:45 +00:00
Inex Code 98b715700a Merge pull request 'fix: Domain name overflows on the "Use this domain?" screen' (#422) from fix_overflows_use_this_domain into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #422
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-19 15:59:42 +02:00
NaiJi ✨ dca733f641 Merge pull request 'feat: Make DNS records deletion and creation dynamic' (#424) from dynamic-dns-deletion into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #424
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-19 15:46:58 +02:00
Inex Code 766f44ee19 style: Add missing trailing comma 2024-01-19 16:38:07 +03:00
NaiJi ✨ 40c423437a refactor: Rename variables and add needed comments
- #265
2024-01-19 17:23:09 +04:00
NaiJi ✨ 2836ce4870 fix(cloudflare): Convert MX name from @ to root domain
- #265
2024-01-19 00:50:42 +02:00
NaiJi ✨ 39f92f769b feat: Add selector._domainkey project record
- #265
2024-01-19 00:50:42 +02:00
NaiJi ✨ d841f9db44 feat: Make DNS deletion and creation dynamic
- #265
2024-01-19 00:50:42 +02:00
def cd33991f97 Merge branch 'master' into fix_overflows_use_this_domain 2024-01-18 15:31:47 +02:00
def 76d93ab782 fix: missclicked on "Approve" button 2024-01-18 15:31:07 +02:00
NaiJi ✨ 9e095a6808 Merge pull request 'fix(graphql): Remove and replace deprecated mutations' (#423) from actualizing-graphql into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #423
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-15 19:08:28 +02:00
NaiJi ✨ 07058d3db5 fix(graphql): Remove and replace deprecated mutations
- #418
2024-01-15 13:11:09 +04:00
def 79fae03e9b fix: overflows use this domain 2024-01-12 18:23:13 +02:00
NaiJi ✨ 09cb734859 Merge pull request 'fix: Update loginInfo with new service IDs' (#419) from new-service-ids into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #419
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-10 16:17:13 +02:00
Inex Code b974062626 fix: Update loginInfo with new service IDs 2024-01-10 15:50:37 +02:00
Inex Code 16dca8faf8 Merge pull request 'feat: Implement dynamic DNS records validation' (#392) from dynamic-dns into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #392
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-10 14:52:16 +02:00
NaiJi ✨ 528d0c4c10 Merge pull request 'chore: Update the copyright year' (#417) from copyright-year into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #417
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2024-01-09 22:41:27 +02:00
Inex Code 23922ef243 chore: Update the copyright year 2024-01-09 21:46:57 +02:00
NaiJi ✨ 8e952abd94 fix: Change kotlin version for gradle 2024-01-08 13:46:43 +04:00
NaiJi ✨ a45ac7e344 fix: Adapt domain iteration on recovery to new provider interface 2024-01-05 07:28:45 +04:00
NaiJi ✨ ff9c96a114 fix(cloudflare): Adapt Cloudflare DNS convertion 2024-01-05 07:15:27 +04:00
NaiJi ✨ 19e070133c Merge branch 'master' into dynamic-dns 2023-12-29 22:24:59 +02:00
NaiJi ✨ 1c07476764 refactor: Move DNS records validation to cubit layer 2023-12-29 23:58:58 +04:00
Inex Code 985db9a479 Merge pull request 'Use the new NixOS infect' (#415) from nixos-23.11 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #415
2023-12-29 13:45:31 +02:00
Inex Code 2a4614c673 feat: Allow custom SSH keys during setup and use the new NixOS infect 2023-12-28 22:35:39 +03:00
Inex Code e26b6a23b2 fix(ui): Filled button overflow 2023-12-28 20:07:30 +03:00
def e3e5570e4e feat: Add the button to copy password on the new user creation screen (#409)
continuous-integration/drone/push Build is passing Details
#299

Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: #409
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-12-28 15:19:16 +02:00
def d7bf6a0c06 feat: Add animation to the recovery key screen (#410)
continuous-integration/drone/push Build is passing Details
#164
Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: #410
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-12-26 11:28:52 +02:00
NaiJi ✨ ada5f1a66c Merge branch 'master' into dynamic-dns 2023-12-20 15:09:29 +02:00
NaiJi ✨ 20d7f37b8b Merge pull request 'linter-3.16.1' (#411) from linter-3.16.1 into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #411
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-20 15:08:59 +02:00
NaiJi ✨ 371d83b4be fix(linter): Change httpClientAdapter callback creation 2023-12-20 17:04:33 +04:00
NaiJi ✨ 9ea952b46e refactor(linter): Force const constructor where needed 2023-12-20 16:58:46 +04:00
NaiJi ✨ 5c03749577 refactor(linter): Add library; to brand icons 2023-12-20 16:57:52 +04:00
NaiJi ✨ 2ef0121321 refactor(linter): Create HTTP client from adapter 2023-12-20 16:56:31 +04:00
NaiJi ✨ 02a2097b10 refactor(linter): Change DioError to DioException 2023-12-20 16:50:43 +04:00
NaiJi ✨ f1b0b3fc9e Merge branch 'master' into dynamic-dns 2023-12-18 08:46:19 +04:00
NaiJi ✨ 2f6b4e0f9c Merge pull request 'feat: Implement better domain ownership check during installation' (#394) from domain-ownership-setup into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #394
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-12 17:24:22 +02:00
Inex Code 4ed038d34c refactor: Tweak the design of the BrokenDomainOutlinedCard 2023-12-12 08:31:37 +03:00
def 2d29fdc58b Merge pull request 'docs: update screenshots' (#393) from update_screensots into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #393
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-06 14:37:23 +02:00
def 06dc8ebfb8 Merge branch 'master' into update_screensots 2023-12-06 14:37:14 +02:00
NaiJi ✨ 37d2f2fe11 Merge pull request 'fix(ui): Remove listening of a server volume cubit for migration page' (#400) from migration-button-error into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #400
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:10:37 +02:00
NaiJi ✨ 5d92c95ce0 Merge pull request 'fix(devices): Update refreshing state for Devices page' (#398) from device-screen-updating into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #398
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:09:18 +02:00
NaiJi ✨ 4eb3dac101 Merge pull request 'feat(backblaze): Include milliseconds since epoch to bucket name' (#403) from better-bucket-name into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #403
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 20:03:17 +02:00
NaiJi ✨ 55d77b2144 Merge branch 'master' into better-bucket-name 2023-12-03 20:03:11 +02:00
NaiJi ✨ f6ded5399c refactor(backblaze): Move milliseconds since epoch to the beginning of bucket name 2023-12-03 21:58:56 +04:00
NaiJi ✨ 2710ba3e26 Merge pull request 'fix(hetzner): Filter away ARM architecture from available servers' (#404) from arm-filtering into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #404
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-03 19:45:23 +02:00
NaiJi ✨ e00c783cb0 Merge branch 'master' into dynamic-dns 2023-12-03 11:55:41 +02:00
NaiJi ✨ 9d09354363 Merge branch 'master' into domain-ownership-setup 2023-12-03 11:55:32 +02:00
NaiJi ✨ 07998f115f Merge branch 'master' into device-screen-updating 2023-12-03 11:55:25 +02:00
NaiJi ✨ e733354aa1 Merge branch 'master' into migration-button-error 2023-12-03 11:55:15 +02:00
NaiJi ✨ f977193fae Merge branch 'master' into better-bucket-name 2023-12-03 11:55:03 +02:00
NaiJi ✨ 0a988ce637 Merge branch 'master' into arm-filtering 2023-12-03 11:54:55 +02:00
Inex Code 9663bbf146 Merge pull request 'ci: Disable sonarqube for now as it uses Dart 2.17.5 for reasons unknown' (#406) from ci-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #406
2023-12-03 04:27:27 +02:00
Inex Code 9b9d325a09 ci: Disable sonarqube for now as it uses Dart 2.17.5 for reasons unknown 2023-12-03 05:27:07 +03:00
Inex Code 19b3ee52c6 Merge pull request 'ci: Fix test run' (#405) from ci-fix into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #405
2023-12-03 03:04:15 +02:00
Inex Code e269233057 ci: Fix test run 2023-12-03 04:04:00 +03:00
NaiJi ✨ ee49b634ae Merge 'master' into 'dynamic-dns' 2023-12-03 01:12:55 +04:00
NaiJi ✨ b5cfdfd68a fix(hetzner): Filter away ARM architecture from available servers
- Resolve #402
2023-12-03 01:01:46 +04:00
NaiJi ✨ faa02c54fe feat(backblaze): Include milliseconds since epoch to bucket name
- Resolve #263
2023-12-03 00:44:32 +04:00
NaiJi ✨ 79f73ec729 Merge pull request 'chore: Upgrade to Flutter 3.16.1' (#401) from flutter-upgrade into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #401
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2023-12-01 22:17:41 +02:00
Inex Code 84fb5dc613 chore: Upgrade to Flutter 3.16.1 2023-12-01 21:41:35 +02:00
Inex Code 8729926c36 Merge pull request 'chore: Update translations' (#374) from translations into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #374
2023-12-01 16:16:10 +02:00
Inex Code e80b5b8fb3 Merge branch 'master' into translations
# Conflicts:
#	assets/translations/en.json
2023-12-01 17:15:33 +03:00
Inex Code 53641980f7 Merge pull request 'chore(i18l): Rename button that initiates recovery process' (#399) from rename-recovery-button into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #399
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-30 15:31:23 +02:00
NaiJi ✨ 4abd1e15f1 fix(ui): Remove listening of a server volume cubit for migration page 2023-11-30 12:33:54 +04:00
NaiJi ✨ 5b94cc0cc0 fix(devices): Add refresh indicator to 'Other devices' section
- Resolve #163
2023-11-30 12:15:56 +04:00
NaiJi ✨ 2125c59df9 chore(i18l): Rename button that initiates recovery process
- Resolve #346
2023-11-30 10:20:21 +04:00
NaiJi ✨ da0b0b7670 fix(devices): Make devices state remember current device on refresh
- Resolve #258
2023-11-30 10:04:57 +04:00
NaiJi ✨ 0b4f8d66ef Merge branch 'master' into domain-ownership-setup 2023-11-30 07:50:01 +02:00
Marvin F e36339d2fc Translated using Weblate (German)
Currently translated at 88.5% (472 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-11-29 14:42:14 +00:00
Yaron 5fadc086bb Translated using Weblate (Hebrew)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/he/
2023-11-29 14:42:14 +00:00
smtg 72fc8fc7ba Translated using Weblate (French)
Currently translated at 43.3% (231 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-11-29 14:42:14 +00:00
Inex Code bf8fbbc2e2 Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
Inex Code feb8ac3b2b Added translation using Weblate (Hebrew) 2023-11-29 14:42:14 +00:00
NaiJi ✨ 656dd806a0 Translated using Weblate (Spanish)
Currently translated at 14.6% (78 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2023-11-29 14:42:14 +00:00
NaiJi ✨ dc3c6cfa19 Translated using Weblate (Russian)
Currently translated at 100.0% (532 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
NaiJi ✨ ab49f0dcd2 Translated using Weblate (English)
Currently translated at 100.0% (532 of 532 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
Weblate 32f866461c Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-11-29 14:42:14 +00:00
User 1234 c814127f50 Translated using Weblate (German)
Currently translated at 85.4% (454 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-11-29 14:42:14 +00:00
def bea6dd4635 Translated using Weblate (English)
Currently translated at 100.0% (531 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
def 7df73f53bb Translated using Weblate (English)
Currently translated at 100.0% (531 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-11-29 14:42:14 +00:00
def 630800d034 Translated using Weblate (Russian)
Currently translated at 99.8% (530 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
def 7b18f66291 Translated using Weblate (Russian)
Currently translated at 99.8% (530 of 531 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
Inex Code ceb6f29048 Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-11-29 14:42:14 +00:00
NaiJi ✨ 76f977bc50 Merge pull request 'feat(ui): Add jobs fab button to Snapshot List page' (#396) from snapshost-list-fab into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #396
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-29 16:42:12 +02:00
NaiJi ✨ 5a33bec6bd feat(ui): Make Snapshot List page show fab button
- Resolve #290
2023-11-29 18:38:27 +04:00
NaiJi ✨ 8037eec486 feat: Implement better domain ownership check during installation
- Produce support instructions for DNS domain recovery

- #389
2023-11-27 19:00:05 +04:00
def f8cdce1ebd Merge branch 'master' into update_screensots 2023-11-25 19:23:38 +02:00
dettlaff ffb13eafe7 docs: update screenshots 2023-11-25 21:22:54 +04:00
NaiJi ✨ 98f107b675 fix(cloudflare): Improve DNS records convertion to deSEC DNS 2023-11-22 15:14:02 +04:00
NaiJi ✨ e9c881c408 fix(cloudflare): Improve DNS records convertion to Cloudflare DNS 2023-11-22 12:09:19 +04:00
NaiJi ✨ cd9b47b924 Merge branch 'master' into 'dynamic-dns' 2023-11-22 09:34:31 +04:00
NaiJi ✨ 087813eaae Merge pull request 'fix: Revert lints of premaster flutter version back to 3.16' (#391) from fix-flutter-versioning-lints into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #391
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 17:46:03 +02:00
NaiJi ✨ e50ef9b189 fix: Revert lints of premaster flutter version back to 3.16 2023-11-20 19:38:24 +04:00
NaiJi ✨ 699f906bf1 Merge pull request 'refactor: Fix linter warnings' (#384) from lints into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #384
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 16:34:31 +02:00
NaiJi ✨ 8dc5847c6c Merge branch 'master' into 'lints' 2023-11-20 18:33:31 +04:00
NaiJi ✨ 1e68789a8c fix: Bump material_color_utilities version to 0.5.0, required by flutter test 2023-11-20 18:31:24 +04:00
NaiJi ✨ f11a75dfb7 refactor: Remove obsolete network objects 2023-11-20 18:29:26 +04:00
NaiJi ✨ d4ff17201e Merge pull request 'fix(hetzner): Remove optional status enum for getVolumes of Hetzner' (#388) from hetzner-volume into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #388
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 16:24:02 +02:00
NaiJi ✨ cea2f6d8a4 refactor: Correct a typo in Hetzner API 2023-11-20 18:10:19 +04:00
NaiJi ✨ f7afd6fd15 fix(hetzner): Remove optional status enum for getVolumes of Hetzner 2023-11-20 03:32:41 +04:00
NaiJi ✨ 54dee9c291 Merge pull request 'feat: Implement flexible precision formatting for prices' (#387) from string-trailing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #387
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-20 00:02:51 +02:00
NaiJi ✨ a2b28e199d feat: Implement flexible precision formatting for prices 2023-11-19 23:51:36 +04:00
NaiJi ✨ c34a5b97d6 fix: Improve DNS formatting for Cloudflare DNS 2023-11-19 23:34:58 +04:00
NaiJi ✨ cd97833025 feat: Make GetDnsRecords query return also service DNS 2023-11-18 10:22:07 +04:00
NaiJi ✨ b46ef2f7a3 Merge branch 'master' into dynamic-dns 2023-11-18 09:24:10 +04:00
NaiJi ✨ 98262a473f Merge pull request 'fix(api): Force DateTime to UTC where timezone naive' (#386) from timezone-offset into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #386
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-13 12:25:45 +02:00
NaiJi ✨ ec8d08ff07 fix(api): Force DateTime to UTC where timezone naive
- Solve #385
2023-11-13 14:03:52 +04:00
NaiJi ✨ d45417effe feat: Implement model adapter for Digital Ocean DNS
- Adapt all external interfaces to new DNS record models
2023-11-09 18:48:49 +04:00
NaiJi ✨ 5a7ae23ec2 feat: Implement model adapter for Cloudflare DNS 2023-11-09 17:21:56 +04:00
NaiJi ✨ e9c01576b2 feat: Implement model adapters
- Move desec model conversion to adapters
2023-11-09 16:52:27 +04:00
NaiJi ✨ db1a8b6f67 refactor: Move deSEC DNS conversion into DesecDnsRecord model
- Get rid of desired dns records hardcore for deSEC
2023-11-08 18:31:28 +04:00
NaiJi ✨ c894456fe6 refactor: Fix linter warnings
- Remove unused text_extensions.dart
2023-11-06 17:15:38 +04:00
def dd9722646e Merge pull request 'update description' (#377) from update_description into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #377
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-21 17:44:12 +03:00
dettlaff a01f9d3786 Merge branch 'update_description' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org.app into update_description 2023-10-21 18:42:13 +04:00
dettlaff c05a3d99a6 docs: update screenshot names, del old 2023-10-21 18:41:45 +04:00
def d14c2c5d36 docs: delete /fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg 2023-10-21 17:39:47 +03:00
dettlaff 1db6dc717a docs: upd description 2023-10-21 17:39:47 +03:00
dettlaff e337e93ac7 docs: add new screenshots 2023-10-21 17:39:47 +03:00
dettlaff 2eda1d18d2 docs: upd description 2023-10-12 01:45:37 +04:00
dettlaff d68b0b5251 docs: add new screenshots 2023-10-12 01:43:19 +04:00
Inex Code 98741e0a3a Merge pull request 'chore: Remove redundant metadata and bump version' (#373) from fdroid-metadata into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #373
2023-10-09 12:41:31 +03:00
Inex Code f8dfa4e954 chore: Remove redundant metadata and bump version 2023-10-09 12:40:48 +03:00
NaiJi ✨ a9edf44752 Merge pull request 'feat: Implement confirmation modal for volume resizing' (#372) from volume-resize-modal into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #372
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-09 02:15:48 +03:00
NaiJi ✨ 87b58ec6d8 feat: Implement confirmation modal for volume resizing
- Resolve #308
2023-10-07 18:52:36 -03:00
NaiJi ✨ 7a10d46f0f Merge pull request 'refactor: Remove redundant zone id cache for Cloudflare' (#371) from cloudflare-caching into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #371
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-06 23:37:34 +03:00
NaiJi ✨ e1aeb89991 Merge branch 'master' into cloudflare-caching 2023-10-06 01:44:20 +03:00
NaiJi ✨ c2ae962322 refactor: Remove redundant zone id cache for Cloudflare 2023-10-05 19:42:29 -03:00
NaiJi ✨ dd54f5fa42 Merge pull request 'feat(ssh): Add support for ECDSA SSH keys' (#362) from ssh-edcsa into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #362
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-03 20:57:51 +03:00
NaiJi ✨ 34eda8ca2d Merge branch 'master' into ssh-edcsa 2023-10-03 20:57:35 +03:00
NaiJi ✨ 0cb2f2082a Merge pull request 'fix: Force size value truncation for digital ocean, change query url' (#368) from digital-ocean-volume into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #368
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-02 20:11:03 +03:00
NaiJi ✨ 6096ef2572 Merge branch 'master' into digital-ocean-volume 2023-10-02 20:10:54 +03:00
NaiJi ✨ c0624fe5b1 Merge pull request 'fix(ui): Disable storage card while volume information is being fetched' (#369) from storage-card-lock into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #369
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-02 20:10:47 +03:00
NaiJi ✨ 97a9793f9d fix(ui): Disable storage card while volume information is being fetched
- Resolve #317
2023-09-30 21:51:11 -03:00
NaiJi ✨ 043d29538c refactor: Conventionally reduce DiskSize to only 'int gb' for resize digital ocean volume 2023-09-30 21:35:58 -03:00
NaiJi ✨ fbacb5969d fix: Force size value truncation for digital ocean, change query url
- Resolve #367
2023-09-30 21:04:04 -03:00
NaiJi ✨ 172253902d feat(ssh): Add support for ECDSA SSH keys
- Resolve #319
2023-09-26 16:18:50 -03:00
Inex Code 0537ebcfb2 Merge pull request 'docs: Add issue templates' (#361) from issue-template into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #361
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2023-09-26 20:26:45 +03:00
Inex Code 5ff615bb8b docs: Fix grammar of issue templates 2023-09-26 20:26:28 +03:00
Inex Code fca04f89ad docs: Add issue templates 2023-09-26 20:26:28 +03:00
NaiJi ✨ e49b5db4b6 Merge pull request 'refactor(ui): Reorganize placeholders for empty pages' (#359) from plug-backgrounds into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #359
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-26 20:26:15 +03:00
Inex Code 914775ac48 chore(ui): Change icon of the Services placeholder 2023-09-26 20:20:13 +03:00
NaiJi ✨ f9c951f127 Merge branch 'master' into plug-backgrounds 2023-09-26 18:46:14 +03:00
NaiJi ✨ a83e1e0056 Merge pull request 'refactor(ui): Move service card name to its icon row' (#352) from service-card-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #352
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-26 17:58:26 +03:00
NaiJi ✨ aa4429cc79 refactor(ui): Reorganize placeholders for empty pages
- Resolve #348
- Make 'Data Center' cards unclickable when uninitialized
2023-09-23 23:03:54 -03:00
NaiJi ✨ c64c6e11d7 refactor(ui): Change SizedBox dimension hardcode from 10 to 8 for service cards 2023-09-18 12:42:40 -03:00
NaiJi ✨ ec36f6b764 Merge branch 'master' into service-card-naming 2023-09-18 18:39:58 +03:00
NaiJi ✨ 9eedc02a07 Merge pull request 'feat: Add copy-to-clipboard for email on user page' (#329) from email-copy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #329
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:38:55 +03:00
NaiJi ✨ 86f2d0c0bb Merge branch 'master' into email-copy 2023-09-18 18:34:47 +03:00
NaiJi ✨ a7e8c0aa6b Merge branch 'master' into service-card-naming 2023-09-18 18:34:16 +03:00
NaiJi ✨ d97d133479 Merge pull request 'refactor(ui): Make users be ordered properly on users page' (#343) from users-order into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #343
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:32:56 +03:00
NaiJi ✨ 70c47c69ab Merge branch 'master' into email-copy 2023-09-18 18:30:25 +03:00
NaiJi ✨ 8901507f08 Merge branch 'master' into service-card-naming 2023-09-18 18:30:03 +03:00
NaiJi ✨ 7aa3305d23 refactor: Rename isUserPrimary to isPrimaryUser for User 2023-09-18 12:28:41 -03:00
NaiJi ✨ dae535e35a Merge branch 'master' into users-order 2023-09-18 12:26:50 -03:00
NaiJi ✨ f34c4417b6 Merge pull request 'refactor(ui): Change measure units on 'Extending volume' page' (#344) from extending-fields into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #344
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:23:33 +03:00
NaiJi ✨ 90e73ec2f3 Merge pull request 'refactor(ui): Move service descriptions above login info for service cards' (#342) from service-descriptions into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #342
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-18 18:23:04 +03:00
NaiJi ✨ 40568925e1 refactor(ui): Move service card name to its icon row
- Resolves #350
2023-09-18 12:22:37 -03:00
NaiJi ✨ 5c329d47c1 refactor(ui): Make users be ordered properly on users page
- Resolves #340
2023-09-16 02:09:40 -03:00
NaiJi ✨ 887302f936 refactor(ui): Add measure units to 'Extending volume' page
- Resolves #301
2023-09-16 01:41:02 -03:00
NaiJi ✨ d2ed9f3a75 refactor(ui): Move service descriptions above login info for service cards
- Resolves #341
2023-09-16 00:46:16 -03:00
Inex Code eb92a8ee56 Merge pull request 'ci: Fix appimage version tag' (#338) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #338
2023-09-10 15:23:23 +03:00
Inex Code 3370ae2867 ci: Fix appimage version tag 2023-09-10 15:23:17 +03:00
Inex Code 8b858307fe Merge pull request 'chore: Bump app version' (#337) from release-party into master
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/tag Build is failing Details
Reviewed-on: #337
2023-09-10 15:11:24 +03:00
Inex Code da85253268 chore: Bump app version 2023-09-10 14:53:43 +03:00
Inex Code 2a210f6af2 Merge pull request 'Fix russian translations' (#336) from translations into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #336
2023-09-10 14:52:12 +03:00
NaiJi ✨ 096338cef7 Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 11:42:53 +00:00
Inex Code 580a68fd7c Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 11:42:53 +00:00
Inex Code 40725138bd Merge pull request 'Add russian translations' (#335) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #335
2023-09-10 14:09:03 +03:00
Inex Code dd7436b2fd Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 09:49:36 +00:00
Inex Code d812066355 Translated using Weblate (Russian)
Currently translated at 100.0% (529 of 529 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-10 09:48:20 +00:00
Inex Code d1927989d7 Merge pull request 'chore(i18l): Add missing translation' (#334) from rotation-settings into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #334
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-10 12:48:17 +03:00
Inex Code beb526a635 chore(i18l): Add missing translation 2023-09-10 12:46:55 +03:00
Inex Code bf8c58b5b9 Merge pull request 'weblate-conflict' (#333) from weblate-conflict into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #333
2023-09-10 12:22:33 +03:00
Inex Code 509bcf808d chore(i18l): Resolve Weblate conflict 2023-09-10 12:21:18 +03:00
Inex Code dc3544e8ca Merge pull request 'feat(backups): Allow to change snapshot rotation settings' (#332) from rotation-settings into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #332
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-10 11:20:19 +03:00
Inex Code 0ffd7e61d6 feat(backups): Add note about the scope of backup rotation 2023-09-09 21:20:21 +03:00
Inex Code 1b26f2cf29 feat(backups): Allow to change snapshot rotation settings 2023-09-09 21:13:27 +03:00
Inex Code 90f84e8c9c Merge pull request 'feat(backups): Show the snapshot creation reason' (#331) from backup-reason into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #331
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-09-09 11:15:40 +03:00
Inex Code aac4b2773b feat(backups): Show the snapshot creation reason 2023-09-09 10:22:43 +03:00
Inex Code ef91ffaf2b Merge pull request 'feat: Implement dialogue to choose an domain from several during installation' (#330) from domain-selection into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #330
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-08 15:42:38 +03:00
Inex Code 505444fb21 Merge pull request 'feat: Implement visible accent when backup modal buttons are disabled' (#326) from gray-backups into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #326
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-08 15:42:19 +03:00
Inex Code 031ad47417 refactor(ui): Domain selection refresh 2023-09-08 15:41:12 +03:00
Inex Code d5fa841747 chore: Remove unused 'cloudflare_api_token' translation string 2023-09-08 09:57:57 +03:00
Inex Code 062fa725c4 fix(ui): DNS API key support page was using old code 2023-09-08 09:38:08 +03:00
NaiJi ✨ afa83f0d29 chore: I embarrassed myself... 2023-09-08 03:08:02 -03:00
NaiJi ✨ 14dbdbbc73 feat: Implement dialogue to choose an domain from several during installation 2023-09-08 02:54:28 -03:00
NaiJi ✨ 3c548e5aa9 feat: Add copy-to-clipboard for email on user page
- Implement setClipboard adapter and encapsulate platform dependency on clipboard service
2023-09-07 18:26:33 -03:00
NaiJi ✨ cd452d5f26 refactor: Change getOverrideColor lambda to simple variable in backup page 2023-09-07 18:04:26 -03:00
NaiJi ✨ a67c203266 Merge branch 'master' into gray-backups 2023-09-07 18:00:49 -03:00
NaiJi ✨ fd13828ec3 Merge pull request 'feat: Implement copying to clipboard for snapshot id of backups' (#325) from snapshot-id into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #325
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 23:58:39 +03:00
NaiJi ✨ 35faadcc63 Merge pull request 'fix: Change 'mailserver' string id to 'email' in loginInfo switch' (#327) from mailserver-description into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #327
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 23:57:47 +03:00
Inex Code fe93360870 refactor: Use snackbar to show snapshot id copy notification 2023-09-07 14:35:42 +03:00
NaiJi ✨ 7b8d9ddca9 fix: Change 'mailserver' string id to 'email' in loginInfo switch 2023-09-06 23:41:34 -03:00
NaiJi ✨ e07394e8b1 feat: Implement visible accent when backup modal buttons are disabled 2023-09-06 23:31:47 -03:00
NaiJi ✨ ffa985aba2 feat: Implement copying to clipboard for snapshot id of backups 2023-09-06 23:03:06 -03:00
NaiJi ✨ c5671cc767 Merge pull request 'feat: Include volume and ipv4 costs to overall monthly cost per server' (#270) from price-calculation into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #270
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 02:54:56 +03:00
NaiJi ✨ 8a5ee1d42e Merge 'master' into 'price-calculation' 2023-09-06 20:54:30 -03:00
Inex Code 0984892a01 feat: UI tweaks for server costs 2023-09-06 20:01:56 +03:00
Mithras 9d7bb26ab8 Translated using Weblate (Ukrainian)
Currently translated at 88.2% (419 of 475 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-09-05 21:36:51 +00:00
Mithras 30fde19ce9 Translated using Weblate (Russian)
Currently translated at 100.0% (475 of 475 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-09-05 21:36:51 +00:00
Weblate 5b363a9eb6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-09-05 21:36:51 +00:00
NaiJi ✨ 82dfdf04f9 fix: Implement Backblaze bucket restoration on server recovery (#324)
continuous-integration/drone/push Build is passing Details
Resolves issue [320](#320).

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: #324
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-06 00:36:49 +03:00
NaiJi ✨ 1642cb907d Merge pull request 'refactor: Remove mentions of cloudflare from general variables' (#323) from dkim-record-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #323
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-05 14:46:55 +03:00
NaiJi ✨ 85abd8f0fc refactor: Remove mentions of cloudflare from general variables 2023-09-05 08:45:09 -03:00
NaiJi ✨ 63ac367007 Merge pull request 'fix: Wrap DNS check in catch to avoid runtime crash' (#322) from dns-check-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #322
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-05 14:43:02 +03:00
NaiJi ✨ 8f7730575e fix: Wrap DNS check in catch to avoid runtime crash 2023-09-05 08:34:01 -03:00
Inex Code d64764f4a8 Merge branch 'master' into price-calculation 2023-09-01 15:38:35 +03:00
Inex Code 645d58d513 Merge pull request 'feat(backups): Implement restore backup strategy and forget snapshot' (#274) from restore-strategy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #274
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-14 07:31:19 +03:00
Inex Code bc3cfa20bb feat(backups): Add backup-related strings 2023-08-14 07:21:42 +03:00
Inex Code b01c61a47b feat(backups): Add snapshot restore modal 2023-08-14 07:10:15 +03:00
Inex Code 03f7e7d819 fix(ui): Fix encryption key modal behaviour when no key found
Closes #300
2023-08-14 07:09:06 +03:00
Inex Code 7e1620be3c fix(ui): Add loading animation for backups screen
Closes #309
2023-08-14 05:54:11 +03:00
Inex Code 4170224119 fix(ui): Add divider in backups screen 2023-08-14 05:48:15 +03:00
Inex Code 13e80a9e37 Merge branch 'master' into restore-strategy 2023-08-14 05:35:52 +03:00
Inex Code 7db7cd79b0 Merge pull request 'fix: Replace hard reset from server provider with direct server reboot' (#269) from soft-reset into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #269
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-14 05:34:30 +03:00
Inex Code 6e241ff4d2 Merge branch 'master' into soft-reset 2023-08-14 05:34:18 +03:00
NaiJi ✨ 8f30c3a4ba Merge pull request 'fix: Don't let start service migration if the same volume was picked' (#293) from service-migration into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #293
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 18:30:39 +03:00
NaiJi ✨ e4c5220fb4 refactor: Rename isTherePendingChange to isVolumePicked on migration page 2023-08-11 10:21:27 -03:00
NaiJi ✨ 2279ebf47f Merge 'master' into 'service-migration' 2023-08-11 10:17:31 -03:00
NaiJi ✨ 859437b911 Merge pull request 'feat: Add autofocus to cubit text fields for keyboard displaying' (#294) from keyboard into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #294
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 16:15:24 +03:00
NaiJi ✨ 43fa4a6fe2 Merge pull request 'fix(i18l): Add dot to the end of reset_config_description key for translations' (#295) from assets-dot into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #295
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-11 16:15:11 +03:00
NaiJi ✨ e77a9403ca fix(i18l): Add dot to the end of reset_config_description key for translations 2023-08-11 02:03:29 -03:00
NaiJi ✨ a94965ab0d feat: Add autofocus to cubit text fields for keyboard displaying 2023-08-10 23:21:45 -03:00
NaiJi ✨ 91dce222cc fix: Don't let start service migration if the same volume was picked 2023-08-10 23:07:03 -03:00
NaiJi ✨ 5eadbd9e6b Merge pull request 'fix(i18l): Change broken validations string for superuser SSH' (#276) from user-assets into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #276
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-08 22:13:54 +03:00
NaiJi ✨ e417088340 fix(i18l): Change broken validations string for superuser SSH 2023-08-07 10:26:52 -03:00
NaiJi ✨ 3ad6bb7bea Merge 'master' into 'soft-reset' 2023-08-07 10:15:23 -03:00
NaiJi ✨ 702a8049c5 Merge 'master' into 'restore-strategy' 2023-08-07 10:14:46 -03:00
NaiJi ✨ 316e1f5db6 Merge 'master' into 'price-calculation' 2023-08-07 10:14:08 -03:00
NaiJi ✨ 5570f16adf Merge pull request 'chore(router): Generate new build runner object for router class' (#275) from router into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #275
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 16:11:04 +03:00
NaiJi ✨ 4ef83fc6bd chore(router): Generate new build runner object for router class 2023-08-07 10:07:54 -03:00
NaiJi ✨ 80b83980ce feat(backup): Implement forget snapshot method 2023-08-07 09:44:26 -03:00
NaiJi ✨ 75b8a7b9ac feat(backups): Implement restore backup strategy 2023-08-07 09:23:48 -03:00
NaiJi ✨ d4340fc9e0 Merge pull request 'fix: Remove unused ZoneId member' (#273) from zone-id-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #273
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 14:11:08 +03:00
NaiJi ✨ dce33b2d4c fix: Remove unuzed ZoneId member 2023-08-07 08:09:24 -03:00
NaiJi ✨ 5c473d96a9 Merge 'master' into 'soft-reset' 2023-08-07 08:03:24 -03:00
NaiJi ✨ 20c3948e60 Merge 'master' into 'price-calculation' 2023-08-07 07:58:57 -03:00
NaiJi ✨ 037498070a fix: Include IPv4 cost to overall server cost 2023-08-07 07:52:26 -03:00
NaiJi ✨ a17b66c729 Merge pull request 'refactor: Implement Cloudflare-specific objects to avoid usage of global models' (#268) from dto into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #268
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:45 +03:00
NaiJi ✨ e35514b670 Merge pull request 'feat: Replace general entity naming on UI with specifics.' (#264) from hardcoded-naming into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #264
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:30 +03:00
NaiJi ✨ 1db2f53c9a Merge pull request 'fix(hetzner): Normalize CPU usage percentage by cached amount of cores' (#272) from hetzner-cpu into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #272
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:02:35 +03:00
NaiJi ✨ d51661630b Merge pull request 'chore: Add missing trailing commas to encryption key modal page' (#271) from trailing-commas into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #271
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 11:14:43 +03:00
NaiJi ✨ 719a5a7274 fix(hetzner): Normalize CPU usage percentage by cached amount of cores 2023-08-07 04:08:54 -03:00
NaiJi ✨ 4b1c85c4a8 chore: Add missing trailing commas to encryption key modal page 2023-08-06 20:32:05 -03:00
NaiJi ✨ 4f8f87f8a8 feat: Include volume cost to overall monthly cost per server 2023-08-06 20:28:02 -03:00
NaiJi ✨ e97d52bad5 fix: Replace runSystemRebuild with rebootSystem 2023-08-06 18:24:41 -03:00
NaiJi ✨ ffe923ef13 fix: Replace hard reset from server provider with direct server reboot 2023-08-02 18:08:23 -03:00
NaiJi ✨ bd9a383d38 chore: Remove debug prints 2023-08-02 16:08:26 -03:00
NaiJi ✨ b2c67c80bd refactor: Implement Cloudflare objects to avoid usage of dynamic blobs
- Get rid of ZoneId term outside of Cloudflare
2023-08-02 16:04:49 -03:00
NaiJi ✨ bd8faf8760 feat: Replace general entity naming on UI with specifics.
- Pass actual provider namings to .tr functions as arguments
- Remove hardcoded namings where known
- Get rid of general mentions of 'DNS Provider' or 'Server Provider' where confusing
2023-07-28 20:42:41 -03:00
Inex Code 11e745f822 Merge pull request 'chore(i18l): Change DNS error alert to warn user about deleting custom DNS records' (#248) from dns-i18l-alert into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #248
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-28 06:24:14 +03:00
Inex Code 34e15e5047 chore(i18l): Change DNS error alert to warn user about deleting custom DNS records 2023-07-28 06:21:11 +03:00
NaiJi ✨ 55740ac59d Merge pull request 'refactor(digital-ocean-dns): Implement basic DTO for Digital Ocean DNS to avoid dynamic objects' (#247) from dto into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #247
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 05:19:45 +03:00
NaiJi ✨ c37e56b43a Merge master into dto 2023-07-27 21:29:05 -03:00
NaiJi ✨ ccac0ff7fa refactor(digital-ocean-dns): Implement basic DTO for Digital Ocean DNS to avoid dynamic objects 2023-07-27 20:55:32 -03:00
NaiJi ✨ fd1be6358c Merge pull request 'refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects' (#246) from dto into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #246
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 00:32:25 +03:00
NaiJi ✨ 06fc2935a8 Merge pull request 'feat(platform): Implement custom platform-dependent storage path definition' (#240) from platform-path into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #240
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 00:24:40 +03:00
NaiJi ✨ 146350f8f4 refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects 2023-07-26 21:33:50 -03:00
NaiJi ✨ b313cd340e refactor: Remove unused id field from DnsRecords object 2023-07-26 20:27:10 -03:00
NaiJi ✨ 603946ba73 Merge master into platform-path 2023-07-26 20:20:21 -03:00
NaiJi ✨ ed1421e9c5 chore: Merge pull request 'fix(ui): Prevent service moving if volume is null for some reason' (#245) from volume-null into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #245
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-26 00:59:14 +03:00
NaiJi ✨ 4dae3404fa fix(ui): Prevent service moving if volume is null for some reason 2023-07-25 18:56:47 -03:00
NaiJi ✨ b04dcef603 chore: Merge pull request 'style: Remove misleading code comment' (#244) from clipboard-key into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #244
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-25 22:50:13 +03:00
Inex Code 5df1d676f6 style: Remove misleading code comment 2023-07-25 22:46:12 +03:00
NaiJi ✨ 15039777e0 chore: Merge pull request 'feat(backups): Implement modal for copying backups encryption key' (#242) from clipboard-key into master
continuous-integration/drone/push Build was killed Details
Reviewed-on: #242
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 22:44:56 +03:00
Inex Code bbc619deed feat(backups): Show the user that the key is copied 2023-07-25 22:43:28 +03:00
Inex Code cfcfd5d708 feat(backups): Update the UI of the encryption key modal 2023-07-25 22:25:08 +03:00
Inex Code 3b1e71d771 fix: Add a workaround for the case when we don't have sreverTypeId 2023-07-25 18:39:58 +03:00
NaiJi ✨ c3752673f7 feat(backups): Implement modal for copying backups encryption key 2023-07-25 18:15:04 +03:00
NaiJi ✨ ac6a4c192e Merge pull request 'feat(graphql): Implement Accept-Language header for GraphQL API map' (#243) from graphql-locale into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #243
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 17:38:14 +03:00
NaiJi ✨ c7b714cea5 Merge pull request 'fix(recovery): Implement server type id requesting on recovery finish' (#241) from servertype-id into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #241
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 17:37:24 +03:00
NaiJi ✨ 27aaf93838 chore: Rename '_getApiToken' to 'get _token' for GraphQL API map 2023-07-22 11:26:48 -03:00
NaiJi ✨ 08f3258615 feat(graphql): Implement Accept-Language header for GraphQL API map 2023-07-22 11:24:37 -03:00
NaiJi ✨ 69822f24ca chore: Remove unused server basic info attribute 2023-07-21 19:50:20 -03:00
NaiJi ✨ 7b02074345 fix(recovery): Replace server basic info request method with server type info request method 2023-07-21 19:48:00 -03:00
NaiJi ✨ 80f28463ec fix(recovery): Implement server type id requesting on recovery finish 2023-07-21 18:07:26 -03:00
NaiJi ✨ d8660b9f3a feat(platform): Print storage path before Hive initialization 2023-07-21 14:44:01 -03:00
NaiJi ✨ 06a857aa8c chore(platform): Fix comment typo 2023-07-20 17:19:29 -03:00
NaiJi ✨ 91a22394f5 Merge branch 'master' into platform-path 2023-07-20 23:15:05 +03:00
NaiJi ✨ 3b1eee5a94 fix(platform): Make platform storage path nullable for compability with previous behaviour 2023-07-20 17:14:17 -03:00
NaiJi ✨ 25d6881837 chore: Remove misleading commentary 2023-07-20 17:07:08 -03:00
NaiJi ✨ 68ed776785 feat(platform): Implement custom platform-dependent storage path definition
- Create new PlatformAdapter util and hide i/o there
- Move other usages of Platform class in PlatformAdapter
2023-07-20 17:06:17 -03:00
NaiJi ✨ 51f5bb9f31 chore: Merge pull request 'feat(digital-ocean): Implement uniqueness check' (#239) from digital-ocean-uniqueness into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #239
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-20 19:07:41 +03:00
NaiJi ✨ 1e5b6c12e6 feat(digital-ocean): Implement uniqueness check
- Suggest to delete duplicate server
- Increase timeout by 5 iterations
2023-07-20 12:53:56 -03:00
NaiJi ✨ c0dbf4454c chore: Merge pull request 'feat(location): Make flag getter a part of server provider location object' (#238) from country-flag into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #238
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-17 20:02:32 +03:00
NaiJi ✨ a1ffb891a8 chore: Merge master into country-flag 2023-07-17 12:27:18 -03:00
NaiJi ✨ cbef1d578b feat(location): Make flag getter a part of server provider location object 2023-07-17 12:25:41 -03:00
Inex Code f25878de90 Merge pull request 'chore: Update translations' (#225) from translations into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #225
2023-07-17 17:09:12 +03:00
NaiJi ✨ 44bb4155cb Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/sk/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 8565c0a04e Translated using Weblate (Czech)
Currently translated at 95.1% (435 of 457 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 28188ffec6 Translated using Weblate (Russian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/ru/
2023-07-16 14:18:08 +00:00
NaiJi ✨ afa9b25564 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/ru/
2023-07-16 14:18:08 +00:00
NaiJi ✨ be50de12bd Translated using Weblate (Russian)
Currently translated at 100.0% (457 of 457 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Mithras baa356e840 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/cs/
2023-07-16 14:18:08 +00:00
Mithras e684eb1e85 Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/cs/
2023-07-16 14:18:08 +00:00
Mithras 1306d42b66 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2023-07-16 14:18:08 +00:00
Mithras f63de69561 Translated using Weblate (Belarusian)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-07-16 14:18:08 +00:00
Mithras b9370fc74b Translated using Weblate (Czech)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Mithras aa5bbd425b Translated using Weblate (Polish)
Currently translated at 99.7% (434 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras 9718990c66 Translated using Weblate (German)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-07-16 14:18:08 +00:00
Mithras 602449e483 Translated using Weblate (Russian)
Currently translated at 100.0% (435 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Not Telling Lol 8bf910390d Translated using Weblate (Latvian)
Currently translated at 41.3% (180 of 435 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Weblate f350e8ced9 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-07-16 14:18:08 +00:00
Weblate d2f4e07cc1 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/
2023-07-16 14:18:08 +00:00
Mithras 28be8bd58a Translated using Weblate (Ukrainian)
Currently translated at 92.5% (397 of 429 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-07-16 14:18:08 +00:00
Mithras e8056e9c3c Translated using Weblate (French)
Currently translated at 53.6% (230 of 429 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-07-16 14:18:08 +00:00
Not Telling Lol 8326b89b83 Translated using Weblate (Latvian)
Currently translated at 34.6% (148 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Mithras 779708c0bf Translated using Weblate (Slovenian)
Currently translated at 48.2% (206 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Not Telling Lol 9d202b42dd Translated using Weblate (Latvian)
Currently translated at 12.6% (54 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/lv/
2023-07-16 14:18:08 +00:00
Mithras 5c0a9ee7be Translated using Weblate (Slovenian)
Currently translated at 29.7% (127 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Inex Code 3fc7a76a66 Added translation using Weblate (Latvian) 2023-07-16 14:18:08 +00:00
Mithras 649260bce2 Translated using Weblate (Slovenian)
Currently translated at 6.0% (26 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Mithras 54afeb04cc Translated using Weblate (Slovenian)
Currently translated at 3.9% (17 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sl/
2023-07-16 14:18:08 +00:00
Mithras d04bd5e6a2 Translated using Weblate (Polish)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/pl/
2023-07-16 14:18:08 +00:00
Mithras 38538c5568 Translated using Weblate (Polish)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/pl/
2023-07-16 14:18:08 +00:00
Mithras fd8cf5cf78 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/pl/
2023-07-16 14:18:08 +00:00
Mithras 5e7c6d63c2 Translated using Weblate (Polish)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/pl/
2023-07-16 14:18:08 +00:00
Mithras 17e59e04bd Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/pl/
2023-07-16 14:18:08 +00:00
Mithras 7302b47809 Translated using Weblate (Polish)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/pl/
2023-07-16 14:18:08 +00:00
Mithras ef8174a3c6 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/pl/
2023-07-16 14:18:08 +00:00
Mithras 10f43e6bd9 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/pl/
2023-07-16 14:18:08 +00:00
Mithras b68de55a9b Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/de/
2023-07-16 14:18:08 +00:00
Mithras 2bff45aab1 Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras b20f8f777d Translated using Weblate (German)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-07-16 14:18:08 +00:00
Thary a17d8184c7 Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras aef47ce9a7 Translated using Weblate (Slovak)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/sk/
2023-07-16 14:18:08 +00:00
Mithras cc36bc2aa0 Translated using Weblate (Slovak)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/sk/
2023-07-16 14:18:08 +00:00
Mithras 715255de81 Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/sk/
2023-07-16 14:18:08 +00:00
Mithras 9f77dc6da0 Translated using Weblate (Slovak)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/sk/
2023-07-16 14:18:08 +00:00
Mithras e36b9b37be Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/sk/
2023-07-16 14:18:08 +00:00
Mithras 000cff7b8c Translated using Weblate (Slovak)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/sk/
2023-07-16 14:18:08 +00:00
Mithras e6f367e57a Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/sk/
2023-07-16 14:18:08 +00:00
Mithras 89f51f2ba0 Translated using Weblate (Slovak)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/sk/
2023-07-16 14:18:08 +00:00
Mithras a76425ad30 Translated using Weblate (Slovak)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2023-07-16 14:18:08 +00:00
Mithras 4a43b5d3fb Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-07-16 14:18:08 +00:00
Mithras 978e9f38a5 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/cs/
2023-07-16 14:18:08 +00:00
Mithras 58f05cd6f6 Translated using Weblate (Azerbaijani)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-07-16 14:18:08 +00:00
Mithras 28a78640e8 Translated using Weblate (Czech)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/cs/
2023-07-16 14:18:08 +00:00
Mithras 918aced080 Translated using Weblate (Belarusian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/be/
2023-07-16 14:18:08 +00:00
Mithras a90037a4e5 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/cs/
2023-07-16 14:18:08 +00:00
Mithras 19a4a2f5c3 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/cs/
2023-07-16 14:18:08 +00:00
Mithras da5c752069 Translated using Weblate (Czech)
Currently translated at 83.3% (5 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/cs/
2023-07-16 14:18:08 +00:00
Mithras f17d27647d Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/cs/
2023-07-16 14:18:08 +00:00
Mithras 6af96cf36f Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/cs/
2023-07-16 14:18:08 +00:00
Mithras 97561b31f1 Translated using Weblate (Czech)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/cs/
2023-07-16 14:18:08 +00:00
Mithras 49cc8768ec Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/be/
2023-07-16 14:18:08 +00:00
Mithras 5fa0b0c23c Translated using Weblate (Belarusian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-07-16 14:18:08 +00:00
Mithras 91fe44a729 Translated using Weblate (Czech)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Mithras d8c006aa3c Translated using Weblate (Russian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/ru/
2023-07-16 14:18:08 +00:00
Mithras 240d66d156 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/ru/
2023-07-16 14:18:08 +00:00
Mithras 65e51a0fe9 Translated using Weblate (Russian)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/ru/
2023-07-16 14:18:08 +00:00
Mithras fa8e588772 Translated using Weblate (Russian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
FoxMeste 1014df7cea Translated using Weblate (English)
Currently translated at 100.0% (427 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-07-16 14:18:08 +00:00
Inex Code a303efde5a Translated using Weblate (Russian)
Currently translated at 99.7% (426 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
Mithras b644c7d218 Translated using Weblate (Russian)
Currently translated at 99.0% (423 of 427 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-07-16 14:18:08 +00:00
FoxMeste 3a84e8e502 Translated using Weblate (Czech)
Currently translated at 84.5% (338 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
FoxMeste c5b0df8ff0 Translated using Weblate (Czech)
Currently translated at 35.2% (141 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/cs/
2023-07-16 14:18:08 +00:00
Weblate 538fc01d23 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/
2023-07-16 14:18:08 +00:00
NaiJi ✨ 6453257aa3 chore: Merge pull request 'feat(provider): Implement proper load functions for DNS and Server providers' (#237) from server-providers-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #237
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 17:18:05 +03:00
NaiJi ✨ 56231a4197 feat(provider): Implement proper load functions for DNS and Server providers 2023-07-16 10:05:37 -03:00
NaiJi ✨ 0a333214d8 chore: Merge pull request 'refactor(rest-api): Move rest api methods according to their business logic files positions' (#235) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #235
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 14:00:40 +03:00
NaiJi ✨ 83cb3d4031 chore: Merge pull request 'fix(installation): Add proper server type value loading' (#236) from installation-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #236
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 13:58:05 +03:00
NaiJi ✨ 81aa6003be fix(installation): Add proper server type value loading 2023-07-16 07:25:14 -03:00
NaiJi ✨ 7ff1e36161 refactor(rest-api): Move rest api methods according to their business logic files positions
- Rename unmatching functions
2023-07-13 06:22:39 -03:00
NaiJi ✨ 5af30bce4d chore: Merge pull request 'fix(ui): Make currency be properly shown again via shortcode' (#234) from backups-testing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #234
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-12 21:21:45 +03:00
NaiJi ✨ ddf2f71ac3 fix(ui): Make currency be properly shown again via shortcode 2023-07-12 13:14:46 -03:00
NaiJi ✨ e38a322e61 chore: Merge pull request 'fix(ui): Add background for dialogue pop ups and move them to root navigator' (#233) from backups-testing into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #233
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-12 14:23:50 +03:00
NaiJi ✨ f47ea8534f chore: Merge branch master into backups-testing 2023-07-10 09:42:01 -03:00
NaiJi ✨ bc6b08d621 fix(ui): Add background for dialogue pop ups and move them to root navigator 2023-07-10 09:39:57 -03:00
NaiJi ✨ c0d8d37989 chore: Merge backups-testing to master
continuous-integration/drone/push Build is passing Details
- Remove unused breaking isHidden field
- Add commentary for Hetzner Volume replicating Hetzner documentation
- Update router.gr (when i ran build_runner this file changed for some reason)

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: #232
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-10 12:00:46 +03:00
NaiJi ✨ aa5327df6e bug: Remove unused breaking isHidden field 2023-07-10 05:45:22 -03:00
NaiJi ✨ 70991e6bac chore(models): Add commentary for Hetzner Volume replicating Hetzner documentation 2023-07-10 05:44:56 -03:00
NaiJi ✨ eeb5dfc642 chore(ui): Update router.gr 2023-07-10 05:44:04 -03:00
NaiJi ✨ 071f5c2c5d chore: Merge pull request 'refactor(dns-provider): Rearrange DNS Provider interface' (#229) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #229
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-05 12:45:27 +03:00
NaiJi ✨ 91b22f531e refactor(dns-provider): Rearrange DNS Provider interface
Move all implement functions accordingly to their position in interface
2023-07-05 06:34:35 -03:00
NaiJi ✨ 8bc1121206 chore: Merge pull request 'backups-rewrite' (#228) from backups-rewrite into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: #228
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-07-03 23:39:00 +03:00
Inex Code 7d974159a2 style(backups): Fix some UI issues of backup_details.dart 2023-07-03 23:37:23 +03:00
Inex Code a4dbba0968 feat(backups): Backups screens 2023-07-02 18:24:07 +03:00
Inex Code df214a07bc refactor: Remove unused utils, add duration formatter 2023-07-02 18:23:33 +03:00
Inex Code 2b8d3ee6d0 refactor: Getters for backup-related jobs 2023-07-02 18:23:12 +03:00
Inex Code 290c4166c5 feat: Add pub:duration as a dependency 2023-07-02 18:22:27 +03:00
Inex Code edb02764f7 fix: GraphQL fragments deduplication 2023-07-02 18:22:07 +03:00
Inex Code a8bddaaeba style: Reformatting 2023-07-02 14:41:54 +03:00
Inex Code 62b7a0ee7e feat(backups): Add descriptions for backups 2023-07-02 14:41:31 +03:00
NaiJi ✨ b3b7c83461 chore: Implement fragments for ServerJob type on backup requests 2023-06-29 15:38:46 -03:00
Inex Code 7f5488c76b refactor(services): Remove unused state getters 2023-06-29 13:52:25 +03:00
Inex Code 90ab4244f6 feat(backups): Expose if the service can be backed up 2023-06-29 13:51:38 +03:00
Inex Code 62e906d1a4 feat(jobs): Update the model and modal sheets 2023-06-29 12:53:13 +03:00
Inex Code e1e4779c51 feat(recovery): Couldn't save the dns token 2023-06-29 12:52:37 +03:00
Inex Code d2d8add10d feat(backups): Update the models 2023-06-29 12:52:09 +03:00
NaiJi ✨ 02cb4dbf8b chore: Merge branch master into backups-rewrite 2023-06-26 15:01:57 -03:00
NaiJi ✨ 7d03c3192d chore: Merge pull request 'refactor(server-provider): Rearrange Server Provider interface' (#227) from docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #227
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-26 21:01:08 +03:00
NaiJi ✨ a56f525060 refactor(server-provider): Rearrange Server Provider interface
- Move all implement functions accordingly to their position in interface
- Get rid of duplicate toInfect() functions, move them to ServerDomain
2023-06-26 14:15:53 -03:00
NaiJi ✨ e7ec1c1b53 chore: Merge master' into backups-rewrite 2023-06-22 23:23:13 -03:00
NaiJi ✨ feca9d3b06 chore: Update scheme.graphql and its models 2023-06-22 23:22:48 -03:00
NaiJi ✨ b8009cde71 Merge pull request 'refactor(price): Replace String shortcode with Currency class' (#226) from price into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #226
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-23 04:17:05 +03:00
NaiJi ✨ 88d8925ff7 refactor(price): Replace String shortcode with Currency class 2023-06-22 16:02:49 -03:00
NaiJi ✨ f05bedf460 chore: Implement new backups api 2023-06-22 11:14:00 -03:00
NaiJi ✨ e70cbab618 chore: Fix a typo in GraphQL scheme 2023-06-19 18:05:57 -03:00
NaiJi ✨ f4700965c6 chore: Merge master into backups-rewrite 2023-06-19 17:56:00 -03:00
NaiJi ✨ d0366862c0 Merge pull request 'refactor(api): Separate Rest API layer from business logic layer for DNS and Server Providers' (#213) from refactoring into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: #213
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-19 23:03:55 +03:00
NaiJi ✨ a2ed839927 chore: Remove unused image from DNS Picket 2023-06-19 17:00:50 -03:00
NaiJi ✨ 9552df1ec2 chore: Remove unused abstraction for ServerProvider 2023-06-19 15:17:15 -03:00
NaiJi ✨ 215ad3579d chore: Rename ApiMaps to RestApiMap and GraphQLApiMap 2023-06-19 15:15:24 -03:00
NaiJi ✨ f9da202093 chore: Remove unused abstractions 2023-06-19 15:11:55 -03:00
NaiJi ✨ 3fedb17553 chore: Remove unused function from Desec API 2023-06-19 14:59:46 -03:00
NaiJi ✨ 0d49b89e43 chore: Remove unused function for Cloudflare provider 2023-06-19 14:52:07 -03:00
NaiJi ✨ e418a58e5b chore: Remove unused ApiTokenvalidatoin 2023-06-19 14:42:48 -03:00
NaiJi ✨ 0502e68cc1 chore: Remove unused function 2023-06-19 12:12:15 -03:00
NaiJi ✨ 6337889ab7 chore: Remove unneeded files 2023-06-19 11:59:11 -03:00
NaiJi ✨ 4adcca5746 fix: Resolve timer conflicts on emultiple emits 2023-06-16 00:52:04 -03:00
Inex Code c87b834550 fix: dialogs during server setup 2023-06-16 06:00:08 +03:00
Inex Code 53e72504f7 refactor: Allow changing values for TLS settings 2023-06-16 05:59:48 +03:00
Inex Code 5069563d45 chore(router): Rebuild the router with latest AutoRoute 2023-06-16 04:31:23 +03:00
Inex Code 13af7e5e1d feat(backups): Introduce read GraphQL nodes for backups 2023-06-16 04:30:46 +03:00
Inex Code a5bb654a76 refactor(backups): Rename BackbaleCredential to BackupsCredential
Also adding provider field
2023-06-16 04:28:45 +03:00
NaiJi ✨ 695b9e0f7c chore: Merge master into refactoring 2023-06-15 14:05:21 -03:00
NaiJi ✨ b46c53674b feat: Implement new dialogue stub onChange 2023-06-15 13:48:23 -03:00
NaiJi ✨ 085c71748d fix: Add currency to price tag on server info page 2023-06-14 15:11:51 -03:00
NaiJi ✨ 69707f543f fix: Properly convert Digital Ocean droplets to ServerBasicInfo 2023-06-14 14:56:07 -03:00
NaiJi ✨ 2b1f6a12ea fix: Change JSON parsing for Digital Ocean droplets 2023-06-13 23:47:06 -03:00
NaiJi ✨ 65283306a9 fix: Make dropletIds field for DigitalOceanVolume optional 2023-06-13 23:37:47 -03:00
NaiJi ✨ f6424200e2 chore: Implement basic DigitalOceanServerType model 2023-06-12 23:48:29 -03:00
NaiJi ✨ 8d8e8cf265 fix: Change spf1 record from domainName to '@' for Digital Ocean DNS 2023-06-09 07:19:24 -03:00
NaiJi ✨ bfd67bac8d fix: Change .id field to ['id'] for DnsRecord in Digital Ocean DNS 2023-06-09 06:13:16 -03:00
NaiJi ✨ 55f62f1200 fix: Change sizeByte field to size for HetznerVolume 2023-06-09 05:11:42 -03:00
NaiJi ✨ 9d62d3af8e chore: Merge master into refactoring 2023-06-09 04:10:15 -03:00
Inex Code 4a7f986ff4 Merge pull request 'json-force' (#212) from json-force into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: kherel/selfprivacy.org.app#212
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-07 15:14:33 +03:00
NaiJi ✨ 140acaee49 chore: Implement basic Digital Ocean server models 2023-06-07 03:22:27 -03:00
NaiJi ✨ f42e415633 chore: Replace dynamic blobs with HetznerLocation 2023-06-07 00:25:34 -03:00
NaiJi ✨ 875a9e2e86 chore: Replace dynamic blobs with HetznerServerInfo 2023-06-07 00:20:42 -03:00
NaiJi ✨ fa4939d7c6 chore: Implement better Price abstraction for Digital Ocean server provider 2023-06-07 00:11:36 -03:00
NaiJi ✨ 49fe40bb38 chore: Implement better Price abstraction for Hetzner server provider 2023-06-07 00:09:39 -03:00
NaiJi ✨ 2a66d246c7 chore: Replace dynamic blobs with HetznerServerType 2023-06-07 00:03:34 -03:00
NaiJi ✨ ffa13aee04 chore: Implement HetznerVolume model and use it instead dynamic json 2023-06-06 23:35:57 -03:00
NaiJi ✨ 53c56e6bd4 feat: Remove basic_utils dependency
Replace it with InternetAddress from dart:io
2023-06-05 12:14:54 -03:00
NaiJi ✨ 29cbf702e5 fix: Remove unneded DNS check depending on CLOUDFLARE 2023-06-05 11:18:41 -03:00
NaiJi ✨ a690fb5089 fix: Force JSON content-type for REST API requests 2023-06-05 09:46:42 -03:00
NaiJi ✨ 4da4ed6afd feat: Move current installation dialogue error to installation state 2023-06-02 19:04:23 -03:00
NaiJi ✨ 040fc43e1f fix: Add DNS provider type to provider classes to fix wrong domain type 2023-06-02 02:44:34 -03:00
NaiJi ✨ 3a40b5ed32 fix: Add missing DNS providers to different installation steps 2023-06-02 02:15:13 -03:00
NaiJi ✨ f81bf968fd fix: Add forced JSON content type to REST APIs 2023-06-02 01:36:33 -03:00
NaiJi ✨ 3a0221e8b1 chore: Merge master into desec 2023-06-02 00:52:32 -03:00
Inex Code 7a80590fc8 Merge pull request 'feat: Add DeSEC as a DNS provider' (#211) from desec into master
Reviewed-on: kherel/selfprivacy.org.app#211
2023-06-01 15:16:15 +03:00
NaiJi ✨ f55800cd72 fix: Implement better domain id check on DNS restoration 2023-06-01 15:12:49 +03:00
Inex Code 370cbf1052 fix(ui): Button margins 2023-06-01 15:12:49 +03:00
Inex Code 4e65d5f945 refactor: Migrate to Flutter 3.10 and Dart 3.0 2023-06-01 15:12:49 +03:00
def 523a1a6df8 update desec markdown 2023-06-01 15:12:49 +03:00
NaiJi ✨ 0c038fda43 fix: Remove price lists for DNS and move deSEC onto above Cloudflare 2023-06-01 15:12:49 +03:00
NaiJi ✨ 0e3e560485 feat: Remove certificate check during installation 2023-06-01 15:12:49 +03:00
NaiJi ✨ 25eb82c131 feat: Implement proper access recovery for DNS providers 2023-06-01 15:12:49 +03:00
NaiJi ✨ 73ec2687b2 fix: Make minor improvements for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 8b0d318eac chore: Add assets for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 6bee028188 feat: Implement proper DKIM creation for deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ 32ef162f9b feat: Implement polymorphic DNS check for DNS API 2023-06-01 15:12:49 +03:00
NaiJi ✨ c67e37a40e fix: Adjust graphql schemas to new dns provider
- fix runtime bugs
2023-06-01 15:12:49 +03:00
NaiJi ✨ 01c09aaae4 feat: Implement deSEC API support 2023-06-01 15:12:49 +03:00
NaiJi ✨ b41b4159b4 feat: Implement infrastructure for new DNS provider deSEC 2023-06-01 15:12:49 +03:00
NaiJi ✨ d114d1477f fix: Adapt usage of DNS provider interface to refactoring 2023-05-30 12:48:18 -03:00
NaiJi ✨ b0769b8ed0 chore: Separate business logic from API layer for Digital Ocean DNS 2023-05-30 00:04:29 -03:00
NaiJi ✨ 8123632cc1 feat: Implement Cloudflare DNS provider layer and separate from API 2023-05-29 23:18:02 -03:00
NaiJi ✨ 7832094609 chore: Create cloudflare dns provider interface and separate it from api 2023-05-25 00:15:58 -03:00
NaiJi ✨ 509b2ac7c7 chore: Move DNS provider methods to the abstract interface 2023-05-25 00:02:10 -03:00
NaiJi ✨ 8863dc8b2c chore: Move DNS validation to provider layer for desec 2023-05-24 23:51:40 -03:00
NaiJi ✨ eebbf98349 chore: Move domain list getter to dns provider layer for desec 2023-05-24 23:47:43 -03:00
NaiJi ✨ 4bb26559aa chore: Move business logic from API for desec dns provider 2023-05-22 23:40:25 -03:00
NaiJi ✨ a0a3bbe9d6 chore: Merge branch desec into refactoring 2023-05-21 20:46:33 -03:00
def 0310d37f00 Merge pull request 'update desec markdown' (#209) from desec-markdown into desec
Reviewed-on: kherel/selfprivacy.org.app#209
2023-05-20 23:14:58 +03:00
def 309e7ba621 Merge pull request 'fix old link' (#208) from fix-old-link into master
Reviewed-on: kherel/selfprivacy.org.app#208
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-05-20 23:13:15 +03:00
def f48b8bfa44 update desec markdown 2023-05-19 12:53:53 +03:00
def 53cf228748 fix old link 2023-05-19 11:45:22 +03:00
NaiJi ✨ 0a796c9fc6 chore: Merge desec into refactoring 2023-05-18 19:12:08 -03:00
NaiJi ✨ d276a8f708 fix: Remove price lists for DNS and move deSEC onto above Cloudflare 2023-05-18 19:06:13 -03:00
NaiJi ✨ 4260152081 chore: Merge desec into refactoring 2023-05-17 13:58:15 -03:00
NaiJi ✨ 25c048044e chore: Merge master into desec 2023-05-17 10:32:34 -03:00
NaiJi ✨ 4afcedebb7 feat: Remove certificate check during installation 2023-05-16 17:02:08 -03:00
NaiJi ✨ 232699bdb1 feat: Implement proper access recovery for DNS providers 2023-05-16 15:49:03 -03:00
NaiJi ✨ ce017c6ea8 fix: Make minor improvements for deSEC 2023-05-16 15:03:31 -03:00
NaiJi ✨ 732f39ef48 chore: Add assets for deSEC 2023-05-16 14:58:51 -03:00
NaiJi ✨ 6ddc2328f0 feat: Implement proper DKIM creation for deSEC 2023-05-16 12:49:55 -03:00
NaiJi ✨ e9665ad75d feat: Implement polymorphic DNS check for DNS API 2023-05-16 11:06:01 -03:00
Inex Code 38812c9b89 Merge pull request 'fix(ui): Privacy policy link' (#207) from fix-privacy-policy-link into master
Reviewed-on: kherel/selfprivacy.org.app#207
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-05-15 12:25:13 +03:00
Inex Code 0fb404bed4 fix(ui): Privacy policy link 2023-05-15 12:22:06 +03:00
NaiJi ✨ 56dd40e90e fix: Adjust graphql schemas to new dns provider
- fix runtime bugs
2023-05-12 16:32:19 -03:00
NaiJi ✨ af90ddd78a feat: Implement deSEC API support 2023-05-12 03:07:43 -03:00
NaiJi ✨ 234064ed72 feat: Implement infrastructure for new DNS provider deSEC 2023-05-09 03:15:48 -03:00
NaiJi ✨ 72a04a54b3 refactor: Remove low level ApiController and replace Dns interfaces 2023-05-03 00:01:44 -03:00
NaiJi ✨ 5cbf399a58 fix: Remove accidental hardcode for staging options 2023-05-02 23:49:13 -03:00
NaiJi ✨ 30385c2470 refactor: Create empty DnsProvider interfaces 2023-05-02 23:42:18 -03:00
NaiJi ✨ 0d55361a9b fix: Improve installation failure dialogues 2023-05-02 17:05:55 -03:00
NaiJi ✨ da4b38b787 fix: Move DNS entries creation step to server provider layer 2023-04-28 14:19:52 -03:00
NaiJi ✨ b242838339 fix: Make launchInstall return correct object for volume 2023-04-26 14:39:33 -03:00
NaiJi ✨ 854febc5d2 fix: Replace hardcoded string from Hetzner to Cloudflare for DNS providers page 2023-04-26 14:35:57 -03:00
NaiJi ✨ 1e9f1f88a7 fix: Hetzner installation issues
- Replace serverType id with locaiton id
- Replaces id accessing in volume from .id to [id]
2023-04-25 16:44:43 -03:00
NaiJi ✨ 4c2cfca4c4 fix: Change server location type for Hetzner 2023-04-25 16:20:23 -03:00
NaiJi ✨ d282f37b71 fix: Return correct adapters for Hive and make it run 2023-04-25 16:04:19 -03:00
NaiJi ✨ 4aa13dd63a chore: resolve ui conflicts and make it build 2023-04-24 13:45:16 -03:00
NaiJi ✨ 3b49805c9c chore: Move volume api to abstract server provider interface 2023-04-24 12:09:23 -03:00
NaiJi ✨ f6591cbfc6 chore: Implement server installation for Digital Ocean 2023-04-19 10:41:30 -03:00
NaiJi ✨ 15c0586ab3 chore: Merge digital-ocean-dns into refactoring 2023-04-12 05:32:56 -03:00
NaiJi ✨ 755ac1d5c0 chore: Merge master into digital-ocean-dns 2023-04-12 02:42:33 -03:00
Inex Code e180c23cb7 Merge pull request 'UI Refactor and move to auto_route' (#203) from ui-refactor into master
Reviewed-on: kherel/selfprivacy.org.app#203
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-04-08 04:00:48 +03:00
Inex Code 931da1443d refactor(ui): Delete BrandCards 2023-04-05 13:38:07 +03:00
Inex Code 466a221dd0 refactor(ui): More compact view of console.dart 2023-04-05 13:38:07 +03:00
Inex Code 4fde816023 refactor(ui): Remove unused components 2023-04-05 13:38:07 +03:00
Inex Code a9d7a27e9d refactor(ui): Update recovery flow to use new support drawer 2023-04-05 13:38:07 +03:00
Inex Code d242f5141e refactor(ui): Remove brand alert dialogs and bottom sheet 2023-04-05 13:38:07 +03:00
Inex Code f5313a8148 chore: New lints 2023-04-05 13:38:07 +03:00
Inex Code 805f12b9e9 docs: Document WidgetSize widget 2023-04-05 13:38:07 +03:00
Inex Code f0f1e8cacc refactor(ui): Get rid of BrandText and restructure the buttons 2023-04-05 13:38:07 +03:00
Inex Code c18191f639 feat: Add jobs button to the app bar of HeroScreen 2023-04-05 13:38:07 +03:00
Inex Code 3a77864a64 chore(router): Bump router version 2023-04-05 13:38:07 +03:00
Inex Code af7196d84b refactor(router): Migrate to AutoRouter v6 2023-04-05 13:38:07 +03:00
Inex Code 3366585d76 fix(router): PopUpDialogs couldn't find the context. 2023-04-05 13:38:07 +03:00
Inex Code ee9b8a4e31 refactor(router): Move more pages to new router 2023-04-05 13:38:07 +03:00
Inex Code 999c8346be style: Fix formatting 2023-04-05 13:38:07 +03:00
Inex Code 9a8965f569 fix: Fix BottomBar showing incorrect animation when navigating from sibling routes 2023-04-05 13:38:07 +03:00
Inex Code 9d6721d58b refactor: Deprecate showFab on BrandHeroScreen 2023-04-05 13:38:07 +03:00
Inex Code 1f5f366bc5 refactor(server-api): GraphQL codegen removed dependency on JSON Serializable. 2023-04-05 13:38:07 +03:00
Inex Code 0df9d2ac27 feat: Use Material 3 animation curves 2023-04-05 13:38:07 +03:00
Inex Code 6656635785 fix: remove unnecessary logging 2023-04-05 13:38:07 +03:00
Inex Code 423efeeb20 feat: Introduce new router and adaptive layouts 2023-04-05 13:38:07 +03:00
Inex Code befdc0286e feat: Automatic day/night theme 2023-04-05 13:38:07 +03:00
Inex Code 54513998ce fix: Devices and Recovery Key cubits couldn't initialize right after server installation 2023-04-05 13:38:07 +03:00
Inex Code 0b3b46b452 feat: Breakpoints utility 2023-04-05 13:38:07 +03:00
Inex Code 8fc229647f feat: Add Support drawer and basic support cubit. 2023-04-05 13:38:07 +03:00
Inex Code 768d5ff226 chore(dependencies): Remove share_plus, add auto_route and flutter_adaptive_scaffold 2023-04-05 13:38:07 +03:00
NaiJi ✨ 74c84a8445 chore: Merge digital-ocean-dns into refactoring 2023-03-30 01:30:58 -03:00
NaiJi ✨ f35c416160 chore: Merge master into digital-ocean-dns 2023-03-30 00:25:30 -03:00
Inex Code fb8fdad0c5 Merge pull request 'refactor: Migrate to Flutter 3.7' (#194) from flutter-3.7 into master
Reviewed-on: kherel/selfprivacy.org.app#194
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-03-28 17:46:23 +03:00
NaiJi ✨ 7b2540640f chore: Rewrite server installation function on api level for Digital Ocean 2023-03-22 21:28:16 -03:00
NaiJi ✨ 4e4b61609f chore: Move volume functions to provider layer for Digital Ocean 2023-03-21 13:08:46 -03:00
NaiJi ✨ dde6f7e80d chore: Move volume functions to provider layer for Hetzner 2023-03-20 12:22:43 -03:00
NaiJi ✨ 760d52e68a chore: Merge digital-ocean-dns into refactoring 2023-03-20 11:06:09 -03:00
NaiJi ✨ 38c3363805 chore: Merge flutter-3.7 into digital-ocean-dns 2023-03-20 11:03:26 -03:00
NaiJi ✨ 523656bb0a chore: Merge master into flutter-3.7 2023-03-20 11:00:04 -03:00
Inex Code 1b17905ff9 Merge pull request 'Updated translations 2023-03-14' (#204) from translations into master
Reviewed-on: kherel/selfprivacy.org.app#204
2023-03-17 14:37:42 +02:00
Thary d7a067474e Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-15 17:12:41 +00:00
FoxMeste e7ca94fd0a Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-13 21:12:40 +00:00
FoxMeste f264b309d7 Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-10 12:12:39 +00:00
NaiJi ✨ 7b543f9030 chore: Implement server deletion for digital ocean on provider level 2023-03-10 00:47:02 +04:00
NaiJi ✨ bc9ab447f0 chore: Implement server deletion for hetzner on provider layer 2023-03-09 13:06:15 +04:00
FoxMeste 20dca20862 Translated using Weblate (Polish)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-03-06 12:23:51 +00:00
NaiJi ✨ 76536f8115 chore: Move basic functionality of Digital Ocean to provider layer 2023-03-03 03:01:09 +04:00
NaiJi ✨ cd59c19c9c chore: Start implementing Digital Ocean provider layer 2023-03-01 06:53:51 +04:00
NaiJi ✨ 97e9e9d9cb chore: Adapt MetricsRepository to new ProvidersControllers model 2023-02-28 07:00:52 +04:00
Côme 7f3a339207 Translated using Weblate (French)
Currently translated at 57.2% (229 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-02-24 18:23:46 +00:00
Thary 38fff57e15 Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-24 18:23:45 +00:00
Thary 985c4a34e8 Translated using Weblate (Polish)
Currently translated at 72.0% (288 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-24 18:23:44 +00:00
NaiJi ✨ 62c0030f8e chore: Implement server installation logic on cubit layer 2023-02-22 21:58:59 +04:00
NaiJi ✨ ef04b5bf57 chore: Implement server installation on businness logic layer for hetzner 2023-02-22 21:03:58 +04:00
FoxMeste 17f15a591b Translated using Weblate (Belarusian)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/be/
2023-02-21 18:40:05 +00:00
FoxMeste fde7082fc9 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/be/
2023-02-21 18:40:05 +00:00
FoxMeste 5a47ef4819 Translated using Weblate (Thai)
Currently translated at 60.2% (241 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2023-02-21 18:40:04 +00:00
Côme b2f0819e18 Translated using Weblate (French)
Currently translated at 53.0% (212 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/fr/
2023-02-21 18:40:03 +00:00
NaiJi ✨ 8da7341ccb chore: Implement basics of hetzner installation logic 2023-02-21 13:11:04 +04:00
NaiJi ✨ e739f7ab9d chore: Merge digital-ocean-dns into refactoring 2023-02-17 13:36:18 +04:00
NaiJi ✨ 7ddc90383b chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-17 13:35:51 +04:00
NaiJi ✨ 61f2cb010d chore: Merge master into flutter-3.7 2023-02-17 13:35:24 +04:00
FoxMeste 48ad69f231 Translated using Weblate (Russian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
FoxMeste 16d66155db Translated using Weblate (Polish)
Currently translated at 63.7% (255 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
Revertron c30001c829 Translated using Weblate (Russian)
Currently translated at 99.5% (398 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
Revertron 4f9a717dc3 Translated using Weblate (Slovak)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/sk/
2023-02-17 06:39:33 +00:00
FoxMeste d72c790dea Translated using Weblate (Polish)
Currently translated at 20.0% (1 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 9185111a56 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 6d68bd3cd6 Translated using Weblate (Polish)
Currently translated at 59.0% (236 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 633710e3c5 Translated using Weblate (German)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste 5482ecc232 Translated using Weblate (Macedonian)
Currently translated at 1.2% (5 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/mk/
2023-02-17 06:39:33 +00:00
FoxMeste 024aad0903 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/pl/
2023-02-17 06:39:33 +00:00
FoxMeste b3a1d18a23 Translated using Weblate (Spanish)
Currently translated at 18.0% (72 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/es/
2023-02-17 06:39:33 +00:00
FoxMeste 7322d5281a Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-17 06:39:33 +00:00
FoxMeste 1498a16853 Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 50b504d563 Translated using Weblate (Polish)
Currently translated at 50.0% (1 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 0a028df6d4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/uk/
2023-02-17 06:39:33 +00:00
FoxMeste bac6e66ac0 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
Revertron b4b8625a26 Translated using Weblate (English)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/en/
2023-02-17 06:39:33 +00:00
FoxMeste 35f00fa032 Translated using Weblate (Japanese)
Currently translated at 0.5% (2 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ja/
2023-02-17 06:39:33 +00:00
Ortibexon 59e7693f36 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
Inex Code 0938f35a23 Added translation using Weblate (Slovenian) 2023-02-17 06:39:33 +00:00
FoxMeste f17bd9ed20 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/be/
2023-02-17 06:39:33 +00:00
FoxMeste b0f4a243a9 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7375074c48 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_backblaze
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_backblaze/de/
2023-02-17 06:39:33 +00:00
FoxMeste 0e76f5301f Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/de/
2023-02-17 06:39:33 +00:00
FoxMeste b91cd9eb40 Translated using Weblate (German)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste bd0e3e0158 Translated using Weblate (Belarusian)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/be/
2023-02-17 06:39:33 +00:00
FoxMeste c3d47fb526 Translated using Weblate (German)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_hetzner
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_hetzner/de/
2023-02-17 06:39:33 +00:00
FoxMeste 6d0db6a28d Translated using Weblate (German)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/de/
2023-02-17 06:39:33 +00:00
Ortibexon 61a70970ed Translated using Weblate (Azerbaijani)
Currently translated at 40.5% (162 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/az/
2023-02-17 06:39:33 +00:00
FoxMeste 9816035757 Translated using Weblate (German)
Currently translated at 100.0% (1 of 1 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7269dd8620 Translated using Weblate (Belarusian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_old
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_old/be/
2023-02-17 06:39:33 +00:00
FoxMeste 7610b1da0d Translated using Weblate (German)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/de/
2023-02-17 06:39:33 +00:00
FoxMeste b24b093232 Translated using Weblate (Belarusian)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/be/
2023-02-17 06:39:33 +00:00
FoxMeste 8756d53545 Translated using Weblate (German)
Currently translated at 100.0% (5 of 5 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_ssh
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_ssh/de/
2023-02-17 06:39:33 +00:00
Inex Code 0edc6ab30f Added translation using Weblate (Azerbaijani) 2023-02-17 06:39:33 +00:00
FoxMeste b057fda550 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2 of 2 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_cloudflare
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_cloudflare/uk/
2023-02-17 06:39:33 +00:00
FoxMeste 2bde5fffef Translated using Weblate (Thai)
Currently translated at 42.0% (168 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/th/
2023-02-17 06:39:33 +00:00
FoxMeste a8fbeca007 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_fallback_terminal
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_fallback_terminal/uk/
2023-02-17 06:39:33 +00:00
FoxMeste 96b733f814 Translated using Weblate (Polish)
Currently translated at 53.2% (213 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
FoxMeste 600b73279d Translated using Weblate (Belarusian)
Currently translated at 100.0% (6 of 6 strings)

Translation: SelfPrivacy/SelfPrivacy App Markdown: about
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-about/be/
2023-02-17 06:39:33 +00:00
FoxMeste f731b4284b Translated using Weblate (Belarusian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/be/
2023-02-17 06:39:33 +00:00
FoxMeste bc434439ef Translated using Weblate (Russian)
Currently translated at 100.0% (400 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/ru/
2023-02-17 06:39:33 +00:00
Inex Code c37ad33fe2 Added translation using Weblate (Macedonian) 2023-02-17 06:39:33 +00:00
FoxMeste 4735d89556 Translated using Weblate (German)
Currently translated at 46.2% (185 of 400 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/de/
2023-02-17 06:39:33 +00:00
FoxMeste 7d963ed0f2 Translated using Weblate (Polish)
Currently translated at 38.7% (156 of 403 strings)

Translation: SelfPrivacy/SelfPrivacy App
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app/pl/
2023-02-17 06:39:33 +00:00
Weblate 7d9981c265 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: SelfPrivacy/SelfPrivacy App Markdown: how_digital_ocean
Translate-URL: http://weblate.selfprivacy.org/projects/selfprivacy/selfprivacy-app-markdown-how_digital_ocean/
2023-02-17 06:39:33 +00:00
Inex Code aeb1319262 Merge pull request 'Make Windows builds' (#202) from windows-builds into master
Reviewed-on: kherel/selfprivacy.org.app#202
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-17 08:39:31 +02:00
Alya Sirko f5f1f91900 Make Windows builds 2023-02-17 03:11:58 +02:00
NaiJi ✨ 3873c1d3cc chore: Merge digital-ocean-dnso into refactoring 2023-02-17 00:48:35 +04:00
NaiJi ✨ 512f270547 chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-17 00:48:00 +04:00
NaiJi ✨ f731eae1c0 chore: Merge master into flutter-3.7 2023-02-17 00:47:17 +04:00
NaiJi ✨ aa241297bb chore: Merge fix-fdroid-metadata into master
Reviewed-on: kherel/selfprivacy.org.app#201
Reviewed-by: NaiJi  <naiji@udongein.xyz>
2023-02-16 21:48:48 +02:00
Alya Sirko 5d0519cb11 add fdroid images 2023-02-16 21:24:40 +02:00
Alya Sirko 438bad3cd0 fix fdroid metadata 2023-02-16 21:22:19 +02:00
Alya Sirko c43a8bc047 try to fix fdroid metadata 2023-02-16 20:47:27 +02:00
NaiJi ✨ 02abb3d321 chore: Merge digital-ocean-dns into refactoring 2023-02-15 11:46:15 +04:00
NaiJi ✨ ba1f9dbfc9 chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-15 11:45:48 +04:00
NaiJi ✨ 79dcb4178a chore: Merge ram-server-filtering into master
Reviewed-on: kherel/selfprivacy.org.app#200
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-02-15 09:45:48 +02:00
NaiJi ✨ 5db42c37b6 chore: Merge master into flutter-3.7 2023-02-15 11:45:14 +04:00
NaiJi ✨ e99b08bcc3 fix: Improve DigitalOcean server types filtering
- Convert RAM to GB
- Don't let it droplets with RAM less than 1024 MB
2023-02-15 11:03:13 +04:00
NaiJi ✨ be25775601 chore: Merge digital-ocean-dns into refactoring 2023-02-15 10:45:14 +04:00
NaiJi ✨ b818d3bfe1 chore: Marge flutter-3.7 into digital-ocean-dns 2023-02-15 10:44:51 +04:00
NaiJi ✨ 63c667355d chore: Merge master into flutter-3.7 2023-02-15 10:44:13 +04:00
NaiJi ✨ bad6926567 chore: Continue refactoring
- Rename APIGenericResult to GenericResult
- Wrap all provider functions results with GenericResult
- Move basic server commands and getters to business logic layer from API on Hetzner
2023-02-13 18:13:32 +04:00
NaiJi ✨ efe4f620ee chore: Transfer some methords from api to provider 2023-02-07 20:51:15 +04:00
NaiJi ✨ c1738ec875 chore: Add build runner results 2023-02-06 13:28:30 +04:00
NaiJi ✨ 4d4a980aaf Merge branch 'digital-ocean-dns' into refactoring 2023-02-06 12:40:08 +04:00
NaiJi ✨ 2fd5c9a2cd chore: Merge flutter-3.7 into digital-ocean-dns 2023-02-06 12:39:39 +04:00
Inex Code 6b90c5aa3b refactor: Migrate to Flutter 3.7 2023-02-05 16:24:37 +03:00
NaiJi ✨ a270f3dfbb feat: Implement general server provider and its factory 2023-01-30 19:44:52 +04:00
NaiJi ✨ 818de37acd chore: Merge digital-ocean-dns into refactoring 2023-01-29 08:57:08 +04:00
NaiJi ✨ fcd1c29606 fix: Remove breaking underscore from a launchURL call
In services.dart
2023-01-29 08:56:51 +04:00
NaiJi ✨ 10593229b2 chore: Merge master into digital-ocean-dns 2023-01-29 08:54:31 +04:00
NaiJi ✨ 27925f5d8a Merge branch 'digital-ocean-dns' into refactoring 2023-01-27 20:55:00 +04:00
NaiJi ✨ 3f3743c5c4 Merge branch 'master' into digital-ocean-dns 2023-01-27 20:54:43 +04:00
NaiJi ✨ fd8c286a08 Merge branch 'digital-ocean-dns' into refactoring 2023-01-23 19:55:13 +04:00
NaiJi ✨ e48ae98f89 Merge branch 'master' into digital-ocean-dns 2023-01-23 19:54:50 +04:00
NaiJi ✨ 0ae4a40e62 chore: Rename api factories 2023-01-23 19:36:43 +04:00
NaiJi ✨ 14263083a5 feat: Implement server recovery for different dns providers 2023-01-17 18:33:25 +04:00
NaiJi ✨ 08cd59a709 feat: Implement DNS_PROVIDER_TYPE variable for infecting server 2023-01-17 17:29:15 +04:00
NaiJi ✨ 841aee73e8 feat: Implement Digital Ocean DNS email entries 2023-01-16 21:25:48 +04:00
NaiJi ✨ 3b962c5f5a feat: Adapt Desired DNS Records checking for Digital Ocean 2023-01-11 22:01:46 +04:00
NaiJi ✨ 120a8fc644 feat: Implement proper DNS entries creation for Digital Ocean 2023-01-10 21:24:26 +04:00
NaiJi ✨ 07de11c75a fix: Implement correct DNS entries creation and deletion 2023-01-06 19:28:52 +04:00
NaiJi ✨ 9184a9db5d feat: Implement DnsProvider loaging 2023-01-05 14:12:59 +04:00
NaiJi ✨ 36bc5b2554 chore: Generate build runner files 2023-01-05 13:16:30 +04:00
NaiJi ✨ 2980887333 feat: Add DNS provider selection page
Upload cloudflare svg
2023-01-04 14:42:22 +04:00
NaiJi ✨ 6767b679a0 chore: Merge master into digital-ocean-dns 2023-01-03 13:00:01 +04:00
NaiJi ✨ e560de58e7 feat: Implement DNS provider picker page 2022-12-30 07:25:18 +04:00
NaiJi ✨ d333787f37 fix: Change incorrect domain for domain lists 2022-12-28 17:23:28 +04:00
NaiJi ✨ fc4f78162b feat: Implement domain list getter for digital ocean dns 2022-12-21 23:35:20 +04:00
NaiJi ✨ a45b93cd27 feat: Improve Dns Record structure and logic
It is to much digital ocean api. The decision with adding optional id is bad, but it will be refactored soon along with entire backend.
2022-12-21 23:31:03 +04:00
NaiJi ✨ 8922551239 Merge branch 'master' into digital-ocean-dns 2022-12-21 13:47:25 +04:00
NaiJi ✨ 18d3039dc4 chore: Create infrastructure for Digital Ocean DNS provider
Also rename hardcoded cloudflare names from backend
2022-12-17 14:26:19 +04:00
491 changed files with 66088 additions and 27250 deletions

View File

@ -11,7 +11,7 @@ steps:
- name: Run Tests
commands:
- ./ci.py --ci-run-tests
- sonar-scanner -Dsonar.projectKey=SelfPrivacy-Flutter-App -Dsonar.sources=. -Dsonar.host.url=http://analyzer.lan:9000 -Dsonar.login="$SONARQUBE_TOKEN"
# - sonar-scanner -Dsonar.projectKey=SelfPrivacy-Flutter-App -Dsonar.sources=. -Dsonar.host.url=http://analyzer.lan:9000 -Dsonar.login="$SONARQUBE_TOKEN"
environment:
SONARQUBE_TOKEN:
from_secret: SONARQUBE_TOKEN

View File

@ -14,3 +14,6 @@ max_line_length = 150
[*.md]
trim_trailing_whitespace = false
[*.json]
indent_size = 4

View File

@ -0,0 +1,68 @@
name: Bug report
about: File a bug report
labels:
- Bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Please provide a short but a descriptive title for your issue.
- type: textarea
id: expected-behaviour
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual-behaviour
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: What steps can we follow to reproduce this issue?
placeholder: |
1. First step
2. Second step
3. and so on...
validations:
required: true
- type: textarea
id: context
attributes:
label: Context and notes
description: Additional information about environment or what were you trying to do. If you have an idea how to fix this issue, please describe it here too.
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output, if you have any. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: input
id: app-version
attributes:
label: App Version
description: What version of SelfPrivacy app are you running? You can find it in the "About" section of the app.
validations:
required: true
- type: input
id: api-version
attributes:
label: Server API Version
description: What version of SelfPrivacy API are you running? You can find it in the "About" section of the app. Leave it empty if your app is not connected to the server yet.
- type: dropdown
id: os
attributes:
label: Operating System
description: What operating system are you using?
options:
- Android
- iOS
- Linux
- macOS
- Windows

View File

@ -0,0 +1,23 @@
name: Feature request
about: Suggest an idea for this project
label:
- Feature request
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request! Please provide a short but a descriptive title for your issue.
- type: textarea
id: description
attributes:
label: Description
description: Describe the feature you'd like to see.
placeholder: |
As a user, I want to be able to...
validations:
required: true
- type: textarea
id: context
attributes:
label: Context and notes
description: Additional information about environment and what were you trying to do. If you have an idea how to implement this feature, please describe it here too.

View File

@ -0,0 +1,29 @@
name: Translation issue
about: File a translation (localization) issue
labels:
- Translations
body:
- type: markdown
attributes:
value: |
Translations can be modified and discussed on [Weblate](https://weblate.selfprivacy.org/projects/selfprivacy/). You can fix the mistranslation issue yourself there. Using the search, you can also find the string ID of the mistranslated string. If your issue is more complex, please file it here
If you are a member of SelfPrivacy core team, you **must** fix the issue yourself on Weblate.
- type: input
id: language
attributes:
label: Language
description: What language is affected?
placeholder: |
English
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Describe the issue in detail. If you have an idea how to fix this issue, please describe it here too. Include the string ID of the mistranslated string, if possible.
placeholder: |
The string `string.id` is translated as "foo", but it should be "bar".
validations:
required: true

32
.github/workflows/windows.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Windows Builder
on:
push:
tags:
- '*.*.*'
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
# Install Python dependencies
- run: pip install requests pyyaml
# Install Flutter
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.16.1'
channel: 'stable'
# Build Windows artifact
- run: flutter build windows
# Archive the build
- run: python ci.py --package-windows-archive
# Upload the build
- run: python ci.py --deploy-windows-archive
env:
GITEA_RELEASE_TOKEN: ${{ secrets.GITEA_RELEASE_TOKEN }}

6
.gitignore vendored
View File

@ -40,3 +40,9 @@ app.*.symbols
# Obfuscation related
app.*.map.json
# Flatpak
.flatpak-builder/
flatpak-build/
flatpak-repo/
*.flatpak

View File

@ -2,7 +2,7 @@
SelfPrivacy — is a platform on your cloud hosting, that allows to deploy your own private services and control them using mobile application.
To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/en/second
To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/docs/getting-started/
Application will do the following things for you:

View File

@ -29,17 +29,17 @@ linter:
# producing the lint.
rules:
avoid_print: false # Uncomment to disable the `avoid_print` rule
prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
always_use_package_imports: true
invariant_booleans: true
no_adjacent_strings_in_list: true
unnecessary_statements: true
always_declare_return_types: true
always_put_required_named_parameters_first: true
always_put_control_body_on_new_line: true
always_put_required_named_parameters_first: true
always_use_package_imports: true
avoid_escaping_inner_quotes: true
avoid_setters_without_getters: true
collection_methods_unrelated_type: true
combinators_ordering: true
directives_ordering: true
eol_at_end_of_file: true
no_adjacent_strings_in_list: true
prefer_constructors_over_static_methods: true
prefer_expression_function_bodies: true
prefer_final_in_for_each: true
@ -49,12 +49,18 @@ linter:
prefer_if_elements_to_conditional_expressions: true
prefer_mixin: true
prefer_null_aware_method_calls: true
prefer_single_quotes: true
require_trailing_commas: true
sized_box_shrink_expand: true
sort_constructors_first: true
unawaited_futures: true
unnecessary_await_in_return: true
unnecessary_null_aware_operator_on_extension_on_nullable: true
unnecessary_null_checks: true
unnecessary_parenthesis: true
unnecessary_statements: true
unnecessary_to_list_in_spreads: true
unreachable_from_main: true
use_enums: true
use_if_null_to_convert_nulls_to_bools: true
use_is_even_rather_than_modulo: true
@ -62,6 +68,7 @@ linter:
use_named_constants: true
use_setters_to_change_properties: true
use_string_buffers: true
use_string_in_part_of_directives: true
use_super_parameters: true
use_to_and_as_if_applicable: true

View File

@ -52,8 +52,8 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "org.selfprivacy.app"
minSdkVersion 21
targetSdkVersion 33
compileSdkVersion 33
targetSdkVersion 34
compileSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

View File

@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.6.10'
ext.kotlin_version = '1.9.21'
ext.getVersionCode = { ->
try {
def stdout = new ByteArrayOutputStream()
@ -39,6 +39,6 @@ subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

View File

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip

View File

@ -10,7 +10,7 @@ AppDir:
id: org.selfprivacy.app
name: SelfPrivacy
icon: org.selfprivacy.app
version: 0.8.0
version: 0.11.0
exec: selfprivacy
exec_args: $@
apt:
@ -51,3 +51,4 @@ AppDir:
AppImage:
arch: x86_64
update-information: guess
comp: xz

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 209.51 94.74"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M143.05,93.42l1.07-3.71c1.27-4.41.8-8.48-1.34-11.48-2-2.76-5.26-4.38-9.25-4.57L58,72.7a1.47,1.47,0,0,1-1.35-2,2,2,0,0,1,1.75-1.34l76.26-1c9-.41,18.84-7.75,22.27-16.71l4.34-11.36a2.68,2.68,0,0,0,.18-1,3.31,3.31,0,0,0-.06-.54,49.67,49.67,0,0,0-95.49-5.14,22.35,22.35,0,0,0-35,23.42A31.73,31.73,0,0,0,.34,93.45a1.47,1.47,0,0,0,1.45,1.27l139.49,0h0A1.83,1.83,0,0,0,143.05,93.42Z"/><path class="cls-1" d="M168.22,41.15q-1,0-2.1.06a.88.88,0,0,0-.32.07,1.17,1.17,0,0,0-.76.8l-3,10.26c-1.28,4.41-.81,8.48,1.34,11.48a11.65,11.65,0,0,0,9.24,4.57l16.11,1a1.44,1.44,0,0,1,1.14.62,1.5,1.5,0,0,1,.17,1.37,2,2,0,0,1-1.75,1.34l-16.73,1c-9.09.42-18.88,7.75-22.31,16.7l-1.21,3.16a.9.9,0,0,0,.79,1.22h57.63A1.55,1.55,0,0,0,208,93.63a41.34,41.34,0,0,0-39.76-52.48Z"/></svg>

After

Width:  |  Height:  |  Size: 923 B

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="7.4053912mm"
height="7.5173831mm"
viewBox="0 0 7.4053913 7.5173831"
version="1.1"
id="svg1262"
sodipodi:docname="logo.notext.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs1256" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="101.86078"
inkscape:cy="8.9271745"
inkscape:document-units="mm"
inkscape:current-layer="g3885"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1365"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1" />
<metadata
id="metadata1259">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-254.94057,-266.78298)">
<g
id="g3885"
transform="matrix(0.26519825,0,0,0.26519825,228.89366,215.69135)"
style="fill:#000000">
<g
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
id="layer1-9"
transform="matrix(0.22901929,0,0,0.22901929,26.296508,84.906304)"
inkscape:export-filename="/home/nils/git/desec-stack/webapp/src/assets/logo.png"
inkscape:export-xdpi="567.52002"
inkscape:export-ydpi="567.52002">
<g
style="fill:#000000;stroke:#ffffff;stroke-opacity:1"
transform="translate(-194.13584,150.8067)"
id="g3933">
<path
inkscape:connector-curvature="0"
d="m 509.13584,366.2239 c 8.87906,-33.13708 42.93987,-52.8021 76.07695,-43.92304 21.43594,5.74374 38.17931,22.48711 43.92305,43.92304 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 0,0 -6.09923,-6.07815 -10,-6.07815 -3.90077,0 -10,6.07815 -10,6.07815 z"
id="path2985-6-3"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
d="m 567.42674,364.89583 v 61.87321 c 0,9.34738 5.48085,16.17306 12.23879,16.17306 6.75795,0 12.23635,-6.83606 12.23635,-16.18344 0,0 -1.07806,-1.02674 -1.75904,-1.03964 -0.64261,-0.0122 -1.69589,0.91753 -1.69589,0.91753 0,6.70817 -3.93157,13.01592 -8.78142,13.01592 -4.84984,0 -8.78142,-6.30775 -8.78142,-13.01592 l -7.6e-4,-61.74072 z"
id="path3775-7-4-6"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:117.14173126;stroke-opacity:1;marker:none;enable-background:accumulate" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### О проекте
Всё больше организаций хотят владеть нашими данными
Проект позволяет только Вам в полной мере распоряжаться собственными **данными** на своём сервере.
### Миссия проекта
Цифровая независимость и приватность доступная каждому.
### Цель
Развивать программу, которая позволит каждому создавать приватные сервисы для себя и своих близких.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### About us
More and more corporations want to control our data.
We want to have full control of our **data** on our own.
### Our mission
Digital independence and privacy, available to everyone
### Target
Develop the program, which will allow everyone to deploy their private services for themselves and their neighbours.

View File

@ -1,12 +0,0 @@
### Про нас
Все більше корпорацій хочуть контролювати свої дані.
Ми хочемо мати повний контроль над нашими.
### Наша місія
Цифрова незалежність і конфіденційність доступні кожному
### Ціль
Розробити програму, яка дозволить кожному розгорнути свої приватні послуги для себе та їх сусідів.

View File

@ -1,8 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
### Як атрымаць Backblaze API Token
1. Перайдзіце па спасылцы https://secure.backblaze.com/user_signin.htm і аўтарызуйцеся
2. У левай частцы інтэрфейсу абярыце **App Keys** y **B2 Cloud Storage** падкатэгорыі.
3. Націсніце на сінюю кнопку **Generate New Master Application Key**.
4. Пацвердзіце стварэнне ва ўсплываючым акне.
5. Схавайце _keyID_ і _applicationKey_ у бяспечным месце. Напрыклад, у мэнеджэры пароляў.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Атрыманіе токена Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -1,8 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
### Jak získat Backblaze API Token
1. Navštivte následující odkaz a autorizujte se: https://secure.backblaze.com/user_signin.htm
2. V levé části rozhraní vyberte položku **App Keys** v podkategorii **B2 Cloud Storage**.
3. Klikněte na modré tlačítko **Generate New Master Application Key** (Vygenerovat nový hlavní aplikační klíč**).
4. V zobrazeném vyskakovacím okně potvrďte vygenerování.
5. Save _keyID_ and _applicationKey_ in the safe place.. Například ve správci hesel.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Nastavení tokenu Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -1,8 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
### So erhalten Sie das Backblaze-API-Token
1. Besuchen Sie den folgenden Link und melden Sie sich an: https://secure.backblaze.com/user_signin.htm
2. Wählen Sie auf der linken Seite der Benutzeroberfläche **App Keys** in der Unterkategorie **B2 Cloud Storage** aus.
3. Klicken Sie auf die blaue Schaltfläche **Generate New Master Application Key**.
4. Bestätigen Sie im erscheinenden Popup-Fenster die Generierung.
5. Speichern Sie _keyID_ und _applicationKey_ an einem sicheren Ort. Zum Beispiel im Passwort-Manager.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Backblaze token Einrichtung](resource:assets/images/gifs/Backblaze.gif)

View File

@ -1,8 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
### Jak otrzymać Backblaze API Token
1. Odwiedź poniższy link i autoryzuj: https://secure.backblaze.com/user_signin.htm
2. Po lewej stronie wybierz **App Keys** w podkategorіі **B2 Cloud Storage**.
3. Naciśnij **Generate New Master Application Key**.
4. W wyświetlonym oknie podręcznym potwierdź generację.
5. Zapisz _keyID_ i _applicationKey_ w bezpiecznym miejscu. Na przykład w menedżerze haseł.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Otrzymanie tokena Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -1,8 +1,8 @@
### How to get Backblaze API Token
1. Visit the following link and authorize: https://secure.backblaze.com/user_signin.htm
2. On the left side of the interface, select **App Keys** in the **B2 Cloud Storage** subcategory.
3. Click on the blue **Generate New Master Application Key** button.
4. In the appeared pop-up window confirm the generation.
5. Save _keyID_ and _applicationKey_ in the safe place. For example, in the password manager.
### Ako získať token API spoločnosti Backblaze
1. Navštívte nasledujúci odkaz a autorizujte sa: https://secure.backblaze.com/user_signin.htm
2. Na ľavej strane rozhrania vyberte položku **App Keys** v podkategórii **B2 Cloud Storage** podkategória.
3. Kliknite na modré tlačidlo **Generate New Master Application Key**.
4. V zobrazenom pop-up okne potvrďte generovanie.
5. Uložte _keyID_ and _applicationKey_ in bezpečné miesto. Napríklad v správcovi hesiel.
![Backblaze token setup](resource:assets/images/gifs/Backblaze.gif)
![Prijatie tokenu Backblaze](resource:assets/images/gifs/Backblaze.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Як атрымаць токен Cloudflare API
1. Перайдзіце па наступнай спасылцы: https://dash.cloudflare.com/
2. У правым куце націсніце на значок профілю (чалавек у крузе). Для мабільнай версіі сайта ў левым верхнім куце націсніце кнопку **Menu** (тры гарызантальныя палоскі), у выпадальным меню націсніце **My Profile**.
3. Ёсць чатыры катэгорыі канфігурацыі на выбар: *Communication*, *Authentication*, **API Tokens**, *Session*. Выберыце **API Tokens**.
4. Націсніце на кнопку **Create Token**.
5. Спусціцеся ўніз і паглядзіце поле **Create Custom Token** і націсніце кнопку **Get Started** справа.
6. У полі **Token Name** дайце назву токену.
7. Далей у нас налады. У крайнім левым полі абярыце **Zone**. У самым доўгім полі па цэнтры абярыце **DNS**. У крайнім правым полі абярыце **Edit**.
8. Далей прама пад гэтым радком націсніце «Дадаць яшчэ». З'явіцца аналагічнае поле.
9. У самым левым полі новага радка выберыце аналагічна папярэдняму радку — **Zone**. У цэнтры — крыху іншае. Тут абярыце тое ж, што і злева — **Zone**. У крайнім правым полі абярыце **Read**.
10. Далей паглядзіце на **Resources Zone**. Пад гэтым надпісам радок з двума палямі. Злева павінна быць **Include**, а справа павінна быць **Specific Zone**. Пасля таго як вы выберыце канкрэтную зону, справа з'явіцца іншае поле. Выберыце ў ім свой дамен.
11. Прагартайце ўніз і націсніце сінюю кнопку **Continue to Summary**.
12. Правер, ці ўсё ў цябе правільна. Аналагічны радок павінен прысутнічаць: *Domain — DNS:Edit, Zone:Read*.
13. Націсніце на **Create Token**.
14. Створаны токен капіюем і захоўваем у надзейным месцы (пажадана ў мэнэджару пароляў).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)
![Настройка токену Cloudfire](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Jak získat token API Cloudflare
1. Přejděte na následující odkaz: https://dash.cloudflare.com/.
2. V pravém rohu klikněte na ikonu profilu (mužík v kruhu). V případě mobilní verze webu klikněte v levém horním rohu na **Menu** (tři vodorovné pruhy), v rozbalovací nabídce klikněte na **My profile**.
Na výběr jsou čtyři kategorie nastavení: *Communication*, *Authentication*, **API Tokens**, *Session*. Vyberte možnost **API Tokens**.
4. Klikněte na tlačítko **Create Token**.
5. Přejděte dolů, zobrazte pole **Create Custom Token** a klikněte na tlačítko **Get Started** vpravo.
6. V poli **Token Name** pojmenujte svůj token.
7. Dále máme přístupová práva. V poli zcela vlevo vyberte možnost **Zone**. V nejdelším poli uprostřed vyberte položku **DNS**. V pravém krajním poli vyberte možnost **Edit**.
8. Poté hned pod tímto řádkem klepněte na tlačítko Přidat další. Zobrazí se podobné pole.
9. Na zcela levé straně nového řádku vyberte totéž co u předchozího řádku - **Zone**. Prostřední pole se mírně liší. Zde vyberte totéž co na levém okraji - **Zone**. Na pravém okraji zcela vpravo vyberte možnost **Read**.
10. Dále se podívejte na položku **Zone Resources**. Pod ním se nachází řádek se dvěma poli. V levém z nich by mělo být uvedeno **Include** a v pravém **Specific Zone**. Jakmile vyberete možnost Specifická zóna, objeví se vpravo další pole. V něm vyberte svou doménu.
11. Přejděte úplně dolů a klikněte na modré tlačítko **Continue to Summary**.
12. Zkontrolujte, zda jste vše provedli správně. Měl by se objevit podobný řádek: *Domain - DNS:Edit, Zone:Read*.
13. Klepněte na tlačítko **Create Token**.
14. Zkopírujte vytvořený token a uložte jej na bezpečné místo (nejlépe do správce hesel).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Wie man Cloudflare API Token bekommt
1. Besuchen Sie den folgenden link: https://dash.cloudflare.com/
2. Klicken Sie in der rechten Ecke auf das Profilsymbol (ein Mann in einem Kreis). Bei der mobilen Version der Website klicken Sie in der oberen linken Ecke auf die Schaltfläche **Menu** (drei horizontale Balken), im Dropdown-Menü klicken Sie auf **My Profile**
3. Es gibt vier Konfigurationskategorien, aus denen Sie wählen können: *Communication*, *Authentication*, **API Tokens**, *Session*. Wählen Sie **API Tokens**.
4. Klicken Sie auf die Schaltfläche **Create Token**.
5. Gehen Sie nach unten und sehen Sie das Feld **Create Custom Token** und klicken Sie auf der rechten Seite auf die Schaltfläche **Get Started**.
6. Geben Sie in das Feld **Token Name** einen Namen für Ihr Token ein.
7. Als nächstes folgen die Berechtigungen. Wählen Sie im Feld ganz links **Zone**. Wählen Sie im längsten Feld in der Mitte **DNS**. Wählen Sie im Feld ganz rechts **Edit**.
8. Klicken Sie anschließend direkt unter dieser Zeile auf Add More. Ein ähnliches Feld wird angezeigt.
9. Wählen Sie im ganz linken Feld der neuen Zeile, ähnlich wie in der letzten Zeile, **Zone**. In der Mitte - ein wenig anders. Wählen Sie hier dasselbe wie in der linken Zeile - **Zone**. Im Feld ganz rechts wählen Sie **Read**.
10. Als nächstes sehen Sie sich **Zone Resources** an. Unter dieser Aufschrift befindet sich eine Zeile mit zwei Feldern. Auf der linken Seite muss **Include** und auf der rechten Seite **Specific Zone** stehen. Sobald Sie Spezifische Zone auswählen, erscheint rechts ein weiteres Feld. Wählen Sie dort Ihre Domain aus.
11. Streichen Sie nach unten und drücken Sie die blaue Schaltfläche **Continue to Summary**.
12. Überprüfen Sie, ob Sie alles richtig gemacht haben. Eine ähnliche Zeichenfolge muss vorhanden sein: *Domain — DNS:Edit, Zone:Read*.
13. Klicken Sie auf **Create Token**.
14. Kopieren Sie das erstellte Token und speichern Sie es an einem zuverlässigen Ort (vorzugsweise im Passwort-Manager).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)
![Cloudflare token Einrichtung](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Jak uzyskać token API Cloudflare'a
1. Przejdź pod następujący link: https://dash.cloudflare.com/.
2. W prawym rogu kliknij ikonę profilu (człowiek w kółku). W przypadku wersji mobilnej strony, w lewym górnym rogu kliknij **Menu** (trzy poziome paski), w rozwijanym menu kliknij **My Profile**.
Do wyboru są cztery kategorie ustawień: *Communication*, *Authentication*, **API Tokens**, *Session*. Należy wybrać **API Tokens**.
4. Kliknij przycisk **Create token**.
5. Zjedź na dół, zobacz pole **Create Custom Token** i kliknij przycisk **Get Started** po prawej stronie.
6. W polu **Token Name** nadaj nazwę swojemu tokenowi.
7. Następnie mamy prawa dostępu. W skrajnie lewym polu wybierz **Zone**. W najdłuższym polu, środkowym, wybierz **DNS**. W skrajnie prawym polu wybierz **Edit**.
8. Następnie, tuż pod tym wierszem, kliknij Add more. Pojawi się podobne pole.
9. W skrajnie lewej części nowej linii wybierz to samo, co w poprzedniej linii - **Zone**. Środkowe pole jest nieco inne. Tutaj wybierz to samo, co na lewym marginesie - **Zone**. W skrajnie prawym marginesie wybierz **Read**.
10. Następnie spójrz na **Strefę zasobów**. Poniżej tego znajduje się linia z dwoma polami. W lewym powinno być **Include**, a w prawym **Specific Zone**. Gdy wybierzesz Specific Zone, po prawej stronie pojawi się kolejne pole. Wybierz w nim swoją domenę.
11. Przejdź na sam dół i kliknij niebieski przycisk **Continue to Summary**.
12. Sprawdź, czy wszystko zrobiłeś poprawnie. Powinna pojawić się podobna linia: *Domain - DNS:Edit, Zone:Read*.
13. Kliknij na **Create Token**.
14. Skopiuj utworzony token i zapisz go w bezpiecznym miejscu (najlepiej w menedżerze haseł).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,18 +1,17 @@
### Как получить Cloudflare API Token
1. Переходим по [ссылке](https://dash.cloudflare.com/) и авторизуемся в ранее созданном аккаунте. https://dash.cloudflare.com/
2. В правом верхнем углу кликаем на иконку профиля (для мобильной версии сайта: в верхнем левом углу нажимаем кнопку **Меню** с тремя горизонтальными полосками). В выпавшем меню кликаем на пункт **My Profile**.
![My profile](resource:assets/images/pics/myprofile.png)
3. Нам предлагается на выбор, четыре категории настройки: **Preferences**, **Authentication**, **API Tokens**, **Sessions**. Выбираем **API Tokens**.
4. Самым первым пунктом видим кнопку **Create Token**. С полной уверенностью в себе и желанием обрести приватность, нажимаем на неё.
5. Спускаемся в самый низ и видим поле **Create Custom Token** и кнопку **Get Started** с правой стороны. Нажимаем.
6. В поле **Token Name** даём своему токену имя. Можете покреативить и отнестись к этому как к наименованию домашнего зверька :)
7. Далее, у нас **Permissions**. В первом поле выбираем **Zone**. Во втором поле, по центру, выбираем **DNS**. В последнем поле выбираем **Edit**.
8. Нажимаем на синюю надпись снизу **+ Add more** (сразу же под левым полем которое мы заполняли ранее). Вуаля, у нас появились новые поля. Заполняем по аналогии с предыдущим пунктом, в первом поле выбираем **Zone**, во-втором тоже **Zone**. А уже в третьем нажимаем на **Read**. Давайте сверим с тем, что у вас получилось:
![Permissions](resource:assets/images/pics/permissions.png)
8. Далее смотрим на **Zone Resources**. Под этой надписью есть строка с двумя полями. В первом должно быть **Include**, а во втором — **Specific Zone**. Как только Вы выберите **Specific Zone**, справа появится ещё одно поле. В нём выбираем наш домен.
9. Листаем в самый низ и нажимаем на синюю кнопку **Continue to Summary**.
10. Проверяем, всё ли мы правильно выбрали. Должна присутствовать подобная строка: ваш.домен — **DNS:Edit, Zone:Read**.
11. Нажимаем **Create Token**.
12. Копируем созданный токен, и сохраняем его в надёжном месте (желательно — в менеджере паролей).
### Как получить токен API Cloudflare
1. Перейдите по следующей ссылке: https://dash.cloudflare.com/.
2. В правом углу нажмите на значок профиля (человечек в круге). Для мобильной версии сайта: в левом верхнем углу нажмите на кнопку **Menu** (три горизонтальные полоски), в выпадающем меню нажмите на **My Profile**.
3. На выбор предлагаются четыре категории настроек: *Communication*, *Authentication*, **API Tokens**, *Session*. Выберите **API Tokens**.
4. Нажмите на кнопку **Create token**.
5. Спуститесь в самый низ, увидите поле **Create Custom Token** и нажмите кнопку **Get Started** справа.
6. В поле **Token Name** дайте имя вашему токену.
7. Далее у нас есть права доступа. В крайнем левом поле выберите **Zone**. В самом длинном поле, по центру, выберите **DNS**. В крайнем правом поле выберите **Edit**.
8. Далее, прямо под этой строкой, нажмите **Добавить еще**. Появится аналогичное поле.
9. В крайнем левом поле новой строки выберите, аналогично предыдущей строке - **Zone**. В центральном - немного иначе. Здесь выберите то же, что и в левом - **Zone**. В крайнем правом поле выберите **Read**.
10. Далее посмотрите на **Resources Zone**. Под этой надписью находится строка с двумя полями. В левом должно быть **Include**, а в правом - **Specific Zone**. Как только вы выберете Specific Zone, справа появится еще одно поле. Выберите в нем свой домен.
11. Перейдите в самый низ и нажмите синюю кнопку **Continue to Summary**.
12. Проверьте, все ли вы сделали правильно. Должна присутствовать аналогичная строка: *Domain - DNS:Edit, Zone:Read*.
13. Нажмите на **Create Token**.
14. Копируем созданный токен и сохраняем его в надежном месте (желательно в менеджере паролей).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Ako získať token API Cloudflare
1. Navštívte nasledujúce prepojenie: https://dash.cloudflare.com/
2. V pravom rohu kliknite na ikonu profilu (muž v kruhu). V prípade mobilnej verzie stránky kliknite v ľavom hornom rohu na tlačidlo **Menu** (tri vodorovné pruhy), v rozbaľovacej ponuke kliknite na **My profile**
3. Na výber sú štyri kategórie konfigurácie: *Communication*, *Authentication*, **Toky API**, *Session*. Vyberte **API Tokens**.
4. Kliknite na tlačidlo **Create Token**.
5. Prejdite na spodnú časť a zobrazte pole **Create Custom Token** a stlačte tlačidlo **Get Started** na pravej strane.
6. V poli **Token Name** zadajte svoj token.
7. Ďalej tu máme položku Permissions. V ľavom krajnom poli vyberte položku **Zone**. V najdlhšom poli uprostred vyberte položku **DNS**. V krajnom pravom poli vyberte položku **Edit**.
8. Ďalej priamo pod týmto riadkom kliknite na položku **Pridať ďalšie**. Zobrazí sa podobné pole.
9. V krajnom ľavom poli nového riadku vyberte podobne ako v predchádzajúcom riadku - **Zone**. V strede - trochu inak. Tu vyberte rovnako ako v ľavom poli - **Zone**. V krajnom pravom poli vyberte položku **Read**.
10. Ďalej sa pozrite na položku **Zone Resources**. Pod týmto nápisom sa nachádza riadok s dvoma poľami. V ľavom musí byť uvedené **Include** a v pravom **Specific Zone**. Keď vyberiete položku **Špecifická zóna**, vpravo sa objaví ďalšie pole. V ňom vyberte svoju doménu.
11. Prejdite na spodnú časť a stlačte modré tlačidlo **Continue to Summary**.
12. Skontrolujte, či máte všetko správne. Musí sa vyskytovať podobný reťazec: *Domain — DNS:Edit, Zone:Read*.
13. Kliknite na **Create Token**.
14. Vytvorený token skopírujeme a uložíme ho na spoľahlivé miesto (najlepšie do správcu hesiel).
![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -1,17 +1,17 @@
### How to get Cloudflare API Token
1. Visit the following link: https://dash.cloudflare.com/
2. the right corner, click on the profile icon (a man in a circle). For the mobile version of the site, in the upper left corner, click the **Menu** button (three horizontal bars), in the dropdown menu, click on **My Profile**
3. There are four configuration categories to choose from: *Communication*, *Authentication*, **API Tokens**, *Session*. Choose **API Tokens**.
4. Click on **Create Token** button.
5. Go down to the bottom and see the **Create Custom Token** field and press **Get Started** button on the right side.
6. In the **Token Name** field, give your token a name.
7. Next we have Permissions. In the leftmost field, select **Zone**. In the longest field, center, select **DNS**. In the rightmost field, select **Edit**.
8. Next, right under this line, click Add More. Similar field will appear.
9. In the leftmost field of the new line, select, similar to the last line — **Zone**. In the center — a little different. Here choose the same as in the left — **Zone**. In the rightmost field, select **Read**.
10. Next look at **Zone Resources**. Under this inscription there is a line with two fields. The left must have **Include** and the right must have **Specific Zone**. Once you select Specific Zone, another field appears on the right. Choose your domain in it.
11. Flick to the bottom and press the blue **Continue to Summary** button.
12. Check if you got everything right. A similar string must be present: *Domain — DNS:Edit, Zone:Read*.
13. Click on **Create Token**.
14. We copy the created token, and save it in a reliable place (preferably in the password manager).
### Як отримати токен Cloudflare API
1. Перейдіть за цим посиланням: https://dash.cloudflare.com/
2. В правому куті натисніть на іконку профілю (людина в колі). Для мобільної версії сайту, у верхньому лівому кутку натисніть кнопку **Menu** (три горизонтальні смужки), у випадаючому меню натисніть **My profile**
3. Є чотири категорії конфігурації на вибір: *Communication*, *Authentication*, **API Tokens**, *Session*. Виберіть **API Tokens**.
4. Натисніть кнопку **Create Token**.
5. Спустіться вниз і перегляньте поле **Create Custom Token** і натисніть кнопку **Get Started** праворуч.
6. У полі **Назва токена** введіть назву токена.
7. Далі у нас є Дозволи. У крайньому лівому полі виберіть **Zone**. У найдовшому полі по центру виберіть **DNS**. У крайньому правому полі виберіть **Edit**.
8. Далі прямо під цим рядком натисніть «Add more». З'явиться аналогічне поле.
9. У крайньому лівому полі нового рядка виберіть, як і в останньому рядку, — **Zone**. У центрі — трохи інше. Тут вибираємо те саме, що й зліва — **Zone**. У крайньому правому полі виберіть **Read**.
10. Далі подивіться на **Zone Resources**. Під цим написом — рядок із двома полями. Ліворуч має бути **Include**, а праворуч має бути **Specific Zone**. Після вибору «Specific Zone» праворуч з’явиться ще одне поле. Виберіть у ньому свій домен.
11. Прокрутіть униз і натисніть синю кнопку **Continue to Summary**.
12. Перевірте, чи все ви зробили правильно. Подібний рядок має бути присутнім: *Domain — DNS:Edit, Zone:Read*.
13. Натисніть **Create Token**.
14. Копіюємо створений токен і зберігаємо в надійному місці (бажано в менеджері паролів).
![Cloudflare настройка токена](resource:assets/images/gifs/CloudFlare.gif)
![Cloudflare налаштування токена](resource:assets/images/gifs/CloudFlare.gif)

View File

@ -0,0 +1,9 @@
### How to get deSEC API Token
1. Log in at: https://desec.io/login
2. Go to **Domains** page at: https://desec.io/domains
3. Go to **Token management** tab.
4. Click on the round "plus" button in the upper right corner.
5. **"Generate New Token"** dialogue must be displayed. Enter any **Token name** you wish. *Advanced settings* are not required, so do not touch anything there.
6. Click on **Save**.
7. Make sure you save the token's "**secret value**" as it will only be displayed once.
8. Now you can safely **close** the dialogue.

View File

@ -0,0 +1,9 @@
### Как получить deSEC API Токен
1. Авторизуемся в deSEC: https://desec.io/login
2. Переходим на страницу **Domains** по ссылке: https://desec.io/domains
3. Переходим на вкладку **Token management**.
4. Нажимаем на большую кнопку с плюсом в правом верхнем углу страницы.
5. Должен был появиться **"Generate New Token"** диалог. Вводим любое имя токена в **Token name**. *Advanced settings* необязательны, так что ничего там не трогаем.
6. Кликаем **Save**.
7. Обязательно сохраняем "**secret value**" ключ токена, потому что он отображается исключительно один раз.
8. Теперь спокойно закрываем диалог, нажав **close**.

View File

@ -1,12 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### Як атрымаць токен Digital Ocean API
1. Перайдзіце па наступнай [link](https://cloud.digitalocean.com/) і падпішыцеся
у толькі што створаны ўліковы запіс.
2. Увайдзіце ў раней створаны праект. Калі вы яго не стварылі,
тады, калі ласка, працягвайце.
3. Перайдзіце па спасылцы "API" на панэлі злева.
4. Націсніце на кнопку "Generation New Token".
5. Увядзіце любую назву токена.
6. Усталюйце час заканчэння тэрміну дзеяння на "No Expiry".
7. Усталюйце сцяжок "Write (optional)".
8. Цяпер націсніце на кнопку "Generate Token".
9. Пасля гэтага будзе паказаны токен. Захоўвайце яго ў любым надзейным месцы, пажадана ў менеджэры пароляў.

View File

@ -1,12 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### Jak získat token API Digital Ocean
1. Navštivte následující [link](https://cloud.digitalocean.com/) a podepište se.
k nově vytvořenému účtu.
2. Vstupte do dříve vytvořeného projektu. Pokud jste žádný nevytvořili,
pak prosím pokračujte.
3. Přejděte na odkaz "API" na levé liště.
4. Klikněte na tlačítko "Generate New Token" (Vygenerovat nový token).
5. Zadejte libovolný název tokenu.
6. Nastavte dobu platnosti na "No expiry".
7. Zaškrtněte políčko "Write (optional)".
8. Nyní klikněte na tlačítko "Generate Token".
9. Poté se zobrazí token. Uložte jej na libovolné spolehlivé místo, nejlépe do správce hesel.

View File

@ -1,12 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### So erhalten Sie das Digital Ocean API-Token
1. Besuchen Sie den folgenden [link](https://cloud.digitalocean.com/) und melden Sie sich
in das neu erstellte Konto an.
2. Gehen Sie in ein zuvor erstelltes Projekt. Wenn Sie noch keine erstellt haben,
dann bitte fortfahren.
3. Gehen Sie zum Link "API" in der linken Leiste.
4. Klicken Sie auf "Generate New Token".
5. Geben Sie einen beliebigen Namen für das Token ein.
6. Setzen Sie die Ablaufzeit auf "No expiry".
7. Aktivieren Sie das Kontrollkästchen "Write (optional)".
8. Klicken Sie nun auf die Schaltfläche "Generate Token".
9. Danach wird der Token angezeigt. Bewahren Sie es an einem zuverlässigen Ort auf, vorzugsweise in einem Passwort-Manager.

View File

@ -1,12 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### Jak uzyskać token API Digital Ocean
1. Wejdź na stronę [link](https://cloud.digitalocean.com/) i zaloguj się
na konto, które właśnie utworzyłeś.
2. Zaloguj się do wcześniej utworzonego projektu. Jeśli jeszcze nie utworzyłeś projektu,
to przejdź dalej.
3. Kliknij na link "API" w lewym panelu.
4. Kliknij na przycisk "Generate New Token".
5. Wprowadź dowolną nazwę dla tokena.
6. Ustaw datę wygaśnięcia na "No expiry".
7. Zaznacz pole wyboru "Write (optional)".
8. Teraz kliknij przycisk "Generate Token".
9. Na ekranie pojawi się wówczas token. Przechowuj go w dowolnym bezpiecznym miejscu, najlepiej w menedżerze haseł.

View File

@ -1,10 +1,12 @@
### Как получить токен Digital Ocean API
1. Переходим по [ссылке](https://console.hetzner.cloud/) и авторизуемся в ранее созданном аккаунте.
2. Заходим в созданный нами проект. Если такового нет — значит создаём.
3. *Наводим мышкой на боковую панель.* Она должна раскрыться, показав нам пункты меню. Нас интересует последний — **Security** (с иконкой ключика).
4. Далее, в верхней части интерфейса видим примерно такой список: **SSH KEYS, API TOKENS, CERTIFICATES, MEMBERS.** Нам нужен **API TOKENS**. Переходим по нему.
5. По середине в интерфейсе, нас будет ожидать кнопка **GENERATE API TOKEN**. Нажимаем на эту кнопку.
6. В поле **Description** даём нашему токену название (это может быть любое название, которое Вам нравится, сути оно не меняет).
7. Под полем **Description** видим возможность выбрать разрешения **PERMISSIONS**. Выбираем **Read & Write**.
8. Нажимаем **GENERATE API TOKEN**.
9. После этого, появиться окно с вашим токеном.
### Как получить API-токен Digital Ocean
1. Перейдите по следующей [link](https://cloud.digitalocean.com/) и войдите
в только что созданную учетную запись.
2. Войдите в ранее созданный проект. Если вы еще не создали проект,
тогда приступайте.
3. Перейдите по ссылке "API" на левой панели.
4. Нажмите на кнопку "Generate New Token".
5. Введите любое имя для токена.
6. Установите срок действия на "No expiry".
7. Установите флажок "Write (optional)".
8. Теперь нажмите на кнопку "Generate Token".
9. После этого на экране появится токен. Сохраните его в любом надежном месте, лучше всего в менеджере паролей.

View File

@ -1,12 +1,12 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### Ako získať token API Digital Ocean
1. Navštívte nasledujúci [link](https://cloud.digitalocean.com/) a prihláste sa
do novo vytvoreného účtu.
2. Vstúpte do predtým vytvoreného projektu. Ak ste ho ešte nevytvorili,
potom pokračujte ďalej.
3. Prejdite na odkaz "API" na ľavej lište.
4. Kliknite na tlačidlo "Generate New Token".
5. Zadajte ľubovoľný názov tokenu.
6. Nastavte čas vypršania platnosti na "No expiry".
7. Začiarknite políčko "Write (optional)" zaškrtávacie políčko.
8. Teraz kliknite na tlačidlo "Generate Token" tlačidlo.
9. Potom sa zobrazí token. Uložte ho na akékoľvek spoľahlivé miesto, najlepšie do správcu hesiel.

View File

@ -1,12 +1,11 @@
### How to get Digital Ocean API Token
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Go to the "API" link on the left bar.
4. Click on the "Generate New Token".
5. Enter any name for the token.
6. Put expiration time to "No expiry".
7. Check the "Write (optional)" checkbox.
8. Now click on the "Generate Token" button.
9. After that, the token will be shown. Store it in any reliable place, preferably a password manager.
### Як отримати токен Digital Ocean API
1. Перейдіть за цим [посилання](https://cloud.digitalocean.com/) і увійдіть у щойно створений обліковий запис.
2. Увійдіть у раніше створений проект. Якщо ви його не створили, тоді, будь ласка, продовжуйте.
3. Перейдіть за посиланням «API» на лівій панелі.
4. Натисніть «Створити новий токен».
5. Введіть будь-яку назву токену.
6. Встановіть для терміну дії значення «Без терміну дії».
7. Встановіть прапорець «Написати (необов’язково)».
8. Тепер натисніть кнопку «Створити токен».
9. Після цього буде показано токен. Зберігайте його в будь-якому надійному місці, бажано в менеджері паролів.

View File

@ -1,3 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
У наступным акне увядзіце токен, атрыманы з кансолі папярэдняй версіі прыкладання.
Enter it without the word *Bearer*.
Увядзіце яго без слова *Bearer*.

View File

@ -1,3 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
V dalším okně zadejte token získaný z konzoly předchozí verze aplikace.
Enter it without the word *Bearer*.
Zadejte ji bez slova *Bearer*.

View File

@ -1,3 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
Geben Sie im nächsten Fenster das Token ein, das Sie von der Konsole der vorherigen Version der Anwendung erhalten haben.
Enter it without the word *Bearer*.
Geben Sie es ohne das Wort *Bearer* ein.

View File

@ -1,3 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
W kolejnym oknie wprowadź token uzyskany z konsoli poprzedniej wersji aplikacji.
Enter it without the word *Bearer*.
Należy wpisać bez słowa *Bearer*.

View File

@ -1,3 +1,3 @@
In the next window, enter the token obtained from the console of the previous version of the application.
V ďalšom okne zadajte token získaný z konzoly predchádzajúcej verzie aplikácie.
Enter it without the word *Bearer*.
Musíte vstúpiť bez slova *Bearer*.

View File

@ -1,10 +1,10 @@
Login as root user to your server and look at the contents of the file `/etc/nixos/userdata/tokens.json`
Увайдзіце на ваш сервер як root карыстальнік і праглядзіце змесціва файла `/etc/nixos/userdata/tokens.json`
```sh
cat /etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Гэты файл будзе мець падобную канструкцыю:
```json
{
@ -16,4 +16,4 @@ This file will have a similar construction:
}
```
Copy the token from the file and paste it in the next window.
Скапіруйце токен з файла і ўстаўце яго ў наступнае акно.

View File

@ -1,19 +1,19 @@
Login as root user to your server and look at the contents of the file `/etc/nixos/userdata/tokens.json`
Přihlaste se k serveru jako uživatel root a podívejte se na obsah souboru `/etc/nixos/userdata/tokens.json`
```sh
cat /etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Tento soubor bude mít podobnou konstrukci:
```json
{
"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
"token": "token_ke_zkopírování",
"name": "název_zařízení",
"date": "datum"
}
```
Copy the token from the file and paste it in the next window.
Zkopírujte token ze souboru a vložte jej do dalšího okna.

View File

@ -1,19 +1,19 @@
Login as root user to your server and look at the contents of the file `/etc/nixos/userdata/tokens.json`
Melden Sie sich als Root-Benutzer auf Ihrem Server an und sehen Sie sich den Inhalt der Datei `/etc/nixos/userdata/tokens.json` an
```sh
cat /etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Diese Datei hat einen ähnlichen Aufbau:
```json
{
"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
"token": "token_zum_Kopieren",
"name": "Gerätname",
"date": "Datum"
}
```
Copy the token from the file and paste it in the next window.
Kopieren Sie das Token aus der Datei und fügen Sie es im nächsten Fenster ein.

View File

@ -1,19 +1,19 @@
Login as root user to your server and look at the contents of the file `/etc/nixos/userdata/tokens.json`
Zaloguj się jako użytkownik root na swoim serwerze i przejrzyj zawartość pliku `/etc/nixos/userdata/tokens.json`
```sh
cat /etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
W tym pliku będzie podobny wzór:
```json
`json
{
"tokens": [
{ "tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
{ "token": "token_który_był_skopedowany",
{ "name": "device_name",
{ "data": "data"
}
```
Copy the token from the file and paste it in the next window.
Skopiuj token z pliku i wklej w kolejnym oknie.

View File

@ -1,19 +1,19 @@
Login as root user to your server and look at the contents of the file `/etc/nixos/userdata/tokens.json`
Prihláste sa ako používateľ root na server a pozrite sa na obsah súboru `/etc/nixos/userdata/tokens.json
```sh
cat /etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
V tomto súbore bude podobný dizajn:
```json
``json
{
"tokens": [
{"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
{"token": "token_which_has_been_scoped",
{"name": "device_name",
{"date": "date"
}
```
Copy the token from the file and paste it in the next window.
Skopírujte token zo súboru a vložte ho do ďalšieho okna.

View File

@ -1,17 +1,17 @@
In the Hetzner server control panel, go to the **Rescue** tab. Then, click on **Enable rescue & power cycle**.
У панэлі кіравання серверам Hetzner перайдзіце на ўкладку **Rescue**. Затым націсніце на **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
У полі *Choose a Recue OS* выберыце **linux64**, а ў *SSH Key* выберыце свой ключ, калі ён быў дададзены ў ваш уліковы запіс Hetzner.
Click **Enable rescue & power cycle** and wait for the server to reboot. The login and password will be displayed on the screen. Login to the root user using your login and password information.
Націсніце **Enable rescue & power cycle** і дачакайцеся перазагрузкі сервера. На экране адлюструюцца лагін і пароль. Увайдзіце ў сістэму root, выкарыстоўваючы свой лагін і пароль.
Mount your server file system and see the contents of the token file:
Падключыце файлавую сістэму сервера і паглядзіце змесціва файла токена:
```sh
mount /dev/sda1 /mnt
cat /mnt/etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Гэты файл будзе мець падобную канструкцыю:
```json
{
@ -23,4 +23,4 @@ This file will have a similar construction:
}
```
Copy the token from the file and paste it in the next window.
Скапіруйце токен з файла і ўстаўце яго ў наступнае акно.

View File

@ -1,26 +1,26 @@
In the Hetzner server control panel, go to the **Rescue** tab. Then, click on **Enable rescue & power cycle**.
V ovládacím panelu serveru Hetzner přejděte na kartu **Rescue**. Poté klikněte na možnost **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
V části *Choose a Recue OS* vyberte **linux64** a v části *SSH Key* vyberte svůj klíč, pokud byl přidán do vašeho účtu Hetzner.
Click **Enable rescue & power cycle** and wait for the server to reboot. The login and password will be displayed on the screen. Login to the root user using your login and password information.
Klikněte na tlačítko **Enable rescue & power cycle** a počkejte, až se server restartuje. Na obrazovce se zobrazí přihlašovací jméno a heslo. Přihlaste se k uživateli root pomocí přihlašovacích údajů a hesla.
Mount your server file system and see the contents of the token file:
Připojte souborový systém serveru a zobrazte obsah souboru token:
```sh
mount /dev/sda1 /mnt
cat /mnt/etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Tento soubor bude mít podobnou konstrukci:
```json
{
"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
"token": "token_ke_zkopírování",
"name": "název_zařízení",
"date": "datum"
}
```
Copy the token from the file and paste it in the next window.
Zkopírujte token ze souboru a vložte jej do dalšího okna.

View File

@ -1,26 +1,26 @@
In the Hetzner server control panel, go to the **Rescue** tab. Then, click on **Enable rescue & power cycle**.
Gehen Sie im Control Panel des Hetzner-Servers auf den Tab **Rescue**. Klicken Sie dann auf **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
In *Choose a Recue OS* wählen Sie **linux64** aus und in *SSH Key* wählen Sie Ihren Schlüssel aus, wen er zu ihrem Htzner-Konto hinzugefügt wurde.
Click **Enable rescue & power cycle** and wait for the server to reboot. The login and password will be displayed on the screen. Login to the root user using your login and password information.
Klicken Sie auf **Enable rescue & power cycle** und warten Sie, bis der Server neu gestartet wird. Login und Passwort werden auf dem Bildschirm angezeigt. Melden Sie sich mit Ihren Anmelde- und Kennwortinformationen beim Root-Benutzer an.
Mount your server file system and see the contents of the token file:
Mounten Sie Ihr Server-Dateisystem und sehen Sie sich den Inhalt der Token-Datei an:
```sh
mount /dev/sda1 /mnt
cat /mnt/etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
Diese Datei hat einen ähnlichen Aufbau:
```json
{
"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
"token": "token_zum_Kopieren",
"name": "Gerätname",
"date": "Datum"
}
```
Copy the token from the file and paste it in the next window.
Kopieren Sie das Token aus der Datei und fügen Sie es im nächsten Fenster ein.

View File

@ -1,26 +1,26 @@
In the Hetzner server control panel, go to the **Rescue** tab. Then, click on **Enable rescue & power cycle**.
W panelu sterowania serwera Hetzner przejdź do zakładki **Rescue**. Następnie kliknij **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
W *Choose a Recue OS* wybierz **linux64**, a w *SSH Key* swój klucz, jeśli został dodany do konta Hetznera.
Click **Enable rescue & power cycle** and wait for the server to reboot. The login and password will be displayed on the screen. Login to the root user using your login and password information.
Naciśnij **Enable rescue & power cycle** i poczekaj na ponowne uruchomienie serwera. Zostanie wyświetlone hasło logowania. Zaloguj się na użytkownika root, używając informacji o loginie i haśle.
Mount your server file system and see the contents of the token file:
Zamontuj system plików swojego serwera i spójrz na zawartość pliku token:
```sh
mount /dev/sda1 /mnt
cat /mnt/etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
W tym pliku będzie podobny wzór:
```json
`json
{
"tokens": [
{ "tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
{ "token": "token_który_był_skopedowany",
{ "name": "device_name",
{ "data": "data"
}
```
Copy the token from the file and paste it in the next window.
Skopiuj token z pliku i wklej w kolejnym oknie.

View File

@ -1,26 +1,26 @@
In the Hetzner server control panel, go to the **Rescue** tab. Then, click on **Enable rescue & power cycle**.
V ovládacom paneli servera Hetzner prejdite na kartu **Rescue**. Potom kliknite na **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
V časti *Choose a Recue OS* vyberte **linux64** a v časti *SSH Key* vyberte svoj kľúč, ak bol pridaný do vášho účtu Hetzner.
Click **Enable rescue & power cycle** and wait for the server to reboot. The login and password will be displayed on the screen. Login to the root user using your login and password information.
Stlačte tlačidlo **Enable rescue & power cycle** a počkajte, kým sa server reštartuje. Zobrazí sa prihlasovacie heslo. Prihláste sa ako používateľ root pomocou prihlasovacích údajov a hesla.
Mount your server file system and see the contents of the token file:
Pripojte súborový systém servera a pozrite si obsah súboru token:
```sh
mount /dev/sda1 /mnt
cat /mnt/etc/nixos/userdata/tokens.json
```
This file will have a similar construction:
V tomto súbore bude podobný dizajn:
```json
``json
{
"tokens": [
{"tokens": [
{
"token": "token_to_copy",
"name": "device_name",
"date": "date"
{"token": "token_which_has_been_scoped",
{"name": "device_name",
{"date": "date"
}
```
Copy the token from the file and paste it in the next window.
Skopírujte token zo súboru a vložte ho do ďalšieho okna.

View File

@ -1,6 +1,6 @@
На панелі керування сервером Hetzner перейдіть на вкладку **Rescue**. Після цього натисніть кнопку **увімкнути цикл порятунку та живлення**.
На панелі керування сервером Hetzner перейдіть на вкладку **Rescue**. Після цього натисніть кнопку **Enable rescue & power cycle**.
In *Choose a Recue OS* select **linux64**, and in *SSH Key* select your key if it has been added to your Hetzner account.
У полі *Choose a Recue OS* виберіть **linux64**, а в *SSH Key* свій ключ, якщо він був доданий у ваш обліковий запис Hetzner.
Натисніть **Enable rescue & power cycle** і зачекайте, поки сервер перезавантажить. На екрані з'явиться логін і пароль. Увійдіть до користувача root за допомогою вашої реєстраційних даних і паролів.

View File

@ -0,0 +1,6 @@
### How to point Name Servers for Cloudflare DNS
1. Visit the following [link](https://dash.cloudflare.com) and sign
into your Cloudflare account.
2. Enter DNS settings of your domain.
3. Copy your NS records and paste them into a Nameservers section of your domain registar settings.
4. For more specific instructions for each of commonly used registars, follow the Cloudflare [guide](https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/).

View File

@ -0,0 +1,6 @@
### How to point Name Servers for deSEC DNS
1. Visit the following [link](https://desec.io/domains) and sign
into your deSEC account.
2. Click on the "Setup instructions" icon on the right side of your domain card, in the "Actions" section.
3. Copy your NS records and paste them into a Nameservers section of your domain registar settings.
4. For more specific instructions follow the official deSEC guide listed on the page.

View File

@ -0,0 +1,8 @@
### How to point Name Servers for Digital Ocean DNS
1. Visit the following [link](https://cloud.digitalocean.com/) and sign
into your Digital Ocean account.
2. Enter the [Networking](https://cloud.digitalocean.com/networking/domains) tab from the menu bar on the left.
3. Make sure you are on the [Domain](https://cloud.digitalocean.com/networking/domains) section of the tab, which is the very first one.
4. Click on your domain card, the one you have selected for SelfPrivacy.
5. Copy your NS records and paste them into a Nameservers section of your domain registar settings.
6. For more specific instructions for each of commonly used registars, follow the Digital Ocean [guide](https://docs.digitalocean.com/products/networking/dns/getting-started/dns-registrars/).

View File

@ -1,23 +1,21 @@
### How to get Hetzner API Token
1. Visit the following [link](https://console.hetzner.cloud/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Hover side panel with mouse cursor. Panel should expand and show us
a menu. We're interested in the last one — **Security** (icon of a
key).
4. Next, in the upper part of an interface, we can see approximately
the following: **SSH Keys, API Tokens, Certificates, Members.** You
need **API Tokens**. Click on it.
5. In the right part of the interface, there should be **Generate API
token** button. If you're using mobile version og a webpage, in the
lower right corner you'll see **red cross**. Push that button.
6. In the **Description** field, give our token a name (this can be any
name that you like. It doesn't influence the essence.
7. Under the **Description** field we can see a possibility to choose
**permissions**. Pick **Read & Write**.
8. Click **Generate API Token.**
9. After that, our key will be shown. Store it in the reliable place,
or in the password manager, which is better.
### Як атрымаць Hetzner API Token
1. Перайдзіце па наступнай [спасылцы](https://console.hetzner.cloud/) і падпішыцеся
у толькі што створаны ўліковы запіс.
2. Увайдзіце ў раней створаны праект. Калі вы яго не стварылі,
тады, калі ласка, працягвайце.
3. Навядзіце курсор мышы на бакавую панэль. Панэль павінна разгарнуцца і паказаць нас
меню. Нас цікавіць апошні — **Security** (значок а ключ).
4. Далей у верхняй частцы інтэрфейсу мы бачым прыблізна
наступнае: **SSH Keys, API Tokens, Certificates, Members.** Вы
патрэбныя **API Tokens**. Націсніце на яго.
5. У правай частцы інтэрфейсу павінна быць **Generate API token** button. Калі вы карыстаецеся мабільнай версіяй вэб-старонкі, у
у правым ніжнім куце вы ўбачыце **чырвоны плюс**. Націсніце гэтую кнопку.
6. У полі **Description** дайце нашаму токену імя (гэта можа быць любое
імя, якое вам падабаецца. На сутнасць гэта не ўплывае.
7. Пад полем **permissions** мы бачым магчымасць выбару
**дазволы**. Выберыце **Read & Write**.
8. Націсніце **Generate API Token.**
9. Пасля гэтага будзе паказаны наш ключ. Захоўвайце яго ў надзейным месцы,
або ў менеджэры пароляў, што лепш.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Наладжванне маркера Hetzner](resource:assets/images/gifs/Hetzner.gif)

View File

@ -1,23 +1,23 @@
### How to get Hetzner API Token
1. Visit the following [link](https://console.hetzner.cloud/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Hover side panel with mouse cursor. Panel should expand and show us
a menu. We're interested in the last one — **Security** (icon of a
key).
4. Next, in the upper part of an interface, we can see approximately
the following: **SSH Keys, API Tokens, Certificates, Members.** You
need **API Tokens**. Click on it.
5. In the right part of the interface, there should be **Generate API
token** button. If you're using mobile version og a webpage, in the
lower right corner you'll see **red cross**. Push that button.
6. In the **Description** field, give our token a name (this can be any
name that you like. It doesn't influence the essence.
7. Under the **Description** field we can see a possibility to choose
**permissions**. Pick **Read & Write**.
8. Click **Generate API Token.**
9. After that, our key will be shown. Store it in the reliable place,
or in the password manager, which is better.
### Jak získat Hetzner API Token
1. Navštivte následující [link](https://console.hetzner.cloud/) a podepište se.
k nově vytvořenému účtu.
2. Vstupte do dříve vytvořeného projektu. Pokud jste žádný nevytvořili,
pak prosím pokračujte.
3. Kurzorem myši najeďte na boční panel. Panel by se měl rozbalit a zobrazit nám
nabídku. Nás zajímá poslední z nich - **Security** (ikona tzv.
klávesy).
4. Dále v horní části rozhraní vidíme přibližně následující položky
následující: ***SSH Keys, API Tokens, Certificates, Members**.
potřebujete **API Tokens**. Klepněte na něj.
5. V pravé části rozhraní by se mělo nacházet **Generate API
token** tlačítko. Pokud používáte mobilní verzi og webové stránky, v části
pravém dolním rohu uvidíte **červený křížek**. Stiskněte toto tlačítko.
6. V poli **Description** pojmenujte náš token (může to být libovolný název).
název, který se vám líbí. Na podstatu to nemá vliv.
7. Pod polem **Description** vidíme možnost zvolit si.
**Permissions**. Vyberte možnost **Read && Write**.
8. Klikněte na tlačítko **Generate API Token**.
9. Poté se zobrazí náš klíč. Uložte jej na spolehlivé místo,
nebo ve správci hesel, což je lepší.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Nastavení tokenu Hetzner](resource:assets/images/gifs/Hetzner.gif)

View File

@ -1,23 +1,23 @@
### How to get Hetzner API Token
1. Visit the following [link](https://console.hetzner.cloud/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Hover side panel with mouse cursor. Panel should expand and show us
a menu. We're interested in the last one — **Security** (icon of a
key).
4. Next, in the upper part of an interface, we can see approximately
the following: **SSH Keys, API Tokens, Certificates, Members.** You
need **API Tokens**. Click on it.
5. In the right part of the interface, there should be **Generate API
token** button. If you're using mobile version og a webpage, in the
lower right corner you'll see **red cross**. Push that button.
6. In the **Description** field, give our token a name (this can be any
name that you like. It doesn't influence the essence.
7. Under the **Description** field we can see a possibility to choose
**permissions**. Pick **Read & Write**.
8. Click **Generate API Token.**
9. After that, our key will be shown. Store it in the reliable place,
or in the password manager, which is better.
### So erhalten Sie das Hetzner-API-Token
1. Besuchen Sie den folgenden [link](https://console.hetzner.cloud/) und melden Sie sich
in das neu erstellte Konto an.
2. Gehen Sie in ein zuvor erstelltes Projekt. Wenn Sie noch keine erstellt haben,
dann bitte fortfahren.
3. Bewegen Sie den Mauszeiger über das Seitenpanel. Panel sollte sich erweitern und uns
Ein Menü zeigen. Uns interessiert letzteres — **Security** (Symbol eines
Schlüssels).
4. Als nächstes können wir im oberen Teil der Oberfläache ungefähr sehen
Folgendes: **SSH Keys, API Tokens, Certificates, Members.** Sie
benötigen **API Tokens**. Klicken Sie es an.
5. Im rechten Teil der Benutzeroberfläche sollte **Generate API
Token** stehen. Wenn Sie die mobile Version der Webseite verwenden, in der
In der unteren rechten Ecke sehen Sie **red cross**. Drücken Sie diesen Knopf.
6. Geben Sie im Feld **Description** unserem Token einen Namen (dies kann ein beliebiger Name
sein). Es beeinflusst nicht die Essenz.
7. Unter dem Feld **Description** sehen wir eine Auswahlmöglichkeit
**permissions**. Wählen Sie **Read & Write**.
8. Klicken Sie auf **Generate API Token.**
9. Danach wird unser Schlüssel angezeigt. Bewahren Sie es an einem zuverlässigen Ort auf,
oder im Passwortmanager, was besser ist.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Hetzner token Einrichtung](resource:assets/images/gifs/Hetzner.gif)

View File

@ -1,23 +1,23 @@
### How to get Hetzner API Token
1. Visit the following [link](https://console.hetzner.cloud/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Hover side panel with mouse cursor. Panel should expand and show us
a menu. We're interested in the last one — **Security** (icon of a
key).
4. Next, in the upper part of an interface, we can see approximately
the following: **SSH Keys, API Tokens, Certificates, Members.** You
need **API Tokens**. Click on it.
5. In the right part of the interface, there should be **Generate API
token** button. If you're using mobile version og a webpage, in the
lower right corner you'll see **red cross**. Push that button.
6. In the **Description** field, give our token a name (this can be any
name that you like. It doesn't influence the essence.
7. Under the **Description** field we can see a possibility to choose
### Jak uzyskać Hetzner API Token
1. Odwiedź następujący [link](https://console.hetzner.cloud/) i zaloguj się
na nowo utworzone konto.
2. Wejdź do wcześniej utworzonego projektu. Jeśli jeszcze go nie stworzyłeś,
to proszę przejść dalej.
3. Najedź kursorem myszy na panel boczny. Panel powinien się rozwinąć i pokazać nam
menu. Nas interesuje ostatnie z nich - **Security** (ikona klucza).
.
4. Następnie w górnej części interfejsu możemy zobaczyć ok.
następujące elementy: ***SSH Keys, API Tokens, Certificates, Members.**
Klikamy na nie.
5. W prawej części interfejsu powinien znajdować się przycisk **Generate API
token**. Jeśli korzystasz z mobilnej wersji strony, w prawym dolnym rogu pojawi się
dolnym prawym rogu pojawi się **red cross**. Wciśnij ten przycisk.
6. W polu **Description** nadaj naszemu tokenowi nazwę (może to być dowolna nazwa).
nazwa, która Ci się podoba. Nie ma ona wpływu na istotę.
7. Pod polem **Description** widzimy możliwość wyboru.
**permissions**. Pick **Read & Write**.
8. Click **Generate API Token.**
9. After that, our key will be shown. Store it in the reliable place,
or in the password manager, which is better.
8. Klikamy **Generate API Token**.
9. Po tej czynności pojawi się nasz klucz. Przechowuj go w wiarygodnym miejscu,
lub w menedżerze haseł, co jest lepsze.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Ustawienie tokena Hetznera](resource:assets/images/gifs/Hetzner.gif)

View File

@ -1,9 +1,12 @@
### Как получить Hetzner API Token
1. Переходим по ссылке https://hetzner.com
2. Заходим в созданный нами проект. Если такового - нет, значит создаём.
3. Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — Security (с иконкой ключика).
4. Далее, в верхней части интерфейса видим примерно такой список: SSH Keys, API Tokens, Certificates, Members. Нам нужен API Tokens. Переходим по нему.
5. В правой части интерфейса, нас будет ожидать кнопка Generate API token. Если же Вы используете мобильную версию сайта, в нижнем правом углу Вы увидите красный плюсик. Нажимаем на эту кнопку.
6. В поле Description, даём нашему токену название (это может быть любое название, которые Вам нравиться. Сути оно не меняет.
### Как получить токен API от Hetzner
1. Посетите следующую [ссылку](https://console.hetzner.cloud/) и войдите в свой новый аккаунт.
2. Войдите в ранее созданный проект. Если вы еще не создали его, пожалуйста, сделайте это.
3. Наведите курсор мыши на боковую панель. Панель должна расшириться и показать меню. Нас интересует последний пункт — **Security** (иконка ключа).
4. Далее, в верхней части интерфейса, видим примерно следующее: **SSH Keys, API Tokens, Certificates, Members.** Нужно нажать **API Tokens**.
5. В правой части интерфейса должна быть кнопка **Generate API token**. Если вы используете мобильную версию веб-страницы, в нижнем правом углу вы увидите **красный плюс**. Нажмите на эту кнопку.
6. В поле **Description** дайте вашему токену имя (это может быть любое имя, которое вам нравится).
7. Под полем **Description** мы видим возможность выбрать **permissions**. Выберите **Read & Write**.
8. Нажмите **Generate API Token**.
9. После этого вам будет показан ключ. Храните его в надежном месте, или в менеджере паролей, что еще лучше.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Получение токена Hetzner](resource:assets/images/gifs/Hetzner.gif)

View File

@ -1,23 +1,23 @@
### How to get Hetzner API Token
1. Visit the following [link](https://console.hetzner.cloud/) and sign
into newly created account.
2. Enter into previously created project. If you haven't created one,
then please proceed.
3. Hover side panel with mouse cursor. Panel should expand and show us
a menu. We're interested in the last one — **Security** (icon of a
key).
4. Next, in the upper part of an interface, we can see approximately
the following: **SSH Keys, API Tokens, Certificates, Members.** You
need **API Tokens**. Click on it.
5. In the right part of the interface, there should be **Generate API
token** button. If you're using mobile version og a webpage, in the
lower right corner you'll see **red cross**. Push that button.
6. In the **Description** field, give our token a name (this can be any
name that you like. It doesn't influence the essence.
7. Under the **Description** field we can see a possibility to choose
**permissions**. Pick **Read & Write**.
8. Click **Generate API Token.**
9. After that, our key will be shown. Store it in the reliable place,
or in the password manager, which is better.
### Ako získať Hetzner API Token
1. Navštívte nasledujúci [link](https://console.hetzner.cloud/) a prihláste sa
do novo vytvoreného účtu.
2. Vstúpte do predtým vytvoreného projektu. Ak ste ho ešte nevytvorili,
potom pokračujte ďalej.
3. Kurzorom myši prejdite na bočný panel. Panel by sa mal rozbaliť a zobraziť nám
ponuku. Zaujíma nás posledné z nich - **Security** (ikona
klávesu).
4. Ďalej v hornej časti rozhrania vidíme približne
nasledovné: **SSH Keys, API Tokens, Certificates, Members.**.
potrebujete **API Tokens**. Kliknite naň.
5. V pravej časti rozhrania by sa malo nachádzať **Generate API
token** tlačidlo. Ak používate mobilnú verziu og webovej stránky, v časti
pravom dolnom rohu uvidíte **red cross**. Stlačte toto tlačidlo.
6. V poli **Description** uveďte názov nášho tokenu (môže to byť akýkoľvek názov
, ktorý sa vám páči. Nemá to vplyv na podstatu.
7. Pod poľom **Description** vidíme možnosť výberu
**permissions**. Vyberte možnosť **Read & Write**.
8. Kliknite na tlačidlo **Generate API Token.**.
9. Potom sa zobrazí náš kľúč. Uložte ho na spoľahlivé miesto,
alebo v správcovi hesiel, čo je lepšie.
![Hetzner token setup](resource:assets/images/gifs/Hetzner.gif)
![Nastavenie tokenu Hetzner](resource:assets/images/gifs/Hetzner.gif)

606
assets/translations/ar.json Normal file
View File

@ -0,0 +1,606 @@
{
"users": {
"login": "تسجيل الدخول",
"could_not_fetch_description": "من فضلك، قم بتفحُّص اتصال الإنترنت وحاول مرة أخرى",
"no_ssh_notice": "تم إنشاء الإيميل وحسابات SSH فقط لأجل هذا المستخدم. سيتوفر قريباً الدخول الموحد لجميع الخدمات.",
"new_user_info_note": "سيمنح المستخدم الجديد سلاسة للوصول لكافة الخدمات بشكل تلقائي",
"username_rule": "يجب أن يحتوي إسم المستخدم على حروف لاتينية صغيرة، كذلك عليه أن يحتوي على أرقام وشرطات على السطر. لا تبدأ اسم المستخدم بأرقام",
"email_login": "إيميل تسجيل ادخول",
"details_title": "تفاصيل المستخدم",
"add_new_user": "قم بإضافة أول مستخدم",
"new_user": "مستخدم جديد",
"delete_user": "قم بحذف المستخدم",
"nobody_here": "لا أحد هنا",
"delete_confirm_question": "هل أنت متأكد؟",
"reset_password": "تغيير كلمة المرور",
"account": "الحساب",
"could_not_fetch_users": "لم نتمكن من إحضار قائمة المستخدمين",
"refresh_users": "قم بتحديث قائمة المستخدمين",
"could_not_create_user": "تعذر إنشاء المستخدم",
"could_not_delete_user": "تعذر حذف المستخدم",
"could_not_add_ssh_key": "تعذّر إضافة مفتاح SSH",
"user_already_exists": "يوجد مستخدم قد استخدم هذا الإسم بالفعل"
},
"initializing": {
"select_provider_price_text_hetzner": "يتطلب ذلك ٨ يورو شهريًا لخادم يعد صغير نسبيًا ومساحة تخزين القرص تقدّر بـ٥٠ جيجابايت",
"select_provider_notice": "نعني بكلمة \"صغير نسبيًا\" جهازا يحتوي على ٢ من CPU (وحدة المعالجة المركزية)، و٢جيجابايت من RAM (ذاكرة الوصول العشوائي).",
"connect_to_server_provider_text": "باستخدام رمز API الخاص، ستقوم بتمكين SelfPrivacy من استئجار جهاز وإعداد الخادم الخاص بك عليها",
"choose_server_type_payment_storage": "{} لمساحة تخزين إضافية",
"choose_server_type_payment_ip": "{} لعنوان IPv4 العام",
"use_this_domain": "هل تريد استخدام هذا النطاق؟",
"select_provider": "اختر أي مزود من القائمة التالية. كل منهم يدعم SelfPrivacy",
"connect_to_server_provider": "قم بتسجيل الدخول الآن ",
"multiple_domains_found": "لقد وجدت نطاقات عديدة",
"steps": {
"master_account": "الحساب الرئيسي",
"server_reboot": "إعادة تشغيل الخادم",
"hosting": "استضافة",
"server_type": "نوع الخادم",
"dns_provider": "مزوّد DNS",
"backups_provider": "النسخ الاحتياطية",
"domain": "النطاق",
"server": "الخادم",
"dns_setup": "إعداد DNS",
"nixos_installation": "تثبيت NixOS",
"final_checks": "التحقق بشكل نهائي"
},
"select_provider_price_text_do": "يكلف هذا ١٧ دولارا شهريًا لخادم يعد صغير نسبيًا ومساحة تخزين القرص تبلغ ٥٠ جيجابايت",
"select_provider_email_notice": "لن يكون الإيميل الخاص بالاستضافة متاحاً للعملاء الجدد. لكن سيتم فتحه بمجرد إتمام دفعتك الأولى.",
"choose_location_type_text": "تمنح مختلف المواقع الجغرافية خوادم ذات خصائص مختلفة، وأسعار وسرعة اتصال مختلفة.",
"multiple_domains_found_text": "يتيح الرمز الخاص الذي اعطيتنا إياه الوصول للنطاقات التالية. نرجو منك اختيار النطاق الذي تريد استخدامه.و من أجل سلامة نطاقاتك الأخرى، يجب عليك تقييد الوصول لهذا الرمز الخاص للنطاق الذي تريد استخدامه في SelfPrivacy فقط.",
"server_rebooted": "تم إعادة تشغيل الخادم، انتظر حتى آخر عملية تحقق…",
"server_created": "تم إنشاء الخادم، يتم الآن إجراء عدة تحققات لـDNS وتمهيد الخادم…",
"enter_username_and_password": "قم بإدخال اسم المستخدم وكلمة مرور قوية",
"connect_to_server": "لنبدأ بالخادم.",
"select_provider_countries_title": "الدول المتاح فيها",
"select_provider_countries_text_hetzner": "ألمانيا، فنلندا، الولايات المتحدة الأمريكية",
"select_provider_countries_text_do": "الولايات المتحدة الأمريكية، هولندا، سنغافورة، المملكة المتحدة، ألمانيا، كندا، الهند، أستراليا",
"select_provider_price_title": "متوسط السعر‬",
"select_provider_payment_title": "طريقة الدفع",
"select_provider_payment_text_hetzner": "بطاقات الائتمان، سويفت(SWIFT)، سيبا(SEPA)، باي بال(PayPal)",
"select_provider_payment_text_do": "بطاقات الائتمان، جوجل باي (Google Pay)، باي بال (PayPal)",
"select_provider_site_button": "قم بزيارة الموقع",
"how": "كيف يمكنني الحصول على رمز API المميز",
"provider_bad_key_error": "مزوّد مفتاح API غير صالح",
"could_not_connect": "لم نتمكن من الارتباط بالمزود.",
"choose_location_type": "من أين تريد طلب الخادم الخاص بك؟",
"locations_not_found": "خطأ!",
"locations_not_found_text": "لا توجد خوادم متاحة للإيجار",
"back_to_locations": "اختر شيئاً آخر",
"no_locations_found": "لم يتم العثور على مواقع متاحة، تأكد من أن حسابك يمكن الوصول إليه",
"choose_server_type": "ما نوع الخادم الذي تريده؟",
"choose_server_type_text": "إن إمكانيات الموارد المختلفة تدعم مختلف الخدمات، لكن لا عليك القلق بشأن ذلك يمكنك زيادة سعة الخادم الخاص بك وقت ما تشاء",
"choose_server_type_notice": "أهم الأشياء اللتي يجب عليك الأخذ بها بعين الاعتبار هي وحدة المعالجة المركزية(CPU) وذاكرة الوصول العشوائي(RAM)، وسيتم تخزين بيانات خدماتك على وحدة تخزين مثبتة ويمكن توسيعها بسهولة ودفع مقابلها بشكل منفصل.",
"choose_server_type_ram": "{} جيجابايت من الرام RAM",
"choose_server_type_storage": "{} جيجا بايت من مساحة تخزين النظام",
"choose_server_type_payment_per_month": "{} كل شهر",
"choose_server_type_payment_server": "{} لكل خادم",
"dns_provider_bad_key_error": "مفتاح API غير صالح",
"backblaze_bad_key_error": "معلومات تخزين Backblaze غير صالحة",
"connect_to_dns": "قم بالارتباط بمزود DNS",
"select_dns": "دعنا الآن نختار مزود DNS",
"use_this_domain_text": "الرمز الخاص اللذي اعطيتنا إياه سيمنحنا إمكانية الوصول للنطاقات التالية",
"no_connected_domains": "لا توجد نطاقات تم الارتباط بها في الوقت الحالي",
"loading_domain_list": "جاري تحميل قائمة النطاقات",
"save_domain": "احفظ النطاق",
"final": "الخطوة الأخيرة",
"create_server": "قم بإنشاء الخادم",
"what": "ماذا يعني هذا؟",
"server_started": "تم تشغيل الخادم، سيتم التحقق منه وإعادة تشغيله الآن…",
"domain_critical_error": "لم نتمكن من الوصول لهذا النطاق! انقر لمعرفة المزيد…",
"until_the_next_check": "حتى التحقق التالي: ",
"check": "تحقق",
"one_more_restart": "ستتم إعادة التشغيل مرة أخرى حتى يتم تطبيق شهادة الأمان الخاصة بك.",
"create_master_account": "إنشاء الحساب الرئيسي",
"checks": "جميع إجراءات التحقق قد اكتملت.\n{} من أصل {}",
"select_provider_price_free": "مجاني"
},
"cloud": {
"login_info": "تسجيل الدخول هو المشرف، أما كلمة المرور فهي نفس المستخدم الرئيسي الخاص بك. أنشئ حسابات جديدة على واجهة Nextcloud."
},
"git": {
"login_info": "سيتوجب عليك إنشاء حساب على صفحة الويب، وأول مستخدم سيصبح مشرفاً."
},
"recovering": {
"method_device_input_description": "أدخل رمز الموافقة الخاص",
"fallback_select_root_ssh": "صلاحية وصول لجذر SSH للخادم.",
"fallback_select_provider_console": "صلاحية وصول لوحدة تحكم الخادم للمزود خاصتي.",
"generic_error": "فشلت العملية،من فضلك حاول مرة أخرى.",
"domain_recover_error": "لم يتم العثور على خادم هذا النطاق",
"method_device_description": "افتح التطبيق على جهاز آخر، ثم اذهب إلى صفحة الأجهزة، اضغط على \"إضافة جهاز\" حتى تستلم رمزك الخاص.",
"confirm_server_description": "لقد عثرنا على الخادم الخاص بك! قم بتأكيد كونه الصحيح بينهم:",
"fallback_select_description": "ما اللذي تمتلكه بالضبط؟ اختر أول خيار متاح:",
"recovery_main_header": "ارتبط بخادم موجود",
"domain_recovery_description": "أدخل نطاق الخادم الّذي تريد الوصول إليه:",
"domain_recover_placeholder": "النطاق الخاص بك",
"method_select_description": "اختر طريقة الاسترجاع:",
"method_select_other_device": "أملك صلاحية الوصول على جهاز آخر",
"method_select_recovery_key": "لدي مفتاح استرجاع",
"method_select_nothing": "ليس لدي أي من ذلك",
"method_device_button": "لقد تلقيت رمزي الخاص",
"method_device_input_placeholder": "الرمز الخاص",
"method_recovery_input_description": "أدخل مفتاح الاسترجاع",
"fallback_select_token_copy": "نسخة من رمز الموافقة من إصدار آخر من التطبيق.",
"authorization_failed": "تعذر تسجيل الدخول بهذا المفتاح",
"fallback_select_provider_console_hint": "على سبيل المثال: هيتزنر/Hetzner.",
"provider_connected": "ارتبط بـ{}",
"provider_connected_description": "أدخل رمزك الخاص لتعطى صلاحية الوصول إلى {}:",
"provider_connected_placeholder": "{} الرمز الخاص",
"confirm_server": "قم بتأكيد الخادم",
"confirm_server_accept": "نعم! إنه ذلك",
"confirm_server_decline": "اختر خادماً مختلفاً",
"choose_server": "اختر الخادم الخاص بك",
"choose_server_description": "لم نتمكن من معرفة الخادم اللذي تحاول الارتباط به.",
"no_servers": "لا توجد خوادم متاحة في حسابك.",
"domain_not_available_on_token": "إن النطاق المختار ليس متاحاً على هذا الرمز الخاص.",
"modal_confirmation_title": "هل هذا الخادم الخاص بك حقاً؟",
"modal_confirmation_description": "إن قمت بالارتباط بالخادم الخطأ فقد تفقد بياناتك جميعها.",
"modal_confirmation_dns_valid": "نظام DNS العكسي جيد",
"modal_confirmation_dns_invalid": "يشير نظام DNS العكسي إلى نطاق آخر",
"modal_confirmation_ip_valid": "عنوان IP مماثل للذي في سجل DNS",
"modal_confirmation_ip_invalid": "عنوان IP ليس مماثلاً للذي في سجل DNS"
},
"recovery_key": {
"key_receive_button": "تلقي المفتاح",
"key_connection_error": "لم نتمكن من الاتصال بالخادم.",
"key_main_description": "هذا مطلوب حتى تمنحك SelfPrivacy الموافقة في حال كانت كل أجهزتك الأخرى المخوّلة غير متاحة.",
"key_receiving_description": "قم بتدوين هذا المفتاح وقم بوضعه في مكان آمن. هذا المفتاح يستخدم لاستعادة الوصول الكامل إلى الخادم الخاص بك:",
"key_main_header": "مفتاح الاسترجاع",
"key_synchronizing": "جاري المزامنة…",
"key_amount_toggle": "الحد من عدد الاستخدامات",
"key_amount_field_title": "الحد الأعلى للاستخدامات",
"key_duedate_toggle": "حد الوقت",
"key_duedate_field_title": "تاريخ انتهاء الصلاحية",
"key_valid": "المفتاح صالح",
"key_invalid": "لم يعد مفتاحك صالحاً",
"key_valid_until": "صالح حتى {}",
"key_valid_for": "صالح حتى {} استخدامات",
"key_creation_date": "تم إنشاءه في {}",
"key_receiving_done": "تم!",
"key_replace_button": "قم بتوليد مفتاح جديد",
"key_receiving_info": "لن يتم إظهار المفتاح مرة أخرى، لكن ستتمكن من استبداله بواحد آخر.",
"generation_error": "لم نتمكن من توليد مفتاح الاسترجاع. {}"
},
"modals": {
"server_deletion_error": "لم نتمكن من حذف الخادم النشط.",
"already_exists": "هذا الخادم موجود بالفعل.",
"purge_all_keys_confirm": "نعم، قم بمحو كل رموزي الخاصة",
"volume_creation_error": "لم نتمكن من إنشاء وحدة تخزين.",
"are_you_sure": "هل أنت متأكد؟",
"dns_removal_error": "لم نتمكن من حذف سجلات DNS.",
"server_validators_error": "لم نتمكن من جلب خوادم متاحة.",
"unexpected_error": "حدث خطأ غير متوقع خلال وضع جانب المزوّد.",
"destroy_server": "هل تريد إنهاء هذا الخادم وإنشاء واحد جديد؟",
"try_again": "هل تريد المحاولة مرة أخرى؟",
"purge_all_keys": "هل تريد محو جميع مفاتيح الّتي مُنحت الموافقة؟",
"delete_server_volume": "هل تريد حذف الخادم ووحدة التخزين؟",
"reboot": "قم بإعادة التشغيل",
"yes": "نعم",
"no": "لا"
},
"devices": {
"add_new_device_screen": {
"description": "أدخل المفتاح على الجهاز الّذي تريد منحه الصلاحية:",
"header": "منح الصلاحية لجهاز جديد",
"please_wait": "انتظر من فضلك",
"tip": "المفتاح صالح لمدة عشر دقائق.",
"expired": "المفتاح منتهي الصلاحية.",
"get_new_key": "احصل على مفتاح جديد"
},
"main_screen": {
"tip": "اضغط على الجهاز لسحب صلاحية الوصول.",
"description": "هذه الأجهزة لها الصلاحية الكاملة للوصول للخادم، وذلك من خلال تطبيق SelfPrivacy.",
"header": "الأجهزة",
"this_device": "هذا الجهاز",
"other_devices": "أجهزة أخرى",
"authorize_new_device": "أعطي الصلاحية لجهاز جديد",
"access_granted_on": "قد تم منح الوصول على {}"
},
"revoke_device_alert": {
"description": "إن الجهاز {} لن تصبح لديه صلاحية الوصول مجدداً للخادم.",
"no": "إلغاء",
"header": "هل تريد سحب صلاحية الوصول؟",
"yes": "اسحب الصلاحية"
}
},
"validations": {
"length_not_equal": "الطول []، يجب أن يكون {}",
"required": "مطلوب",
"already_exist": "موجود بالفعل",
"invalid_format": "الصياغة أو التركيبة ليست جيدة",
"invalid_format_password": "يجب ألّا تحتوي كلمة المرور على مسافات",
"invalid_format_ssh": "عليك اتباع صيغة مفتاح SSH",
"root_name": "لا يجب أن يكون \"جذر\" (root)",
"length_longer": "الطول []، يجب أن يكون أقصر من أو يساوي {}"
},
"developer_settings": {
"subtitle": "هذه الإعدادات مخصصة لتصحيح الأخطاء فقط، فلا تقم بتغييرها إلا إذا كنت تعرف ما تفعله.",
"reset_onboarding_description": "قم بتحويل اتصال الجهاز مرة أخرى حتى تظهر الشاشة مجدداً",
"ignore_tls_description": "لن يقوم التطبيق بالتحقق من شهادات TLS خلال الاتصال بالخادم.",
"title": "إعدادات المطور",
"server_setup": "إعدادات الخادم",
"use_staging_acme": "استخدم خادم ACME الإنتقالي",
"use_staging_acme_description": "قم بتطبيقه حينما يتم إعداد خادم جديد.",
"ignore_tls": "لا تقم بالتحقق من شهادات TLS",
"allow_ssh_key_at_setup": "امنح الموافقة بتعيين بجذر مفتاح SSH أثناء الإعداد",
"allow_ssh_key_at_setup_description": "سيظهر زر لإضافة مفتاح على شاشة التأكيد.",
"add_root_ssh_key": "أضف جذر مفتاح SSH",
"root_ssh_key_added": "سيتم تطبيق مجموعة جذر مفاتيح SSH",
"routing": "يتم توجيه التطبيق",
"reset_onboarding": "إعادة تحويل اتصال الجهاز",
"cubit_statuses": "جاري تحميل حالة واجهة النظام"
},
"jobs": {
"upgrade_failed": "فشلت ترقية الخادم",
"job_postponed": "تمت إضافة المهمة، ولكن لن تتمكن من تشغيلها إلا بعدما تنتهي المهام الحالية",
"start": "إبدأ",
"title": "قائمة المهام",
"create_user": "أنشئ مستخدم",
"delete_user": "قم بحذف المستخدم",
"service_turn_off": "إطفاء",
"service_turn_on": "تشغيل",
"empty": "لا توجد مهام",
"job_added": "تمت إضافة المهمة",
"job_removed": "تمت إزالة المهمة",
"run_jobs": "إدارة المهام",
"reboot_success": "يتم إعادة تشغيل الخادم",
"reboot_failed": "لم نتمكن من إعادة تشغيل الخادم. قم بالتحقق من سجلات التطبيق.",
"upgrade_success": "ترقية الخادم قد بدأت",
"upgrade_server": "ترقية الخادم",
"reboot_server": "إعادةُ تشغيل الخادم",
"create_ssh_key": "أنشئ مفتاح SSH من أجل {}",
"delete_ssh_key": "قم بحذف مفتاح SSH من أجل {}",
"server_jobs": "المهام موجودة في الخادم",
"reset_user_password": "إعادة ضبط كلمة مرور المستخدم",
"generic_error": "لم نتمكن من الارتباط بالخادم!",
"rebuild_system": "إصلاح وتجديد النظام",
"start_server_upgrade": "ابدأ بترقية الخادم",
"change_auto_upgrade_settings": "غيّر إعدادات الترقية التلقائية",
"change_server_timezone": "قم بتغيير النطاق الزمني للخادم",
"config_pull_failed": "تعذر تحديث إعدادات الخادم. بدأ تحديث البرنامج على أي حال."
},
"basis": {
"app_name": "SelfPrivacy",
"providers": "مزودو الخدمات",
"providers_title": "مركز بياناتك",
"select": "اختر",
"services": "الخدمات",
"connect": "اتصال",
"users": "المستخدمون",
"more": "المزيد",
"next": "التالي",
"password": "رمز المرور",
"confirmation": "التأكيد",
"cancel": "إلغاء",
"delete": "حذف",
"create": "قم بإضافة جديد",
"domain": "نطاق",
"saving": "يتم الحفظ …",
"username": "اسم المستخدم",
"loading": "يتم التحميل …",
"settings": "الإعدادت",
"services_title": "خدماتك الشخصية الخاصة المستقلة.",
"reset": "إعادة ضبط",
"details": "التفاصيل",
"no_data": "لا توجد بيانات",
"wait": "انتظر",
"apply": "تطبيق",
"done": "تم",
"continue": "متابعة",
"connect_to_existing": "لقد حصلت على خادم SelfPrivacy!",
"got_it": "فهمت",
"please_connect": "لطفاً، قم بوصل الخادم الخاص بك والمجال ومزوّد DNS للبدء!",
"network_error": "خطأ في الشبكة",
"close": "إغلاق",
"later": "انتقل إلى الإعداد لاحقاً",
"remove": "إزالة",
"alert": "تنبيه",
"copied_to_clipboard": "تم النسخ إلى الحافظة!"
},
"more_page": {
"configuration_wizard": "معالج الإعداد",
"onboarding": "جاري الإعداد",
"create_ssh_key": "مفاتيح SSH للمستخدم المميز"
},
"console_page": {
"title": "لوحة التحكم",
"waiting": "جاري الإنتظار للتهيئة…",
"copy": "انسخ"
},
"about_application_page": {
"versions": "الإصدارات",
"application_version_text": "إصدار التطبيق",
"title": "حول هذا التطبيق & احصل على الدعم",
"api_version_text": "إصدار خادم API",
"open_source_licenses": "تراخيص مفتوحة المصدر",
"links": "الروابط",
"website": "صفحتنا على الويب",
"documentation": "المستندات",
"telegram_channel": "قناة التيليجرام",
"telegram_support_chat": "محادثة الدعم على التيليجرام",
"matrix_support_chat": "محادثة الدعم من خلال ماتريكس",
"email_support": "إيميل الدعم",
"source_code": "الكود الأصلي",
"contribute": "المساهمة",
"bug_report": "أبلغ عن خطأ",
"bug_report_subtitle": "بسبب الرسائل العشوائية، سيطلب منك تأكيد الحساب بشكل يدوي. عليك التواصل معنا من خلال محادثة الدعم لتفعيل حسابك.",
"help_translate": "ساعدنا في الترجمة",
"telegram_contributors_chat": "الدردشة مع مساهمي تيليجرام",
"matrix_contributors_chat": "الدردشة مع مساهمي ماتريكس",
"privacy_policy": "سياسة الخصوصية",
"matrix_channel": "قناة ماتركس",
"get_support": "احصل على الدعم"
},
"application_settings": {
"title": "إعدادات التطبيق",
"system_dark_theme_title": "الوضع الافتراضي للنظام",
"system_dark_theme_description": "قم بتطبيق الوضع الفاتح أو الداكن حسب إعدادات النظام",
"dark_theme_title": "الوضع الداكن",
"dangerous_settings": "إعدادات خطرة",
"reset_config_title": "قم بإعادة ضبط إعدادات التطبيق",
"delete_server_title": "قم بحذف الخادم",
"delete_server_description": "سيزيل هذا الخادم الخاص بك، حيث أنه لن تتمكن من الوصول إليه بعد ذلك.",
"dark_theme_description": "قم بتبديل وضع التطبيق",
"reset_config_description": "قم بإعادة ضبط مفاتيح API والمستخدم المميز."
},
"ssh": {
"title": "مفاتيح SSH",
"create": "قم بإنشاء مفتاح SSH",
"delete": "قم بحذف مفتاح SSH",
"no_key_name": "مفتاح لم تتم تسميته",
"root_title": "هذه مفاتيح المستخدم المميز",
"delete_confirm_question": "هل أنت متأكد من رغبتك بإزالة مفتاح SSH؟",
"root_subtitle": "ملّاك هذه المفاتيح لهم الإمكانية الكاملة للوصول لهذا الخادم حيث أنه يمكنك فعل ما تشاء فيه، ما عليك سوى إضافة المفاتيح الخاصة بك للخادم.",
"input_label": "مفتاح ED25519 العام أو ECDSA أو RSA"
},
"onboarding": {
"page2_title": "SelfPrivacy ليس مرفوعاً على السحابة، بل هو على مركز بياناتك الشخصية",
"page2_server_provider_title": "مزوّد الخادم",
"page2_server_provider_text": "سيحافظ المزوّد على الخادم الخاص بك وبمركز بياناتك. وسيقوم SelfPrivacy بشكل تلقائي بالارتباط بالمزوّد وإعداد كل شيء ضروري.",
"page1_title": "الاستقلال الرقمي متاح لنا جميعاً",
"page2_dns_provider_title": "مزوّد DNS",
"page2_backup_provider_title": "مزوّد النسخ الإحتياطية",
"page1_text": "البريد، VPN، مسنجر، الشبكات الاجتماعية وأكثر من ذلك على الخادم المغلق الخاص بك وتحت تحكمك.",
"page2_text": "يعمل SelfPrivacy تحت مزودي الخدمة ممن تختارهم أنت فقط. إذا لم تمتلك حسابات مطلوبه فيه، فسنساعدك لإنشائها.",
"page2_dns_provider_text": "تحتاج إلى نطاق ليكون لك مكان على شبكة الإنترنت. تحتاج كذلك لمزوّد DNS موثوق ليتم اعتبار النطاق داخل الخادم الخاص بك. نوصي بأن تختار مزوّد DNS مدعوم حتى يتم إعداد الشبكة تلقائياً.",
"page2_backup_provider_text": "ماذا لو حدث خطب للخادم الخاص بك؟ تصوّر أن مخترقاً - أو هاكر- هاجم بياناتك وبالخطأ تسبب بحذفها أو بالحرمان من الخدمة؟ ستبقى بياناتك بأمان وذلك عن طريق مزوّد النسخ الإحتياطية الخاص بك. سيتم تشفير بياناتك حيث أنه يمكنك استعادتها من الخادم الخاص بك وقت ما تشاء."
},
"resource_chart": {
"month": "شهر",
"day": "يوم",
"hour": "الساعة",
"cpu_title": "استخدام معالج CPU",
"network_title": "استخدام الشبكة",
"in": "داخل",
"out": "خارج"
},
"server": {
"card_title": "الخادم",
"description": "جميع خدماتك تعمل هنا",
"general_information": "معلومات عامة",
"resource_usage": "استخدام الموارد",
"allow_autoupgrade_hint": "قم بتمكين تحديثات الحِزَم التلقائية على الخادم",
"server_timezone": "نطاق الخادم الزمني",
"select_timezone": "اختر النطاق الزمني",
"timezone_search_bar": "اسم النطاق الزمني أو قيمة التفاوت الزمني",
"server_id": "ID الخاص بالخادم",
"status": "الحالة",
"cpu": "وحدة المعالجة المركزية CPU",
"ram": "الذاكرة",
"disk": "القرص المحلّي (Disk Local)",
"monthly_cost": "التكلفة الشهرية",
"location": "الموقع الجغرافي",
"pricing_error": "لم نتمكن من جلب أسعار مزودي الخدمة",
"server_provider": "مزوّد الخدمة",
"dns_provider": "مزوّد الخدمة DNS",
"core_count": {
"one": "{} مركز",
"two": "{} مراكز",
"few": "{} مراكز",
"other": "{} مراكز",
"many": "{} مراكز"
},
"allow_autoupgrade": "قم بتمكين التحديث التلقائي",
"reboot_after_upgrade_hint": "قم بإعادة التشغيل من دون طلب الإذن بعد أن تطبق التغييرات على الخادم",
"reboot_after_upgrade": "قم بإعادة التشغيل بعد التحديث"
},
"domain": {
"card_title": "نطاق",
"screen_title": "النطاق وDNS",
"ok": "السجلّات جيدة",
"error": "توجد مشاكل",
"uninitialized": "لم يتم استرداد البيانات بعد",
"services_title": "الخدمات",
"refreshing": "جاري تحديث الحالة …",
"services_subtitle": "السجلات من نوع \"A\" مطلوبه لكل خادم.",
"email_subtitle": "السجلّات ضرورية لتبادل الإيميل الآمن.",
"update_list": "قم بتحديث القائمة",
"email_title": "الإيميل",
"error_subtitle": "اضغط هنا لإصلاحم، سيزيل هذا أيضاً السجل المخصص."
},
"backup": {
"card_title": "نسخة احتياطية",
"card_subtitle": "قم بإدارة النسخ الاحتياطية الخاصة بك",
"reupload_key": "مفتاح إعادة التحميل الاضطراري",
"reuploaded_key": "مفتاح إعادة التحميل",
"initialize": "التهيئة",
"refresh": "قم بتحديث الحالة",
"refetch_backups": "قم بجلب قائمة النسخ الإحتياطي مرة أخرى",
"reupload_key_subtitle": "سيتم توجيه الخادم للبدء بتخزين النسخ الاحتياطي مرة ثانية. قم باستخدامه في حالة حصول عطل ما.",
"refetching_list": "سيتم تحديث القائمة خلال بضعة دقائق",
"create_new_select_heading": "اختر ما تريده للنسخة الإحتياطية",
"start": "ابدء بالتخزين الاحتياطي",
"latest_snapshots": "أحدث اللقطات",
"latest_snapshots_subtitle": "إظهار أحدث ١٨ لقطة",
"show_more": "أظهر المزيد",
"autobackup_period_title": "مدة النسخ الإحتياطي التلقائي",
"autobackup_period_subtitle": "تم إنشاء النسخ الإحتياطية كل {period}",
"autobackup_period_never": "النسخ الإحتياطي التلقائي غير نشط",
"autobackup_period_every": "كل {period}",
"autobackup_period_disable": "قم بإيقاف النسخ الإحتياطي التلقائي",
"autobackup_set_period": "ضع مدة زمنية",
"backups_encryption_key": "مفتاح التشفير",
"backups_encryption_key_subtitle": "احفظه في مكان آمن.",
"backups_encryption_key_copy": "قم بنسخ مفتاح التشفير",
"backups_encryption_key_show": "قم بإظهار مفتاح التشفير",
"backups_encryption_key_not_found": "لم يتم العثور على مفتاح التشفير، لطفاً حاول مرة أخرى في وقت لاحق.",
"pending_jobs": "جاري الآن تشغيل وظائف النسخ الإحتياطي",
"snapshots_title": "قائمة اللقطات",
"forget_snapshot": "احذف اللقطة",
"forget_snapshot_error": "لم نتمكن من حذف هذه اللقطة",
"snapshot_modal_heading": "تفاصيل اللقطة",
"snapshot_service_title": "الخدمة",
"snapshot_creation_time_title": "وقت الإنشاء",
"snapshot_id_title": "رمز ID الخاص باللقطة",
"snapshot_modal_inplace_option_title": "قم باستبدال مكانه",
"snapshot_modal_inplace_option_description": "نحتاج لمساحة خالية صغيرة، لكن سيكون هذا أكثر مخاطرة. قم باستبدال البيانات الحالية ببيانات اللقطة خلال التنزيل.",
"restore_started": "قد بدءت عملية الاستعادة، تفحّص قائمة الوظائف حتى تعرف وضعها الحالي",
"snapshot_reason_title": "سبب الإنشاء",
"snapshot_reasons": {
"auto": "تم إنشاؤه تلقائياً",
"explicit": "قد تم إنشاؤه بناءاً على طلب خاص منك",
"unknown": "غير معروف",
"pre_restore": "تم إنشاؤه بشكل احتياطي قبل القيام بعملية استعادة خطيرة"
},
"rotation_quotas_title": "إعدادات دوران اللقطات (من نقطة البداية للنهاية)",
"set_rotation_quotas": "‏قم بتعيين أوقات جديدة للدوران",
"quota_titles": {
"daily": "كم عدد النسخ الاحتياطية اليومية التي يجب حفظها",
"last": "كم عدد النسخ الاحتياطية الحديثة التي يجب حفظها",
"weekly": "كم عدد النسخ الاحتياطية الأسبوعية التي يجب حفظها",
"yearly": "كم عدد النسخ الاحتياطية السنوية التي يجب حفظها",
"monthly": "كم عدد النسخ الاحتياطية الشهرية التي يجب حفظها"
},
"quota_subtitles": {
"last": {
"zero": "القاعدة غير نشطة",
"one": "آخر {} نسخة احتياطية سيتم الاحتفاظ بها بغض النظر لمدتها",
"two": "اخر {} نُسخ احتياطية سيتم الاحتفاظ بها بغض النظر عن مدتها",
"many": "اخر {} نُسخ احتياطية سيتم الاحتفاظ بها بغض النظر عن مدتها",
"other": "اخر {} نُسخ احتياطية سيتم الاحتفاظ بها بغض النظر عن مدتها",
"few": "اخر {} نُسخ احتياطية سيتم الاحتفاظ بها بغض النظر عن مدتها"
},
"last_infinite": "جميع النُسخ الاحتياطية سيتم الاحتفاظ بها",
"daily": {
"zero": "القاعدة غير نشطة",
"two": "اخر {} نُسخ احتياطية يومية سيتم الاحتفاظ بها",
"one": "اخر {} نسخة احتياطية ليومية سيتم الاحتفاظ بها",
"few": "اخر {} نُسخ احتياطية يومية سيتم الاحتفاظ بها",
"many": "اخر {} نُسخ احتياطية يومية سيتم الاحتفاظ بها",
"other": "اخر {} نُسخ احتياطية يومية سيتم الاحتفاظ بها"
},
"weekly": {
"zero": "القاعدة غير نشطة",
"two": "اخر {} نسخ احتياطية أسبوعية سيتم الاحتفاظ بها",
"few": "اخر {} نسخ احتياطية أسبوعية سيتم الاحتفاظ بها",
"other": "اخر {} نسخ احتياطية أسبوعية سيتم الاحتفاظ بها",
"one": "اخر {} نسخة احتياطية أسبوعية سيتم الاحتفاظ بها",
"many": "اخر {} نسخ احتياطية أسبوعية سيتم الاحتفاظ بها"
},
"monthly": {
"zero": "القاعدة غير نشطة",
"one": "اخر {} نسخة احتياطية شهرية سيتم الاحتفاظ بها",
"few": "اخر {} نسخ احتياطية شهرية سيتم الاحتفاظ بها",
"two": "اخر {} نسخ احتياطية شهرية سيتم الاحتفاظ بها",
"other": "اخر {} نسخ احتياطية شهرية سيتم الاحتفاظ بها",
"many": "اخر {} نسخ احتياطية شهرية سيتم الاحتفاظ بها"
},
"weekly_infinite": "كل النسخ الاحتياطية الأسبوعية سيتم الاحتفاظ بها",
"monthly_infinite": "كل النسخ الاحتياطية الشهرية سيتم الاحتفاظ بها",
"yearly": {
"zero": "القاعدة غير نشطة",
"one": "اخر {} نسخة احتياطية سنوية سيتم الاحتفاظ بها",
"two": "اخر {} نسخ احتياطية سنوية سيتم الاحتفاظ بها",
"few": "اخر {} نسخ احتياطية سنوية سيتم الاحتفاظ بها",
"many": "اخر {} نسخ احتياطية سنوية سيتم الاحتفاظ بها",
"other": "اخر {} نسخ احتياطية سنوية سيتم الاحتفاظ بها"
},
"yearly_infinite": "كل النسخ الاحتياطية السنوية سيتم الاحتفاظ بها",
"daily_infinite": "كل النُسخ الاحتياطية اليومية سيتم الاحتفاظ بها",
"no_effect": "ليس لهذه القاعدة أي تأثير لأنه توجد قاعدة أخرى تحتفظ بمزيد من النسخ الإحتياطية"
},
"restore": "قم بالاسترجاع من النسخة الاحتياطية",
"no_backups": "لا توجد نسخ احتياطية حتى الآن",
"create_new": "قم بإنشاء نسخة احتياطية جديدة",
"restore_alert": "إنك على وشك استرجاع نسخة احتياطية أنشئت في {}، حيث أن كل البيانات الحالية ستفقد، هل أنت متأكد من ذلك؟",
"service_busy": "توجد عملية نسخ احتياطي أخرى جارية الآن",
"quotas_only_applied_to_autobackups": "هذه الإعدادات قابلة للتطبيق فقط على النسخ الإحتياطية التلقائية، أما النسخ الإحتياطية اليدوية فلن يتم حذفها.",
"description": "سنحرص على حفاظ يومك في حال تعرّضت للهجوم من قِبل هاكر أو قد تم حذف الخادم وما إلى ذلك.",
"refetch_backups_subtitle": "قم بإيقاف ذاكرة التخزين المؤقتة، وقم بجلب البيانات من مزوّد التخزين الخاص بك مرة أخرى، هذا الإجراء قد يتطلب رسوماً إضافية.",
"forget_snapshot_alert": "إنك على وشك حذف هذه اللقطة، هل أنت متأكد من ذلك؟ فهذا الإجراء عادة لا يمكن التراجع عنه.",
"snapshot_modal_download_verify_option_description": "سيكون هذا أقل مخاطرة، لأنه هنالك حاجة لمساحة إضافية فارغة. قم بتنزيل اللقطة بأكملها على الذاكرة المؤقتة، قم بالتحقق من ذلك، ومن ثم استبدل البيانات الحالية.",
"snapshot_modal_service_not_found": "هذه لقطة من خدمة لم تعد موجودة على الخادم الخاص بك مجدداٍ. لا يحدث هذا في العادة، كما أنه لا يمكننا القيام بالاسترجاع أو الاستعادة التلقائية، إلا أنه يمكنك تنزيل اللقطة واستعادتها بشكل يدوي. اتصل بدعم SelfPrivacy إن كنت تحتاج لمساعدة.",
"select_all": "ارفع كل شيء للنسخة الإحتياطية",
"snapshot_modal_select_strategy": "اختر استراتيجية الاسترجاع",
"backups_encryption_key_description": "هذا المفتاح يستخدم لتشفير نسختك الإحتياطية، وفي حال فقدانه، لن تتمكن من إستعادة نسختك الإحتياطية، لذا عليك إبقاؤه في مكان آمن. كما أنه سيكون مفيداً أيضاً في حال احتجت للاستعادة النسخ الإحتياطية بشكل يدوي.",
"snapshot_modal_download_verify_option_title": "قم بالتنزيل، ثم قم بالتحقق بعد ذلك قم بالاستبدال"
},
"storage": {
"card_title": "تخزين الخادم",
"status_error": "مساحة القرص قليلة",
"disk_usage": "{} تم استخدامه",
"disk_total": "{} المجموع. {}",
"mb": "{} ميجا بايت",
"kb": "{} كيلو بايت",
"bytes": "بايت",
"extend_volume_button": "سعة التخزين",
"extending_volume_title": "زيادة سعة التخزين",
"extending_volume_error": "لم نتمكن من تهيئة زيادة سعة وحدة التخزين.",
"extending_volume_started": "زيادة سعة وحدة التخزين قد بدءت",
"extending_volume_server_waiting": "تم تغيير وحدة تخزين الخادم، في انتظار ٢٠ ثانية…",
"extending_volume_rebooting": "يتم الآن إعادة التشغيل…",
"size": "الحجم",
"price": "السعر",
"data_migration_title": "ترحيل البيانات",
"data_migration_notice": "خلال القيام بترحيل البيانات سيتم إغلاق جميع الخدمات.",
"start_migration_button": "إبدأ بالترحيل",
"status_ok": "استخدام القرص جيد",
"gb": "{} جيجا بايت",
"extending_volume_description": "إن تغيير سعة التخزين سيسمح لك بحفظ المزيد من البيانات من دون القيام بزيادة سعة الخادم نفسه. من الممكن زيادة سعة التخزين لكن لا يمكن تقليصها.",
"extending_volume_price_info": "السعر شامل للضريبة VAT، ويتم تقديره من خلال تسعير البيانات المعطاة من مزوّد الخادم الخاص بك. سيتم إعادة تشغيل الخادم بعد تغيير سعة التخزين.",
"extending_volume_provider_waiting": "تم تغيير حجم وحدة التخزين، في انتظار ١٠ ثواني…",
"extending_volume_modal_description": "الترقية إلى {} لأجل {} الخطة الشهرية."
},
"video": {
"login_info": "لا يوجد حساب مطلوب."
},
"social_network": {
"login_info": "سيتوجّب عليك أن تنشئ حساباً على صفحة الويب."
},
"not_ready_card": {
"in_menu": "لم يتم إعداد الخادم بعد، من فضلك أنهي الإعداد باستخدام معالج الإعداد للعمل المقبل."
},
"service_page": {
"nothing_here": "لا شيء هنا",
"open_in_browser": "افتح باستخدام المتصفح",
"restart": "قم بإعادة تشغيل الخدمة",
"disable": "لا تقم بتنشيط الخدمة",
"move": "انتقل إلى وحدة تخزين أخرى",
"uses": "استخدام {usage} على {volume}",
"snapshots": "لقطات منسوخة احتياطاً",
"status": {
"active": "قيد التشغيل",
"inactive": "إيقاف",
"off": "غير نشط",
"activating": "تنشيط",
"deactivating": "إلغاء التنشيط",
"reloading": "إعادة التشغيل",
"failed": "فشل بالبدء"
},
"enable": "قم بتنشيط الخدمة"
},
"mail": {
"login_info": "استعمل اسم المستخدم وكلمة المرور من خلال علامة تبويب المستخدمين. منفذ IMAP هو 143 مع STARTTLS، ومنفذ SMTP هو 587 مع STARTTLS."
},
"password_manager": {
"login_info": "سيتوجب عليك إنشاء حساب على صفحة الويب."
},
"timer": {
"sec": "{} ثانية"
},
"support": {
"title": "دعم SelfPrivacy"
},
"test": "en-test",
"locale": "en"
}

448
assets/translations/az.json Normal file
View File

@ -0,0 +1,448 @@
{
"test": "az-test",
"locale": "az",
"basis": {
"providers": "Provayderlər",
"providers_title": "Sizin məlumat mərkəziniz",
"select": "Seçin",
"services": "Xidmətlər",
"users": "İstifadəçilər",
"more": "Çox",
"next": "Sonrakı",
"got_it": "Anladım",
"settings": "Parametrlər",
"password": "Parol",
"create": "Yeni əlavə et",
"confirmation": "Təsdiq",
"cancel": "Ləğv edin",
"delete": "Silin",
"close": "Bağla",
"connect": "Qoşulmaq",
"domain": "Domen",
"saving": "Qənaət…",
"username": "İstifadəçilər adı",
"later": "Keçidin, sonra tənzimləyin",
"connect_to_existing": "Mövcud serverə qoşulun",
"reset": "Sıfırlayın",
"details": "Təfərrüatlar",
"no_data": "İnformasiya yoxdur",
"wait": "Gözləyin",
"remove": "Silin",
"done": "Hazır",
"continue": "Davam et",
"alert": "Bildiriş",
"services_title": "Şəxsi, şəxsi və müstəqil xidmətləriniz.",
"loading": "Yüklənir…",
"apply": "Müraciət edin",
"app_name": "SelfPrivacy"
},
"more_page": {
"configuration_wizard": "Quraşdırma Sihirbazı",
"onboarding": "Salamlar",
"create_ssh_key": "SSH admin açarları"
},
"console_page": {
"title": "Konsol",
"waiting": "Başlama gözlənilir…",
"copy": "Kopyalayın"
},
"about_application_page": {
"application_version_text": "Tətbiq versiyası",
"api_version_text": "Server API versiyası",
"privacy_policy": "Gizlilik Siyasəti",
"title": "Tətbiq haqqında"
},
"application_settings": {
"title": "Tətbiq parametrləri",
"dark_theme_title": "Qaranlıq mövzu",
"reset_config_title": "Tətbiq Sıfırlayın",
"reset_config_description": "API və Super İstifadəçi Açarlarını sıfırlayın.",
"delete_server_title": "Serveri silin",
"dark_theme_description": "Rəng mövzusunu dəyişdirin",
"delete_server_description": "Əməliyyat serveri siləcək. Bundan sonra o, əlçatmaz olacaq.",
"system_dark_theme_title": "Defolt sistem mövzusu",
"system_dark_theme_description": "Sistem parametrlərindən asılı olaraq açıq və ya qaranlıq mövzudan istifadə edin",
"dangerous_settings": "Təhlükəli Parametrlər"
},
"ssh": {
"title": "SSH açarları",
"create": "SSH açarı yaradın",
"delete": "SSH açarını silin",
"delete_confirm_question": "Növbəti SSH açarı silmək istədiyinizə əminsiniz?",
"no_key_name": "Adsız açar",
"root_title": "Bunlar super istifadəçi açarlarıdır",
"input_label": "İctimai ED25519 və ya RSA açarı",
"root_subtitle": "Burada göstərilən açarların sahibləri server məlumatlarına və parametrlərinə tam giriş əldə edirlər. Yalnız açarlarınızı əlavə edin."
},
"onboarding": {
"page1_title": "Rəqəmsal müstəqillik hər kəs üçün əlçatandır",
"page1_text": "Mail, VPN, Messenger, sosial şəbəkə və daha çox şəxsi serverinizdə, tam nəzarətiniz altında.",
"page2_title": "SelfPrivacy bulud deyil, şəxsi məlumat mərkəzinizdir",
"page2_server_provider_title": "Server provayderi",
"page2_dns_provider_title": "DNS provayderi",
"page2_dns_provider_text": "İnternetdə olmaq üçün sizə domen lazımdır. Domenin serverinizə işarə etməsi üçün sizə etibarlı DNS server lazımdır. Biz sizə dəstəklənən DNS serverlərindən birini seçməyi və bütün qeydləri avtomatik konfiqurasiya etməyi təklif edəcəyik. Onları əl ilə qurmaq istəyirsiniz? Bu da mümkündür.",
"page2_backup_provider_title": "Yedək provayderi",
"page2_text": "SelfPrivacy yalnız seçdiyiniz xidmət təminatçıları ilə işləyir. Hesablarınız yoxdursa, onları yaratmağınıza kömək edəcəyik.",
"page2_server_provider_text": "Server provayderi öz məlumat mərkəzində serverinizə xidmət göstərəcək. SelfPrivacy avtomatik olaraq ona qoşulacaq və sizin üçün server quracaq.",
"page2_backup_provider_text": "Bəs serverə bir şey olarsa? Haker hücumu, xidmətdən imtina və ya sadəcə məlumatların təsadüfən silinməsi? Məlumatlarınız ehtiyat yaddaş provayderinizlə başqa yerdə təhlükəsiz olacaq. Onların hamısı təhlükəsiz şəkildə şifrələnib və siz serverinizi bərpa edə bilərsiniz."
},
"resource_chart": {
"month": "Ay",
"day": "Gün",
"hour": "Saat",
"cpu_title": "CPU İstifadəsi",
"network_title": "Şəbəkə istifadəsi",
"in": "Alındı",
"out": "Göndərildi"
},
"server": {
"card_title": "Server",
"general_information": "Ümumi məlumat",
"resource_usage": "Resurs istehlakı",
"allow_autoupgrade": "Avtomatik yeniləmələrə icazə verin",
"allow_autoupgrade_hint": "Serverdə yeniləmələrin avtomatik quraşdırılmasına icazə verin",
"reboot_after_upgrade": "Yeniləmələrdən sonra yenidən başladın",
"description": "Bu, bütün xidmətlərinizin işlədiyi virtual kompüterdir",
"reboot_after_upgrade_hint": "Yeniləmələri tətbiq etdikdən sonra serveri avtomatik yenidən başladın",
"server_timezone": "Server saat qurşağı",
"select_timezone": "Saat qurşağınızı seçin",
"timezone_search_bar": "Saat qurşağı adı və ya vaxt ofset dəyəri",
"server_id": "Server İD",
"status": "Status",
"cpu": "CPU",
"ram": "RAM yaddaşı",
"disk": "Disk",
"monthly_cost": "Aylıq xərc",
"location": "Yerləşdirmə",
"core_count": {
"one": "{} nüvəs",
"two": "{} nüvələr",
"few": "{} nüvələr",
"other": "{} nüvələr",
"many": "{} nüvələr"
}
},
"domain": {
"card_title": "Domen",
"screen_title": "Domain və DNS",
"ok": "Qeydlər qaydasındadır",
"error": "Problemlər tapıldı",
"refreshing": "Data yenilənməsi…",
"uninitialized": "Data hələ alınmayıb",
"services_title": "Servislər",
"email_title": "E-poçt",
"email_subtitle": "Təhlükəsiz e-poçt mübadiləsi üçün tələb olunan qeydlər.",
"update_list": "Siyahını yeniləyin",
"error_subtitle": "Düzəltmək üçün bura klikləyin",
"services_subtitle": "Xidmətlərin fəaliyyəti üçün “A” tipli qeydlər lazımdır."
},
"backup": {
"card_title": "Ehtiyat nüsxəsi",
"reupload_key": "Açar yeniləməsini məcbur edin",
"reuploaded_key": "Server açarı yeniləndi",
"initialize": "Qurunmaq",
"restore": "Kopyadan bərpa edin",
"no_backups": "Yedəkləmə hələ yoxdur",
"create_new": "Yeni nüsxə yaradın",
"restore_alert": "Siz {} tərəfindən yaradılmış nüsxədən bərpa etmək üzrəsiniz. Bütün cari məlumatlar itiriləcək. Sən əminsən?",
"refresh": "Statusu yenilə",
"refetch_backups": "Kopya siyahısını yeniləyin",
"refetching_list": "Siyahı bir neçə dəqiqəyə yenilənəcək",
"description": "İstənilən vəziyyətdə sizə kömək edəcək: haker hücumu, serverin silinməsi və s."
},
"storage": {
"card_title": "Server yaddaşı",
"status_ok": "Heç bir disk problemi tapılmadı",
"status_error": "Disk sahəsi tükənir",
"disk_usage": "{} istifadə olunur",
"disk_total": "{} ümumi · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Bayt",
"extend_volume_button": "Yaddaşı genişləndirin",
"extending_volume_title": "Yaddaş genişləndirilməsi",
"extending_volume_price_info": "Qiymətə ƏDV daxildir və Hetzner tərəfindən təqdim edilən qiymət məlumatlarına əsaslanır. Proses zamanı server yenidən işə salınacaq.",
"extending_volume_error": "Yaddaş genişləndirilməsinə başlamaq alınmadı.",
"size": "Ölçüsü",
"extending_volume_description": "Yaddaş ölçüsünün dəyişdirilməsi, serverin özünü genişləndirmədən serverinizdə daha çox məlumat saxlamağa imkan verəcəkdir. Həcmi yalnız artırmaq olar, onu azaltmaq olmaz.",
"data_migration_title": "Məlumat miqrasiya",
"data_migration_notice": "Məlumatların köçürülməsi zamanı bütün xidmətlər deaktiv ediləcək.",
"start_migration_button": "Miqrasiyaya başlayın"
},
"service_page": {
"move": "Başqa sürücüyə keçin",
"open_in_browser": "Brauzerdə açın",
"restart": "Xidməti yenidən başladın",
"disable": "Xidməti söndürün",
"enable": "Xidməti aktivləşdirin",
"uses": "{volume} üzərində {usage} istifadə edir",
"status": {
"active": "Açılır və qaçır",
"inactive": "Dayandı",
"failed": "Başlamaq alınmadı",
"off": "Əlil",
"activating": "Yandırılır",
"deactivating": "Söndürür",
"reloading": "Yenidən başladıldı"
}
},
"mail": {
"login_info": "İstifadəçilər sekmesinden istifadəçi adı və paroldan istifadə edin. IMAP portu: 143, STARTTLS. SMTP portu: 587, STARTTLS."
},
"video": {
"login_info": "Hesab tələb olunmur."
},
"cloud": {
"login_info": "Administrator girişi: admin, parol əsas istifadəçi ilə eynidir. NextCloud admin interfeysində yeni istifadəçilər yaradın."
},
"git": {
"login_info": "Saytda hesab yaradılmalıdır. İlk qeydiyyatdan keçmiş istifadəçi administrator olur."
},
"users": {
"could_not_fetch_description": "İnternet bağlantısını yoxlayın və yenidən cəhd edin",
"username_rule": "Adda yalnız kiçik Latın hərfləri, rəqəmlər, alt xətt ola bilər, rəqəmlərlə başlaya bilməz",
"add_new_user": "İlk istifadəçini əlavə edin",
"new_user": "Yeni istifadəçi",
"delete_user": "İstifadəçini silin",
"nobody_here": "İstifadəçilər burada göstəriləcək",
"login": "Daxil ol",
"new_user_info_note": "Yeni istifadəçi avtomatik olaraq bütün xidmətlərə çıxış əldə edəcək",
"delete_confirm_question": "Hesabınızı silmək istədiyinizə əminsiniz?",
"reset_password": "Parolu sıfırlayın",
"account": "Hesab",
"could_not_fetch_users": "İstifadəçiləri əldə etmək alınmadı",
"refresh_users": "İstifadəçi siyahısını yeniləyin",
"could_not_create_user": "İstifadəçi yaratmaq alınmadı",
"could_not_delete_user": "İstifadəçini silmək alınmadı",
"could_not_add_ssh_key": "SSH açarı yaratmaq alınmadı",
"email_login": "E-poçt Avtorizasiyası",
"no_ssh_notice": "Bu istifadəçi üçün yalnız SSH və E-poçt hesabları yaradılmışdır. Bütün xidmətlər üçün vahid icazə hələ tətbiq edilməyib.",
"details_title": "İstifadəçi məlumatları"
},
"initializing": {
"select_provider": "Aşağıda SelfPrivacy tərəfindən dəstəklənən provayderlərin seçimi var",
"select_provider_countries_text_do": "ABŞ, Hollandiya, Sinqapur, Böyük Britaniya, Almaniya, Kanada, Hindistan, Avstraliya",
"connect_to_server_provider_text": "Token API-dən istifadə edərək SelfPrivacy proqramı sizin adınıza server sifariş edə və konfiqurasiya edə biləcək",
"no_locations_found": "Heç bir məkan tapılmadı, lütfən, hesabınızın mövcud olduğundan əmin olun",
"choose_server_type_text": "Server resursları hansı xidmətlərin başlaya biləcəyini müəyyənləşdirir. İstənilən vaxt serveri genişləndirə bilərsiniz",
"server_rebooted": "Server yenidən başladıldı, son yoxlamanı gözləyirik…",
"one_more_restart": "İndi təhlükəsizlik sertifikatlarını aktivləşdirmək üçün əlavə reboot olacaq.",
"connect_to_server": "Serverdən başlayaq.",
"select_provider_notice": "“Kiçik server” dedikdə biz iki prosessor xətti və iki giqabayt operativ yaddaşa malik serveri nəzərdə tuturuq.",
"select_provider_countries_title": "Mövcud ölkələr",
"select_provider_countries_text_hetzner": "Almaniya, Finlandiya, ABŞ",
"select_provider_price_title": "Orta qiymət",
"select_provider_price_text_hetzner": "Kiçik bir server və 50 GB disk sahəsi üçün ayda € 8",
"select_provider_price_text_do": "Kiçik server və 50 GB disk sahəsi üçün ayda $17",
"select_provider_payment_title": "Ödəmə metodları",
"select_provider_payment_text_hetzner": "Bank kartları, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Bank kartları, Google Pay, PayPal",
"select_provider_email_notice": "Yeni müştərilər üçün e-poçt hostinqi mövcud deyil. İlk ödənişdən sonra onu açmaq mümkün olacaq.",
"select_provider_site_button": "Saytı ziyarət edin",
"connect_to_server_provider": "Giriş ",
"how": "API Tokenini necə əldə etmək olar",
"provider_bad_key_error": "Provayder API açarı yanlışdır",
"could_not_connect": "Provayderə qoşulmaq alınmadı.",
"choose_location_type": "Harada server sifariş etmək olar?",
"choose_location_type_text": "Mövcud konfiqurasiyalar, qiymətlər və serverə qoşulma sürətiniz yer seçimindən asılı olacaq.",
"locations_not_found": "Vay!",
"locations_not_found_text": "Bu məkanda icarəyə verilə bilən server yoxdur",
"back_to_locations": "Başqasını seçək",
"choose_server_type": "Hansı server növünü seçmək lazımdır?",
"choose_server_type_notice": "Diqqət etməli olduğunuz əsas şey prosessor iplərinin sayı və RAM miqdarıdır. Xidmət məlumatları ayrıca ödənilən və asanlıqla genişləndirilə bilən ayrıca diskdə yerləşdiriləcək.",
"choose_server_type_ram": "RAM üçün {} GB",
"choose_server_type_storage": "{} GB sistem yaddaşı",
"choose_server_type_payment_per_month": "{} aylıq",
"backblaze_bad_key_error": "Backblaze vault haqqında məlumat yanlışdır",
"select_dns": "İndi DNS provayderini seçək",
"use_this_domain": "Biz bu domendən istifadə edirik?",
"use_this_domain_text": "Göstərdiyiniz token bu domen üzərində nəzarəti təmin edir",
"no_connected_domains": "Hazırda heç bir bağlı domen yoxdur",
"loading_domain_list": "Domenlərin siyahısı yüklənir",
"save_domain": "Domeni yadda saxla",
"final": "Son addım",
"create_server": "Server yaradın",
"what": "Bunun mənası nədi?",
"server_started": "Server işləyir. İndi yoxlanılacaq və yenidən işə salınacaq…",
"server_created": "Server yaradıldı. DNS ünvanları yoxlanılır və server işə salınır…",
"until_the_next_check": "Növbəti yoxlamaya qədər: ",
"check": "Yoxlanış",
"create_master_account": "Əsas hesab yaradın",
"enter_username_and_password": "İstifadəçi adı və mürəkkəb parol daxil edin",
"checks": "Yoxlamalar aparıldı:. \n{} / {}",
"steps": {
"hosting": "Hostinq",
"server_type": "Server növü",
"dns_provider": "DNS provayderi",
"backups_provider": "Yedəkləmələr",
"domain": "Domen",
"master_account": "Master hesab",
"server": "Server",
"dns_setup": "DNS qurulması",
"nixos_installation": "NixOS quraşdırılması",
"server_reboot": "Serverin yenidən yüklənməsi",
"final_checks": "Son yoxlamalar"
}
},
"recovering": {
"domain_recovery_description": "Serverə daxil olmaq istədiyiniz domeni daxil edin:",
"method_device_description": "Proqramı başqa cihazda açın və cihaz idarəetmə ekranınıın. Avtorizasiya nişanı əldə etmək üçün \"Cihaz əlavə et\" üzərinə klikləyin.",
"modal_confirmation_title": "Bu həqiqətən sizin serverinizdir?",
"modal_confirmation_description": "Yanlış serverə qoşulmaq dağıdıcı ola bilər.",
"modal_confirmation_ip_invalid": "IP DNS qeydində göstərilənə uyğun gəlmir",
"generic_error": "Əməliyyat uğursuz oldu, yenidən cəhd edin.",
"recovery_main_header": "Mövcud serverə qoşulun",
"domain_recover_placeholder": "Sizin domeniniz",
"domain_recover_error": "Bu domenlə server tapmaq mümkün olmadı",
"method_select_description": "Giriş metodunu seçin:",
"method_select_other_device": "Başqa cihazda girişim var",
"method_select_recovery_key": "Məndə bərpa açarı var",
"method_select_nothing": "Məndə bunların heç biri yoxdur",
"method_device_button": "Token aldım",
"method_device_input_description": "İcazə nişanınızı daxil edin",
"method_device_input_placeholder": "Token",
"method_recovery_input_description": "Bərpa nişanınızı daxil edin",
"fallback_select_description": "Bundan sənə nə var? İlk uyğun gələni seçin:",
"fallback_select_token_copy": "Tətbiqin başqa versiyasından icazə nişanının surəti.",
"fallback_select_root_ssh": "SSH vasitəsilə serverə Root girişi.",
"fallback_select_provider_console": "Hostinq konsoluna giriş.",
"authorization_failed": "Bu açarla daxil olmaq alınmadı",
"fallback_select_provider_console_hint": "Məsələn: Hetzner.",
"provider_connected": "{} qoşulur",
"provider_connected_description": "Əlaqə quruldu. {} girişi ilə nişanınızı daxil edin:",
"provider_connected_placeholder": "{} nişanı",
"confirm_server": "Serveri təsdiqləyin",
"confirm_server_description": "Server tapdım! Onun olduğunu təsdiq edin:",
"confirm_server_accept": "Bəli, odur",
"confirm_server_decline": "Başqa server seçin",
"choose_server": "Server seçin",
"choose_server_description": "Hansı serverlə əlaqə saxladığınızı müəyyən etmək mümkün olmadı.",
"no_servers": "Hesabınızda mövcud server yoxdur.",
"domain_not_available_on_token": "Daxil edilmiş işarənin tələb olunan domenə girişi yoxdur.",
"modal_confirmation_dns_valid": "Əks DNS düzgündür",
"modal_confirmation_dns_invalid": "Əks DNS fərqli domenə işarə edir",
"modal_confirmation_ip_valid": "IP DNS qeydində göstərilənə uyğun gəlir"
},
"devices": {
"main_screen": {
"description": "Bu cihazların SelfPrivacy proqramı vasitəsilə server idarəçiliyinə tam çıxışı var.",
"header": "Cihazlar",
"this_device": "Bu cihaz",
"other_devices": "Digər cihazlar",
"authorize_new_device": "Yeni cihaza icazə verin",
"access_granted_on": "Giriş verilmişdir {}",
"tip": "Girişi ləğv etmək üçün cihaza klikləyin."
},
"revoke_device_alert": {
"description": "{} cihazı artıq serveri idarə edə bilməyəcək.",
"header": "Giriş ləğv edilsin?",
"yes": "Geri çəkilmək",
"no": "Ləğv et"
},
"add_new_device_screen": {
"header": "Yeni Cihaz Avtorizasiyası",
"description": "Bu açarı yeni cihaza daxil edin:",
"please_wait": "Zəhmət olmasa, gözləyin",
"tip": "Açar 10 dəqiqə etibarlıdır.",
"expired": "Açarın müddəti bitib.",
"get_new_key": "Yeni açar alın"
}
},
"recovery_key": {
"key_main_description": "Səlahiyyətli cihazlar mövcud olmadıqda SelfPrivacy avtorizasiyası üçün tələb olunur.",
"key_receiving_description": "Bu açarı təhlükəsiz yerə yazın. O, serverinizə tam giriş imkanı verir:",
"key_connection_error": "Serverə qoşulmaq alınmadı.",
"key_synchronizing": "Sinxronizasiya…",
"key_main_header": "Bərpa açarı",
"key_amount_toggle": "İstifadəsini məhdudlaşdırın",
"key_amount_field_title": "Maks. istifadə sayı",
"key_duedate_toggle": "İstifadə müddətini məhdudlaşdırın",
"key_duedate_field_title": "Son istifadə tarixi",
"key_receive_button": "Açar alın",
"key_valid": "Açarınız etibarlıdır",
"key_invalid": "Açarınız artıq etibarlı deyil",
"key_valid_until": "{} tarixinə qədər etibarlıdır",
"key_valid_for": "Daha {} dəfə istifadə edə bilərsiniz",
"key_creation_date": "Yaradılıb {}",
"key_replace_button": "Yeni açar yaradın",
"key_receiving_info": "Bu açar artıq göstərilməyəcək, lakin siz onu yenisi ilə əvəz edə bilərsiniz.",
"key_receiving_done": "Hazır!",
"generation_error": "Açar yaratmaq alınmadı. {}"
},
"modals": {
"unexpected_error": "Provayder tərəfindən gözlənilməz xəta.",
"dns_removal_error": "DNS qeydlərini silmək mümkün deyil.",
"server_deletion_error": "Server silinə bilməz.",
"server_validators_error": "Server siyahısını əldə etmək alınmadı.",
"already_exists": "Belə bir server artıq mövcuddur.",
"destroy_server": "Serveri məhv edib yenisini yaratmaq?",
"try_again": "Bir daha cəhd etmək üçün?",
"are_you_sure": "Sən əminsən?",
"purge_all_keys": "Bütün avtorizasiya açarları silinsin?",
"purge_all_keys_confirm": "Bəli, bütün düymələri silin",
"delete_server_volume": "Server və yaddaş silinsin?",
"reboot": "Yenidən yükləyin",
"yes": "Bəli",
"no": "Yox"
},
"jobs": {
"create_ssh_key": "{} üçün SSH açarı yaradın",
"title": "Tapşırıqlar",
"start": "İcra etməyə başlayın",
"empty": "Tapşırıq yoxdur",
"create_user": "İstifadəçi yaradın",
"delete_user": "İstifadəçini silin",
"service_turn_off": "Dayan",
"service_turn_on": "Başlayın",
"job_added": "Tapşırıq əlavə edildi",
"run_jobs": "Tapşırıqları yerinə yetirin",
"reboot_success": "Server yenidən işə salınır",
"reboot_failed": "Serveri yenidən başlatmaq alınmadı, qeydləri yoxlayın.",
"config_pull_failed": "Server konfiqurasiyasını yeniləmək alınmadı. Proqram təminatı yeniləməsi başladı.",
"upgrade_success": "Server yeniləməsi başladı",
"upgrade_failed": "Server yeniləməsi uğursuz oldu",
"upgrade_server": "Serveri yeniləyin",
"reboot_server": "Serveri yenidən başladın",
"delete_ssh_key": "{} üçün SSH açarını silin",
"server_jobs": "Serverdəki tapşırıqlar",
"reset_user_password": "İstifadəçi parolunu sıfırlayın",
"generic_error": "Serverə qoşulmaq alınmadı!"
},
"validations": {
"already_exist": "Artıq mövcuddur",
"length_not_equal": "[] sətirinin uzunluğu {}-ə bərabər olmalıdır",
"required": "Məcburi sahə",
"invalid_format": "Səhv format",
"invalid_format_password": "İçərisində boş simvol olmamalıdır",
"invalid_format_ssh": "SSH açar formatına əməl edilməlidir",
"root_name": "İstifadəçi adı 'root' ola bilməz",
"length_longer": "[] sətirinin uzunluğu {}-dən kiçik və ya ona bərabər olmalıdır"
},
"not_ready_card": {
"in_menu": "Server hələ konfiqurasiya edilməyib, əlaqə sihirbazından istifadə edin."
},
"password_manager": {
"login_info": "Saytda hesab yaradılmalıdır."
},
"social_network": {
"login_info": "Аккаунт нужно создать на сайте."
},
"timer": {
"sec": "{} san"
},
"support": {
"title": "SelfPrivacy Dəstək"
},
"developer_settings": {
"title": "Tərtibatçı Seçimləri\naçar",
"subtitle": "Bu parametrlər yalnız sazlama üçündür. Nə etdiyinizi bilmirsinizsə, onları dəyişməyin.",
"server_setup": "Server Quraşdırma Sihirbazı",
"use_staging_acme": "Test ACME serverindən istifadə",
"use_staging_acme_description": "Bu dəyəri dəyişdirmək üçün tətbiqi yenidən qurun.",
"routing": "Roulinq tətbiqləri",
"reset_onboarding": "Xoş gəldin ziyarət bayrağını sıfırlayın",
"reset_onboarding_description": "Enerji ekranını yenidən göstərmək üçün güc açarının sıfırlanması",
"cubit_statuses": "Yükləmə kubitlərinin cari vəziyyəti"
}
}

View File

@ -1 +1,454 @@
{}
{
"initializing": {
"how": "Як атрымаць API токен",
"provider_bad_key_error": "Няверны API ключ правайдэра",
"could_not_connect": "Не ўдалося злучыцца з правайдэрам.",
"choose_location_type": "Дзе замовіць сервер?",
"choose_location_type_text": "Ад выбару лакацыі будуць залежаць даступныя канфігурацыі, кошты і хуткасць вашага злучэння з серверам.",
"locations_not_found": "Ой!",
"back_to_locations": "Выбраць іншы",
"no_locations_found": "Не знойдзена лакацый, пераканайцеся, што ваш рахунак даступны",
"choose_server_type": "Які тып сервера выбраць?",
"choose_server_type_ram": "{} GB RAM",
"choose_server_type_payment_per_month": "{} у месяц",
"backblaze_bad_key_error": "Інфармацыя аб Backblaze сховішча няслушная",
"select_dns": "Цяпер давайце выберам DNS-правайдэра",
"what": "Што гэта значыць?",
"server_rebooted": "Сервер перазагружаны, чакаем апошнюю праверку…",
"server_created": "Сервер створаны. Ідзе праверка DNS адрасоў і запуск сервера…",
"until_the_next_check": "Да наступнай праверкі: ",
"check": "Праверка",
"create_master_account": "Стварыце галоўны ўліковы запіс",
"enter_username_and_password": "Увядзіце імя карыстальніка і складаны пароль",
"checks": "Праверак выканана: \n{} / {}",
"choose_server_type_storage": "{} GB сістэмнага сховішча",
"locations_not_found_text": "У гэтым месцы не аказалася даступных сервераў для арэнды",
"choose_server_type_text": "Ад рэсурсаў сервера залежыць, якія сервісы змогуць запусціцца. Пашырыць сервер можна будзе ў любы час",
"choose_server_type_notice": "Галоўнае, на што варта звярнуць увагу - колькасць патокаў працэсара і аб'ём аператыўнай памяці. Дадзеныя сэрвісаў будуць размешчаны на асобным дыску, які аплачваецца асобна і лёгка пашыраем.",
"server_started": "Сервер запушчаны. Цяпер ён будзе правераны і перагружаны…",
"one_more_restart": "Цяпер будзе дадатковая перазагрузка для актывацыі сертыфікатаў бяспекі.",
"use_this_domain": "Ужываем гэты дамен?",
"use_this_domain_text": "Указаны вамі токен дае кантроль над гэтым даменам",
"no_connected_domains": "У дадзены момант падлучаных даменаў няма",
"loading_domain_list": "Загружаем спіс даменаў",
"save_domain": "Захаваць дамен",
"final": "Апошні крок",
"create_server": "Стварыць сервер",
"connect_to_server": "Пачнём з сервера.",
"select_provider": "Ніжэй падборка правайдэраў, якіх падтрымлівае SelfPrivacy",
"select_provider_notice": "Пад 'Невялікім серверам' маецца на ўвазе сервер з двума струменямі працэсара і двума гігабайтамі аператыўнай памяці.",
"select_provider_countries_title": "Даступныя краіны",
"select_provider_countries_text_hetzner": "Германія, Фінляндыя, ЗША",
"select_provider_countries_text_do": "ЗША, Нідэрланды, Сінгапур, Вялікабрытанія, Германія, Канада, Індыя, Аўстралія",
"select_provider_price_title": "Сярэдні кошт",
"select_provider_price_text_hetzner": "€8 у месяц за невялікі сервер і 50GB месцы на дыску",
"select_provider_price_text_do": "$17 у месяц за невялікі сервер і 50GB месцы на дыску",
"select_provider_payment_title": "Метады аплаты",
"select_provider_payment_text_hetzner": "Банкаўскія карты, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Банкаўскія карты, Google Pay, PayPal",
"select_provider_email_notice": "Хостынг электроннай пошты недаступны для новых кліентаў. Разблакаваць можна будзе пасля першай аплаты.",
"select_provider_site_button": "Наведаць сайт",
"connect_to_server_provider": "Аўтарызавацца ў ",
"connect_to_server_provider_text": "З дапамогай API токена праграма SelfPrivacy зможа ад вашага імя замовіць і наладзіць сервер",
"steps": {
"nixos_installation": "Ўстаноўка NixOS",
"hosting": "Хостынг",
"server_type": "Тып сервера",
"dns_provider": "DNS правайдэр",
"backups_provider": "Рэзервовыя копіі",
"domain": "Дамен",
"master_account": "Майстар акаўнт",
"server": "Сервер",
"dns_setup": "Устаноўка DNS",
"server_reboot": "Перазагрузка сервера",
"final_checks": "Фінальныя праверкі"
},
"connect_to_dns": "Падлучыце DNS правайдэра",
"dns_provider_bad_key_error": "API ключ няслушны",
"select_provider_price_free": "Бясплатна"
},
"recovering": {
"generic_error": "Памылка правядзення аперацыі, паспрабуйце яшчэ раз.",
"recovery_main_header": "Падключыцца да існуючага сервера",
"domain_recovery_description": "Увядзіце дамен, па якім вы жадаеце атрымаць доступ да сервера:",
"domain_recover_placeholder": "Дамен",
"domain_recover_error": "Не удалося знайсці сервер з такім даменам",
"method_select_description": "Выбярыце спосаб уваходу:",
"method_select_other_device": "У мяне ёсць доступ на іншай прыладзе",
"method_select_recovery_key": "У мяне ёсць ключ аднаўлення",
"method_select_nothing": "У мяне нічога з гэтага няма",
"method_device_description": "Адкрыйце прыкладанне на іншай прыладзе і адкрыйце экран кіравання прыладамі. Націсніце \"Дадаць прыладу\" каб атрымаць токен для аўтарызацыі.",
"method_device_button": "Я атрымаў токен",
"method_device_input_placeholder": "Токен",
"method_recovery_input_description": "Увядзіце ваш токен аднаўлення",
"method_device_input_description": "Увядзіце ваш токен аўтарызацыі",
"fallback_select_description": "Што ў вас з гэтага ёсць? Абярыце першае, што падыходзіць:",
"fallback_select_token_copy": "Копія токена аўтарызацыі з іншай версіі праграмы.",
"fallback_select_root_ssh": "Каранёвы доступ да сервера праз SSH.",
"authorization_failed": "Не ўдалося ўвайсці з гэтым ключом",
"fallback_select_provider_console_hint": "Напрыклад, Hetzner.",
"provider_connected": "Падлучэнне да вашага {}",
"provider_connected_placeholder": "Токен {}",
"confirm_server": "Пацвердзіце сервер",
"confirm_server_description": "Знайшлі сервер! Пацьвердзіце, што гэта ён:",
"confirm_server_accept": "Да, гэта ён",
"confirm_server_decline": "Выбраць іншы сервер",
"choose_server_description": "Не атрымалася вызначыць, з якім серверам вы ўсталёўваеце сувязь.",
"domain_not_available_on_token": "Уведзены токен не мае доступу да патрэбнага дамену.",
"modal_confirmation_title": "Гэта сапраўды ваш сэрвер?",
"modal_confirmation_dns_valid": "Зваротны DNS карэктны",
"modal_confirmation_dns_invalid": "Зваротны DNS паказвае на іншы дамен",
"modal_confirmation_ip_invalid": "IP не супадае з паказаным у DNS запісу",
"fallback_select_provider_console": "Доступ да кансолі хостынгу.",
"provider_connected_description": "Сувязь устаноўлена. Увядзіце свой токен з доступам да {}:",
"choose_server": "Выберыце сервер",
"no_servers": "На вашым акаўнце няма даступных сэрвэраў.",
"modal_confirmation_description": "Падлучэнне да няправільнага сервера можа прывесці да дэструктыўных наступстваў.",
"modal_confirmation_ip_valid": "IP супадае з паказаным у DNS запісу"
},
"devices": {
"main_screen": {
"header": "Прылады",
"this_device": "Гэта прылада",
"other_devices": "Іншыя прылады",
"authorize_new_device": "Аўтарызаваць новую прыладу",
"access_granted_on": "Доступ выдадзены {}",
"tip": "Націсніце на прыладу, каб адклікаць доступ.",
"description": "Гэтыя прылады маюць поўны доступ да кіравання серверам праз прыкладанне SelfPrivacy."
},
"add_new_device_screen": {
"description": "Увядзіце гэты ключ на новай прыладзе:",
"expired": "Тэрмін дзеяння ключа скончыўся.",
"get_new_key": "Атрымаць новы ключ",
"header": "Аўтарызацыя новай прылады",
"please_wait": "Калі ласка, пачакайце",
"tip": "Ключ сапраўдны 10 хвілін."
},
"revoke_device_alert": {
"header": "Адклікаць доступ?",
"yes": "Адклікаць",
"no": "Адменіць",
"description": "Прылада {} больш не зможа кіраваць серверам."
}
},
"test": "by-test",
"locale": "by",
"basis": {
"providers": "Правайдэр",
"providers_title": "Ваш Дата Цэнтр",
"select": "Выбраць",
"services_title": "Вашы асабістыя, прыватныя і незалежныя сэрвісы.",
"next": "Далей",
"delete": "Выдаліць",
"later": "Прапусціць і наладзіць потым",
"no_data": "Няма дадзеных",
"services": "Сэрвісы",
"users": "Ужыткоўнікі",
"more": "Дадаткова",
"got_it": "Зразумеў",
"settings": "Налады",
"password": "Пароль",
"create": "Cтварыць",
"confirmation": "Пацверджанне",
"cancel": "Адмяніць",
"close": "Закрыць",
"connect": "Падключыць",
"domain": "Дамен",
"saving": "Захаванне…",
"username": "Імя ўжыткоўніка",
"loading": "Загрузка…",
"connect_to_existing": "Падключыцца да існуючага сервера",
"reset": "Скінуць",
"details": "Падрабязная інфармацыя",
"wait": "Пачакайце",
"remove": "Выдаліць",
"apply": "Ужыць",
"done": "Гатова",
"continue": "Працягнуць",
"alert": "Паведамленне",
"app_name": "SelfPrivacy"
},
"recovery_key": {
"key_connection_error": "Не ўдалося злучыцца з серверам.",
"key_synchronizing": "Сінхранізацыя…",
"key_main_header": "Ключ аднаўлення",
"key_amount_toggle": "Абмежаваць выкарыстання",
"key_amount_field_title": "Макс. кольк-ць ужыванняў",
"key_duedate_toggle": "Абмежаваць тэрмін выкарыстання",
"key_duedate_field_title": "Дата заканчэння тэрміну дзеяння",
"key_receive_button": "Атрымаць ключ",
"key_valid": "Ваш ключ сапраўдны",
"key_invalid": "Ваш ключ больш не сапраўдны",
"key_valid_until": "Дзейнічае да {}",
"key_creation_date": "Створаны {}",
"key_replace_button": "Згенераваць новы ключ",
"key_receiving_done": "Зроблена!",
"generation_error": "Не ўдалося згенераваць ключ. {}",
"key_main_description": "Неабходна для аўтарызацыі SelfPrivacy, калі аўтарызаваныя прылады недаступныя.",
"key_valid_for": "Можна выкарыстоўваць яшчэ {} раз",
"key_receiving_description": "Запішыце гэты ключ у бяспечным месцы. Ён дае поўны доступ да вашага сервера:",
"key_receiving_info": "Гэты ключ больш не будзе паказаны, але вы зможаце замяніць яго новым."
},
"modals": {
"server_validators_error": "Не ўдалося атрымаць спіс сервераў.",
"already_exists": "Такі сервер ужо існуе.",
"destroy_server": "Знішчыць сервер і стварыць новы?",
"try_again": "Паспрабаваць яшчэ раз?",
"are_you_sure": "Вы ўпэўнены?",
"purge_all_keys": "Сцерці ўсе ключы аўтарызацыі?",
"purge_all_keys_confirm": "Так, сцерці ўсе ключы",
"reboot": "Перазагрузіць",
"yes": "Да",
"no": "Не",
"dns_removal_error": "Немагчыма выдаліць запісы DNS.",
"server_deletion_error": "Немагчыма выдаліць сервер.",
"unexpected_error": "Непрадбачаная памылка з боку правайдэра.",
"delete_server_volume": "Выдаліць сервер і сховішча?",
"volume_creation_error": "Не ўдалося стварыць том."
},
"timer": {
"sec": "{} сек"
},
"jobs": {
"title": "Задачы",
"start": "Пачаць выкананне",
"empty": "Задач няма",
"delete_user": "Выдаліць карыстальніка",
"service_turn_off": "Спыніць",
"service_turn_on": "Запусціць",
"job_added": "Задача дададзена",
"run_jobs": "Запусціце задачы",
"reboot_success": "Сервер перазагружаецца",
"reboot_failed": "Не ўдалося перазагрузіць сервер, праверце логі.",
"upgrade_success": "Запушчана абнаўленне сервера",
"upgrade_failed": "Абнавіць сервер не выйшла",
"upgrade_server": "Абнавіць сервер",
"create_ssh_key": "Стварыць SSH ключ для {}",
"delete_ssh_key": "Выдаліць SSH ключ для {}",
"server_jobs": "Задачы на серверы",
"generic_error": "Не ўдалося падключыцца да сервера!",
"create_user": "Стварыць карыстальніка",
"config_pull_failed": "Не ўдалося абнавіць канфігурацыю сервера. Абнаўленне ПЗ запушчана.",
"reset_user_password": "Скінуць пароль карыстальніка",
"reboot_server": "Перазагрузіць сервер"
},
"more_page": {
"configuration_wizard": "Майстар наладкі",
"onboarding": "Прівітанне",
"create_ssh_key": "SSH ключы адміністратара"
},
"about_application_page": {
"application_version_text": "Версія праграмы",
"title": "Аб праграме",
"api_version_text": "Версія API сервера",
"privacy_policy": "Палітыка прыватнасці"
},
"application_settings": {
"reset_config_description": "Скінуць API ключы i суперкарыстальніка.",
"delete_server_description": "Дзеянне прывядзе да выдалення сервера. Пасля гэтага ён будзе недаступны.",
"title": "Налады праграмы",
"dark_theme_title": "Цёмная тэма",
"dark_theme_description": "Змяніць каляровую тэму",
"reset_config_title": "Скід налад",
"delete_server_title": "Выдаліць сервер",
"system_dark_theme_title": "Сістэмная тэма па-змаўчанні",
"system_dark_theme_description": "Выкарыстоўвайце светлую ці цёмную тэмы ў залежнасці ад сістэмных налад",
"dangerous_settings": "Небяспечныя наладкі"
},
"ssh": {
"root_subtitle": "Уладальнікі паказаных тут ключоў атрымліваюць поўны доступ да дадзеных і налад сервера. Дадавайце выключна свае ключы.",
"title": "SSH ключы",
"create": "Дадаць SSH ключ",
"delete": "Выдаліць SSH ключ",
"delete_confirm_question": "Вы ўпэўненыя, што хочаце выдаліць наступны ключ?",
"no_key_name": "Безназоўны ключ",
"root_title": "Гэта ключы суперкарыстальніка",
"input_label": "Публічны ED25519 або RSA ключ"
},
"onboarding": {
"page1_title": "Лічбавая незалежнасць, даступная ўсім нам",
"page1_text": "Почта, VPN, Пасыльнік, социальная сеть и многое другое на Вашем личном сервере, под Вашим полным контролем.",
"page2_server_provider_text": "Сервер-правайдэр будзе абслугоўваць ваш сервер у сваім дата-цэнтры. SelfPrivacy аўтаматычна далучыцца да яго і наладзіць вам сервер.",
"page2_dns_provider_text": "Вам патрэбен дамен, каб мець месца ў Інтэрнеце. Вам таксама патрэбен надзейны пастаўшчык DNS, каб дамен паказваў на ваш сервер. Мы прапануем вам выбраць падтрымоўванага пастаўшчыка DNS для аўтаматычнай налады сеткі.",
"page2_backup_provider_text": "Што рабіць, калі нешта здарыцца з вашым серверам? Уявіце сабе хакерскую атаку, выпадковае выдаленне даных або адмову ў абслугоўванні? Вашы дадзеныя будуць захоўвацца ў бяспецы ў пастаўшчыка рэзервовых копій. Яны будуць надзейна зашыфраваны і даступныя для аднаўлення вашага сервера ў любы час.",
"page2_title": "SelfPrivacy - гэта не воблака, а ваш асабісты дата-цэнтр",
"page2_text": "SelfPrivacy працуе толькі з сэрвіс-правайдэрамі на ваш выбар. Калі ў Вас няма ўліковых запісаў, мы дапаможам іх стварыць.",
"page2_server_provider_title": "Сервер-правайдэр",
"page2_dns_provider_title": "DNS-правайдэр",
"page2_backup_provider_title": "Бэкап-правайдэр"
},
"domain": {
"error": "Праблемы знойдзены",
"uninitialized": "Дадзеныя яшчэ не атрыманы",
"email_subtitle": "Запісы неабходныя для бяспечнага абмену электроннай поштай.",
"card_title": "Дамен",
"screen_title": "Дамен і DNS",
"ok": "Запісы ў парадку",
"error_subtitle": "Націсніце тут, каб выправіць іх",
"refreshing": "Абнаўленне дадзеных…",
"services_title": "Сэрвісы",
"services_subtitle": "Запісы тыпу \"A\" неабходныя для працы сэрвісаў.",
"email_title": "Электронная пошта",
"update_list": "Абнавіць спіс"
},
"backup": {
"description": "Выручыць Вас у любой сітуацыі: хакерская атака, выдаленне сервера і г.д.",
"no_backups": "Рэзервовых копій пакуль няма",
"restore_alert": "Вы збіраецеся аднавіць з рэзервовай копіі, створанай {}. Усе бягучыя даныя будуць страчаны. Вы ўпэўнены?",
"card_title": "Рэзервовае капіраванне",
"reupload_key": "Прымусова абнавіць ключ",
"reuploaded_key": "Ключ на серверы абноўлены",
"initialize": "Ініцыялізаваць",
"restore": "Аднавіць з рэзервовай копіі",
"create_new": "Стварыць новую рэзервовую копію",
"refresh": "Абнавіць статус",
"refetch_backups": "Абнавіць спіс копій",
"refetching_list": "Праз некалькі хвілін спіс будзе абноўлены"
},
"validations": {
"required": "Абавязковае поле",
"already_exist": "Ужо існуе",
"invalid_format_password": "Пароль не павінен змяшчаць прабелы",
"root_name": "Імя карыстальніка не можа быць 'root'",
"length_not_equal": "Даўжыня радка [], павінна быць роўна {}",
"length_longer": "Даўжыня радка [], павінна быць менш або роўна {}",
"invalid_format": "Няправільны фармат",
"invalid_format_ssh": "Павінен прытрымлівацца фармату SSH ключоў"
},
"storage": {
"extending_volume_title": "Пашырэнне сховішча",
"extending_volume_description": "Змяненне памеру сховішча дазволіць вам трымаць больш дадзеных на вашым серверы без пашырэння самога сервера. Аб'ём можна толькі павялічыць: зменшыць aб'ём не мажліва.",
"status_ok": "Праблем на дыску не знайдзена",
"status_error": "Мала месца на дыску",
"disk_usage": "{} выкарыстана",
"disk_total": "{} усяго · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Байт",
"extend_volume_button": "Пашырыць сховішча",
"extending_volume_price_info": "Кошт уключае ПДВ і ацэньваецца на аснове дадзеных аб цэнах, прадстаўленых Hetzner. Сервер будзе перагружаны падчас працэсу.",
"extending_volume_error": "Не ўдалося ініцыялізаваць пашырэнне тома.",
"size": "Памер",
"data_migration_title": "Міграцыя дадзеных",
"card_title": "Сховішча",
"data_migration_notice": "Падчас міграцыі ўсе службы будуць адключаны.",
"start_migration_button": "Пачаць міграцыю"
},
"service_page": {
"status": {
"active": "Запушчаны і працуе",
"inactive": "Астаноўлены",
"failed": "Не ўдалося запусціць",
"off": "Адключана",
"activating": "Уключаецца",
"deactivating": "Выключаецца",
"reloading": "Перазапускаецца"
},
"open_in_browser": "Адкрыць у браўзэры",
"restart": "Перазапусціць сэрвіс",
"disable": "Выключыць сэрвіс",
"enable": "Уключыць сэрвіс",
"move": "Перамясціць на іншы дыск",
"uses": "Выкарыстоўвае {usage} на {volume}"
},
"console_page": {
"title": "Кансоль",
"waiting": "Чакаем ініцыялізацыі…",
"copy": "Капіяваць"
},
"resource_chart": {
"month": "Месяц",
"day": "Дзень",
"hour": "Гадзіна",
"cpu_title": "Выкарыстанне працэсара",
"network_title": "Выкарыстанне сеткі",
"in": "Атрымлена",
"out": "Адпраўлена"
},
"server": {
"card_title": "Сервер",
"description": "Гэта віртуальны кампутар на якім працуюць усе вашыя сэрвісы",
"general_information": "Агульная інфармацыя",
"resource_usage": "Ужыванне рэсурсаў",
"allow_autoupgrade": "Дазволіць аўта-абнаўленні",
"allow_autoupgrade_hint": "Дазволіць аўтаматычную ўстаноўку абнаўленняў на сервер",
"reboot_after_upgrade": "Перазагружаць пасля абнаўленняў",
"reboot_after_upgrade_hint": "Аўтаматычна перазагружаць сервер пасля прымянення абнаўленняў",
"server_timezone": "Часавы пояс сервера",
"select_timezone": "Абярыце гадзінны пояс",
"timezone_search_bar": "Назва гадзіннага пояса або значэнне зруху часу",
"server_id": "ID сервера",
"status": "Статус",
"cpu": "Працэсар",
"ram": "Аператыўная памяць",
"disk": "Дыск",
"monthly_cost": "Штомесячны кошт",
"location": "Размяшчэнне",
"core_count": {
"one": "{} ядро",
"two": "{} ядра",
"few": "{} ядра",
"many": "{} ядраў",
"other": "{} ядраў"
}
},
"not_ready_card": {
"in_menu": "Сервер яшчэ не наладжаны. Калі ласка, завяршыце наладку з дапамогай майстра наладкі для далейшай працы."
},
"mail": {
"login_info": "Выкарыстоўвайце лагін і пароль з укладкі ўжытоўнікаў. IMAP порт: 143, STARTTLS. SMTP порт: 587, STARTTLS."
},
"password_manager": {
"login_info": "Акаўнт трэба стварыць на сайце."
},
"cloud": {
"login_info": "Лагін адміністратара: admin, пароль такі ж як у асноўнага карыстальніка. Стварайце новых карыстальнікаў у інтэрфейсе адміністратара NextCloud."
},
"social_network": {
"login_info": "Акаўнт трэба стварыць на сайце."
},
"video": {
"login_info": "Акаўнт не патрабуецца."
},
"git": {
"login_info": "Акаўнт трэба стварыць на сайце. Першы зарэгістраваны карыстач становіцца адміністратарам."
},
"users": {
"add_new_user": "Дадайце першага карыстальніка",
"new_user": "Новы карыстальнік",
"delete_user": "Выдаліць карыстальніка",
"nobody_here": "Тут будуць адлюстроўвацца карыстальнікі",
"login": "Логін",
"new_user_info_note": "Новы карыстальнік аўтаматычна атрымае доступ да ўсіх сэрвісаў",
"delete_confirm_question": "Вы напраўда хочаце выдаліць уліковы запіс?",
"reset_password": "Скінуць пароль",
"account": "Уліковы запіс",
"could_not_fetch_users": "Не ўдалося атрымаць карыстальнікаў",
"could_not_fetch_description": "Праверце інтэрнэт злучэнне і паспрабуйце зноў",
"refresh_users": "Абнавіць спіс карыстальнікаў",
"could_not_create_user": "Не ўдалося стварыць карыстальніка",
"could_not_delete_user": "Не ўдалося выдаліць карыстальніка",
"could_not_add_ssh_key": "Не ўдалося стварыць SSH ключ",
"username_rule": "Імя можа мець толькі маленькія лацінскія літары, лічбы, падкрэслення і не можа пачынацца з лічбы",
"email_login": "Аўтарызацыя па Email",
"no_ssh_notice": "Для гэтага карыстальніка створаны толькі SSH і Email акаўнты. Адзіная аўтарызацыя для ўсіх сэрвісаў яшчэ не рэалізавана.",
"details_title": "Карыстальніцкія дадзеныя"
},
"developer_settings": {
"reset_onboarding_description": "Скід перамыкача ўключэння для паўторнага адлюстравання экрана ўключэння",
"title": "Налады распрацоўніка",
"subtitle": "Гэтыя налады прызначаны толькі для адладкі. Не мяняйце іх, калі не ведаеце, што робіце.",
"server_setup": "Майстар усталёўкі сервера",
"use_staging_acme": "Выкарыстанне тэставага ACME сервера",
"use_staging_acme_description": "Ужываецца пры наладзе новага сервера.",
"routing": "Маршрутызацыя прыкладанняў",
"reset_onboarding": "Скінуць сцяг наведвання прывітання",
"cubit_statuses": "Бягучы статут кубітаў загрузкі",
"ignore_tls": "Не правяраць сертыфікаты TLS",
"ignore_tls_description": "Прыкладанне не будзе правяраць сертыфікаты TLS пры падключэнні да сервера."
},
"support": {
"title": "Падтрымка SelfPrivacy"
}
}

View File

@ -32,6 +32,423 @@
"apply": "Použít",
"done": "Hotovo",
"continue": "Pokračovat",
"alert": "Upozornění"
"alert": "Upozornění",
"later": "Přeskočit na nastavení později",
"app_name": "SelfPrivacy"
},
"about_application_page": {
"title": "O příloze",
"privacy_policy": "Zásady ochrany osobních údajů",
"api_version_text": "Verze API serveru",
"application_version_text": "Verze aplikace"
},
"more_page": {
"onboarding": "Pozdravy",
"configuration_wizard": "Průvodce nastavením",
"create_ssh_key": "Superuživatelské klíče SSH"
},
"console_page": {
"title": "Konzole",
"waiting": "Čekání na inicializaci…",
"copy": "Kopírovat"
},
"application_settings": {
"title": "Nastavení aplikace",
"dark_theme_title": "Tmavé téma",
"reset_config_title": "Obnovení konfigurace aplikace",
"reset_config_description": "Obnovení klíčů API a uživatele root.",
"delete_server_title": "Odstranit server",
"dark_theme_description": "Přepnutí tématu aplikace",
"delete_server_description": "Tím odstraníte svůj server. Nebude již přístupný.",
"system_dark_theme_title": "Výchozí téma systému",
"system_dark_theme_description": "Použití světlého nebo tmavého motivu v závislosti na nastavení systému",
"dangerous_settings": "Nebezpečná nastavení"
},
"ssh": {
"title": "Klíče SSH",
"create": "Vytvoření klíče SSH",
"delete": "Odstranění klíče SSH",
"delete_confirm_question": "Jste si jisti, že chcete odstranit klíč SSH?",
"no_key_name": "Nejmenovaný klíč",
"root_title": "Jedná se o klíče superuživatele",
"input_label": "Veřejný klíč ED25519 nebo RSA",
"root_subtitle": "Majitelé těchto klíčů získají plný přístup k serveru a mohou na něm dělat cokoli. Na server můžete přidávat pouze své vlastní klíče."
},
"onboarding": {
"page1_title": "Digitální nezávislost dostupná nám všem",
"page1_text": "Mail, VPN, Messenger, sociální sítě a mnoho dalšího na vašem soukromém serveru, který máte pod kontrolou.",
"page2_text": "Služba SelfPrivacy spolupracuje pouze s poskytovateli, které si vyberete. Pokud u nich nemáte požadované účty, pomůžeme vám je vytvořit.",
"page2_server_provider_title": "Poskytovatel serveru",
"page2_dns_provider_title": "Poskytovatel DNS",
"page2_backup_provider_title": "Poskytovatel zálohování",
"page2_backup_provider_text": "Co když se něco stane s vaším serverem? Představte si útok hackera, náhodné smazání dat nebo odepření služby? Vaše data budou v bezpečí u poskytovatele záloh. Budou bezpečně zašifrovány a kdykoli přístupné pro obnovení vašeho serveru.",
"page2_title": "SelfPrivacy není cloud, je to vaše osobní datové centrum",
"page2_server_provider_text": "Poskytovatel serveru udržuje váš server ve vlastním datovém centru. SelfPrivacy se automaticky připojí k poskytovateli a nastaví vše potřebné.",
"page2_dns_provider_text": "Abyste měli místo na internetu, potřebujete doménu. A také potřebujete spolehlivého poskytovatele DNS, aby doména směřovala na váš server. Doporučíme vám vybrat podporovaného poskytovatele DNS pro automatické nastavení sítě."
},
"resource_chart": {
"month": "Měsíc",
"day": "Den",
"hour": "Hodina",
"cpu_title": "Využití CPU",
"network_title": "Používání sítě",
"in": "Převzato z",
"out": "Odesláno"
},
"server": {
"card_title": "Server",
"description": "Všechny vaše služby jsou k dispozici zde",
"general_information": "Obecné informace",
"resource_usage": "Využití zdrojů",
"allow_autoupgrade": "Povolit automatickou aktualizaci",
"allow_autoupgrade_hint": "Povolení automatických aktualizací balíčků na serveru",
"reboot_after_upgrade": "Restart po aktualizaci",
"reboot_after_upgrade_hint": "Restartování bez výzvy po použití změn na serveru",
"timezone_search_bar": "Název časového pásma nebo hodnota časového posunu",
"server_id": "ID serveru",
"status": "Stav",
"cpu": "CPU",
"ram": "Paměť",
"disk": "Místní disk",
"monthly_cost": "Měsíční náklady",
"location": "Umístění",
"core_count": {
"two": "{} jádra",
"few": "{} jádra",
"many": "{} jádra",
"other": "{} jádra",
"one": "{} jádro"
},
"server_timezone": "Časové pásmo serveru",
"select_timezone": "Časové pásmo serveru"
},
"initializing": {
"locations_not_found": "Ups!",
"connect_to_server": "Začněme serverem.",
"select_provider": "Vyberte si libovolného poskytovatele z následujícího seznamu, všichni podporují službu SelfPrivacy",
"select_provider_notice": "Pod pojmem \"relativně malý\" rozumíme počítač se dvěma jádry procesoru a dvěma gigabajty paměti RAM.",
"select_provider_countries_text_do": "USA, Nizozemsko, Singapur, Velká Británie, Německo, Kanada, Indie, Austrálie",
"select_provider_email_notice": "E-mailový hosting nebude pro nové klienty k dispozici. Nicméně bude odemčen, jakmile dokončíte první platbu.",
"choose_location_type_text": "Různá místa poskytují různé konfigurace serverů, ceny a rychlosti připojení.",
"choose_server_type_text": "Různé možnosti prostředků podporují různé služby. Nebojte se, svůj server můžete kdykoli rozšířit",
"use_this_domain_text": "Vámi zadaný token poskytuje přístup k následující doméně",
"no_connected_domains": "V současné době nejsou připojeny žádné domény",
"server_created": "Vytvořený server. Probíhá kontrola DNS a spouštění serveru…",
"choose_server_type_notice": "Důležité je zaměřit se na procesor a paměť RAM. Data vašich služeb budou uložena na připojeném svazku, který lze snadno rozšířit a za který se platí zvlášť.",
"save_domain": "Uložit doménu",
"final": "Závěrečný krok",
"create_server": "Vytvořit server",
"what": "Co to znamená?",
"server_rebooted": "Server byl restartován. Čeká se na poslední ověření…",
"select_provider_countries_title": "Dostupné země",
"select_provider_countries_text_hetzner": "Německo, Finsko, USA",
"select_provider_price_title": "Průměrná cena",
"select_provider_price_text_hetzner": "8 € měsíčně za relativně malý server a 50 GB diskového úložiště",
"select_provider_price_text_do": "17 dolarů měsíčně za relativně malý server a 50 GB diskového úložiště",
"select_provider_payment_title": "Platební metody",
"select_provider_payment_text_hetzner": "Kreditní karty, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Kreditní karty, Google Pay, PayPal",
"select_provider_site_button": "Navštivte stránku",
"connect_to_server_provider": "Nyní se přihlaste ",
"connect_to_server_provider_text": "S tokenem API si SelfPrivacy bude moci pronajmout počítač a nastavit na něm svůj server",
"how": "Jak získat token API",
"provider_bad_key_error": "Klíč API poskytovatele je neplatný",
"could_not_connect": "Nelze se připojit k poskytovateli.",
"choose_location_type": "Kde si chcete objednat server?",
"locations_not_found_text": "Nejsou k dispozici žádné servery k pronájmu",
"back_to_locations": "Vyberte něco jiného",
"no_locations_found": "Nebyla nalezena žádná dostupná místa, ujistěte se, že je váš účet přístupný",
"choose_server_type": "Jaký typ serveru potřebujete?",
"choose_server_type_ram": "{} GB paměti RAM",
"choose_server_type_storage": "{} GB systémového úložiště",
"choose_server_type_payment_per_month": "{} měsíčně",
"backblaze_bad_key_error": "Informace o úložišti Backblaze jsou neplatné",
"select_dns": "Nyní vybereme poskytovatele DNS",
"use_this_domain": "Použít tuto doménu?",
"server_started": "Server byl spuštěn. Nyní bude ověřen a restartován…",
"until_the_next_check": "Do příští kontroly: ",
"check": "Podívejte se na stránky",
"one_more_restart": "Ještě jeden restart pro použití bezpečnostních certifikátů.",
"create_master_account": "Vytvoření hlavního účtu",
"loading_domain_list": "Načítání seznamu domén",
"enter_username_and_password": "Zadejte uživatelské jméno a silné heslo",
"checks": "Kontroly byly dokončeny\n{} z {}",
"steps": {
"server": "Server",
"dns_setup": "Instalace služby DNS",
"hosting": "Hostování",
"server_type": "Typ serveru",
"dns_provider": "Poskytovatel DNS",
"backups_provider": "Zálohování",
"domain": "Doména",
"master_account": "Hlavní účet",
"nixos_installation": "Instalace systému NixOS",
"server_reboot": "Restartování serveru",
"final_checks": "Závěrečné kontroly"
},
"dns_provider_bad_key_error": "Klíč API je neplatný",
"connect_to_dns": "Připojte poskytovatele DNS",
"select_provider_price_free": "Zdarma"
},
"users": {
"no_ssh_notice": "Pro tohoto uživatele jsou vytvořeny pouze účty e-mailu a SSH. Jednotné přihlašování pro všechny služby se chystá brzy.",
"add_new_user": "Přidání prvního uživatele",
"new_user": "Nový uživatel",
"nobody_here": "Nikdo zde není",
"login": "Přihlášení",
"new_user_info_note": "Novému uživateli bude automaticky přidělen přístup ke všem službám",
"delete_confirm_question": "Jste si jistý?",
"reset_password": "Obnovení hesla",
"account": "Účet",
"could_not_fetch_users": "Nepodařilo se načíst seznam uživatelů",
"could_not_fetch_description": "Zkontrolujte prosím své internetové připojení a zkuste to znovu",
"refresh_users": "Obnovení seznamu uživatelů",
"could_not_create_user": "Nepodařilo se vytvořit uživatele",
"could_not_delete_user": "Nepodařilo se odstranit uživatele",
"email_login": "Přihlášení e-mailem",
"delete_user": "Odstranění uživatele",
"could_not_add_ssh_key": "Nepodařilo se přidat klíč SSH",
"username_rule": "Uživatelské jméno musí obsahovat pouze malá písmena latinky, číslice a podtržítka, nesmí začínat číslicí",
"details_title": "Údaje o uživateli"
},
"domain": {
"card_title": "Doména",
"ok": "Záznamy jsou v pořádku",
"error": "Zjištěné problémy",
"error_subtitle": "Klepnutím sem je opravíte",
"refreshing": "Obnovení stavu…",
"services_title": "Služby",
"services_subtitle": "Pro každou službu jsou vyžadovány záznamy typu \"A\".",
"email_title": "Email",
"email_subtitle": "Záznamy nezbytné pro bezpečnou výměnu emailů.",
"update_list": "Aktualizace seznamu",
"screen_title": "Doména a DNS",
"uninitialized": "Data ještě nejsou načtena"
},
"backup": {
"card_title": "Záloha",
"reupload_key": "Vynutit klíč k opětovnému nahrání",
"reuploaded_key": "Znovu nahraný klíč",
"initialize": "Inicializace",
"restore": "Obnovení ze zálohy",
"no_backups": "Zatím nejsou k dispozici žádné zálohy",
"refresh": "Stav obnovení",
"refetch_backups": "Opětovné načtení seznamu záloh",
"description": "Zachrání vás v případě incidentu: útoku hackerů, vymazání serveru atd.",
"create_new": "Vytvoření nové zálohy",
"restore_alert": "Chystáte se obnovit ze zálohy vytvořené dne {}. Všechna aktuální data budou ztracena. Jste si jisti?",
"refetching_list": "Za několik minut bude seznam aktualizován"
},
"storage": {
"card_title": "Úložiště serveru",
"status_ok": "Využití disku je v pořádku",
"status_error": "Málo místa na disku",
"disk_usage": "{} použito",
"disk_total": "{} celkem - {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Byty",
"extend_volume_button": "Rozšíření objemu",
"extending_volume_title": "Rozšíření objemu",
"extending_volume_price_info": "Cena je uvedena včetně DPH a je odhadnuta na základě cenových údajů poskytnutých společností Hetzner. Po změně velikosti bude server restartován.",
"extending_volume_error": "Nepodařilo se inicializovat rozšíření svazku.",
"size": "Velikost",
"data_migration_title": "Migrace dat",
"data_migration_notice": "Během migrace budou všechny služby vypnuty.",
"start_migration_button": "Zahájení migrace",
"extending_volume_description": "Změna velikosti svazku vám umožní uložit na server více dat, aniž byste museli rozšiřovat samotný server. Svazek lze pouze rozšířit: zmenšení není možné."
},
"service_page": {
"open_in_browser": "Otevřít v prohlížeči",
"disable": "Zakázat službu",
"enable": "Povolení služby",
"move": "Přesun do jiného svazku",
"status": {
"active": "Zprovoznění a provoz",
"inactive": "Zastaveno",
"off": "Bezbariérový",
"activating": "Aktivace",
"reloading": "Restartování",
"failed": "Nepodařilo se spustit",
"deactivating": "Deaktivace"
},
"restart": "Restartování služby",
"uses": "Používá {usage} na {volume}"
},
"mail": {
"login_info": "Použijte uživatelské jméno a heslo z karty uživatelů. Port IMAP je 143 se STARTTLS, port SMTP je 587 se STARTTLS."
},
"cloud": {
"login_info": "Přihlašovací jméno je admin, heslo je stejné jako u hlavního uživatele. Vytvoření nových účtů v rozhraní Nextcloud."
},
"password_manager": {
"login_info": "Na webových stránkách si musíte vytvořit účet."
},
"video": {
"login_info": "Není potřeba žádný účet."
},
"social_network": {
"login_info": "Na webových stránkách si musíte vytvořit účet."
},
"git": {
"login_info": "Na webových stránkách si musíte vytvořit účet. První uživatel se stane administrátorem."
},
"recovering": {
"recovery_main_header": "Připojení k existujícímu serveru",
"domain_recover_placeholder": "Vaše doména",
"domain_recover_error": "Server s takovou doménou nebyl nalezen",
"method_select_description": "Vyberte metodu obnovy:",
"method_select_other_device": "Mám přístup na jiném zařízení",
"method_select_recovery_key": "Mám klíč pro obnovení",
"method_select_nothing": "Nic z toho nemám",
"method_device_button": "Obdržel jsem svůj žeton",
"method_device_input_description": "Zadejte svůj autorizační token",
"method_device_input_placeholder": "Token",
"method_recovery_input_description": "Zadejte svůj klíč k obnovení",
"fallback_select_description": "Co přesně máte? Vyberte první dostupnou možnost:",
"fallback_select_token_copy": "Kopie tokenu autentizace z jiné verze aplikace.",
"fallback_select_root_ssh": "Kořenový přístup SSH k serveru.",
"fallback_select_provider_console": "Přístup ke konzole serveru mého prodiveru.",
"authorization_failed": "Nelze se přihlásit pomocí tohoto klíče",
"provider_connected": "Připojení k poskytovateli {}",
"provider_connected_description": "Komunikace navázána. Zadejte svůj token s přístupem k {}:",
"provider_connected_placeholder": "Token {}",
"confirm_server": "Potvrzení serveru",
"confirm_server_accept": "Ano! To je ono",
"confirm_server_decline": "Výběr jiného serveru",
"choose_server": "Výběr serveru",
"choose_server_description": "Nepodařilo se nám zjistit, ke kterému serveru se snažíte připojit.",
"no_servers": "Na vašem účtu nejsou k dispozici žádné servery.",
"modal_confirmation_title": "Je to skutečně váš server?",
"modal_confirmation_description": "Pokud se připojíte k nesprávnému serveru, můžete přijít o všechna data.",
"modal_confirmation_dns_valid": "Reverzní DNS je platný",
"modal_confirmation_dns_invalid": "Reverzní DNS ukazuje na jinou doménu",
"modal_confirmation_ip_invalid": "IP není stejná jako v záznamu DNS",
"generic_error": "Operace se nezdařila, zkuste to prosím znovu.",
"domain_recovery_description": "Zadejte doménu serveru, ke které chcete získat přístup:",
"method_device_description": "Otevřete aplikaci v jiném zařízení a přejděte na stránku zařízení. Stisknutím tlačítka \"Přidat zařízení\" získáte token.",
"fallback_select_provider_console_hint": "Například: Hetzner.",
"confirm_server_description": "Našel jsem váš server! Potvrďte, že je to ten správný:",
"domain_not_available_on_token": "Vybraná doména není na tomto tokenu k dispozici.",
"modal_confirmation_ip_valid": "IP je stejná jako v záznamu DNS"
},
"devices": {
"main_screen": {
"header": "Zařízení",
"description": "Tato zařízení mají plný přístup k serveru prostřednictvím aplikace SelfPrivacy.",
"tip": "Stisknutím tlačítka na zařízení zrušíte přístup.",
"this_device": "Toto zařízení",
"other_devices": "Ostatní zařízení",
"authorize_new_device": "Autorizace nového zařízení",
"access_granted_on": "Přístup udělen na {}"
},
"revoke_device_alert": {
"header": "Odvolání přístup?",
"description": "Zařízení {} již nebude mít přístup k serveru.",
"yes": "Odvolání",
"no": "Zrušit"
},
"add_new_device_screen": {
"header": "Autorizace nového zařízení",
"description": "Zadejte klíč zařízení, které chcete autorizovat:",
"please_wait": "Počkejte prosím",
"tip": "Klíč je platný po dobu 10 minut.",
"expired": "Platnost klíče vypršela.",
"get_new_key": "Získat nový klíč"
}
},
"not_ready_card": {
"in_menu": "Server ještě není nastaven. Pro další práci dokončete nastavení pomocí průvodce nastavením."
},
"recovery_key": {
"key_connection_error": "Nepodařilo se připojit k serveru.",
"key_synchronizing": "Synchronizace…",
"key_receiving_done": "Hotovo!",
"generation_error": "Nepodařilo se vygenerovat klíč pro obnovení. {}",
"key_main_header": "Klíč pro obnovu",
"key_main_description": "Vyžaduje se pro autorizaci SelfPrivacy, pokud nejsou k dispozici autorizovaná zařízení.",
"key_amount_toggle": "Omezit používání",
"key_amount_field_title": "Maximální počet použití",
"key_duedate_toggle": "Omezit dobu používání",
"key_duedate_field_title": "Datum vypršení platnosti",
"key_receive_button": "Přijmout klíč",
"key_valid": "Váš klíč je platný",
"key_invalid": "Váš klíč již není platný",
"key_valid_until": "Platí do {}",
"key_valid_for": "{} můžete použít vícekrát",
"key_creation_date": "Vytvořeno {}",
"key_replace_button": "Generování nového klíče",
"key_receiving_description": "Tento klíč si zapište na bezpečné místo. Umožní vám plný přístup k serveru:",
"key_receiving_info": "Tento klíč se již nebude zobrazovat, ale můžete jej nahradit novým."
},
"timer": {
"sec": "{} sek"
},
"jobs": {
"title": "Seznam pracovních míst",
"start": "Start",
"empty": "Žádná pracovní místa",
"create_user": "Vytvoření uživatele",
"delete_user": "Odstranění uživatele",
"service_turn_off": "Zastavte",
"service_turn_on": "Zapnout",
"job_added": "Přidaná práce",
"run_jobs": "Spouštění úloh",
"reboot_success": "Server se restartuje",
"reboot_failed": "Server se nepodařilo restartovat. Zkontrolujte protokoly aplikace.",
"config_pull_failed": "Nepodařilo se stáhnout aktualizaci konfigurace. Přesto byla spuštěna aktualizace softwaru.",
"upgrade_success": "Zahájena aktualizace serveru",
"upgrade_failed": "Aktualizace serveru nefungovala",
"upgrade_server": "Aktualizace serveru",
"reboot_server": "Restartování serveru",
"create_ssh_key": "Vytvoření klíče SSH pro {}",
"delete_ssh_key": "Odstranění klíče SSH pro {}",
"server_jobs": "Úlohy na serveru",
"reset_user_password": "Obnovení hesla uživatele",
"generic_error": "Nelze se připojit k serveru!"
},
"validations": {
"already_exist": "Již existuje",
"invalid_format": "Nesprávný formát",
"root_name": "Nemůže být 'root'",
"required": "Povinné pole",
"invalid_format_password": "Heslo nesmí obsahovat mezery",
"invalid_format_ssh": "Musí dodržovat formát klíče SSH",
"length_not_equal": "Délka je [], mělo by být {}",
"length_longer": "Délka řetězce [] musí být menší nebo rovna {}"
},
"modals": {
"dns_removal_error": "Nepodařilo se odstranit záznamy DNS.",
"server_deletion_error": "Nepodařilo se odstranit aktivní server.",
"server_validators_error": "Nelze načíst seznam serverů.",
"already_exists": "Takový server již existuje.",
"unexpected_error": "Neočekávaná chyba při umisťování na straně poskytovatele.",
"destroy_server": "Zničit server a vytvořit nový?",
"try_again": "Mám to zkusit znovu?",
"are_you_sure": "Jste si jistý?",
"purge_all_keys": "Vyčistit všechny ověřovací klíče?",
"purge_all_keys_confirm": "Ano, vyčistěte všechny mé žetony",
"delete_server_volume": "Smazat server a svazek?",
"reboot": "Restartovat",
"yes": "Ano",
"no": "Ne",
"volume_creation_error": "Svazek se nepodařilo vytvořit."
},
"support": {
"title": "Podpora SelfPrivacy"
},
"developer_settings": {
"title": "Nastavení vývojáře",
"subtitle": "Tato nastavení slouží pouze k ladění. Neměňte je, pokud nevíte, co děláte.",
"server_setup": "Nastavení serveru",
"use_staging_acme": "Použití testovacího serveru ACME",
"use_staging_acme_description": "Používá se při nastavování nového serveru.",
"routing": "Směrování aplikací",
"reset_onboarding": "Obnovení uvítací vlajky pro návštěvu",
"reset_onboarding_description": "Resetování vypínače pro opětovné zobrazení obrazovky pro zapnutí napájení",
"cubit_statuses": "Stavy nakládky zařízení Cubit",
"ignore_tls": "Nekontrolujte certifikáty TLS",
"ignore_tls_description": "Aplikace nebude při připojování k serveru ověřovat certifikáty TLS."
}
}

View File

@ -23,7 +23,7 @@
"username": "Benutzername",
"loading": "Laden…",
"later": "Überspringen und später einstellen",
"connect_to_existing": "Mit einem existierenden Server verbinden",
"connect_to_existing": "Verbinde mit einem existierenden SelfPrivacy Server!",
"reset": "Zurücksetzen",
"details": "Einzelheiten",
"no_data": "Keine Daten",
@ -33,28 +33,26 @@
"continue": "Fortfahren",
"alert": "Alarm",
"services_title": "Ihre persönliche, private und unabhängige Dienste.",
"apply": "Anwenden"
"apply": "Anwenden",
"app_name": "SelfPrivacy",
"copied_to_clipboard": "Zur Zwischenablage kopiert!",
"please_connect": "Bitte stellen sie eine Verbindung zu ihrem Server, Domain und DNS Betreiber her um zu beginnen!",
"network_error": "Netzwerkfehler"
},
"more_page": {
"configuration_wizard": "Setup-Assistent",
"about_project": "Über uns",
"about_application": "Über",
"onboarding": "Onboarding",
"create_ssh_key": "Superuser SSH Schlüssel",
"console": "Konsole",
"application_settings": "Anwendungseinstellungen"
"create_ssh_key": "Superuser SSH Schlüssel"
},
"console_page": {
"title": "Konsole",
"waiting": "Warten auf Initialisierung…"
},
"about_us_page": {
"title": "Über uns"
"waiting": "Warten auf Initialisierung…",
"copy": "Kopieren"
},
"about_application_page": {
"title": "Über",
"application_version_text": "Anwendungsversion v.{}",
"api_version_text": "Server API Version v.{}",
"application_version_text": "Anwendungsversion",
"api_version_text": "Server API Version",
"privacy_policy": "Datenschutzerklärung"
},
"application_settings": {
@ -62,18 +60,444 @@
"dark_theme_title": "Dunkles Thema",
"dark_theme_description": "Ihr Anwendungsdesign wechseln",
"reset_config_title": "Anwendungseinstellungen zurücksetzen",
"reset_config_description": "API Sclüssel und root Benutzer zurücksetzen",
"reset_config_description": "API Sclüssel und root Benutzer zurücksetzen.",
"delete_server_title": "Server löschen",
"delete_server_description": "Das wird Ihren Server löschen. Es wird nicht mehr zugänglich sein."
"delete_server_description": "Das wird Ihren Server löschen. Es wird nicht mehr zugänglich sein.",
"system_dark_theme_title": "Standard-Systemthema",
"system_dark_theme_description": "Verwenden Sie je nach Systemeinstellungen ein helles oder dunkles Thema",
"dangerous_settings": "Gefährliche Einstellungen"
},
"ssh": {
"title": "SSH Schlüssel",
"create": "SSH Schlüssel erstellen",
"delete": "SSH Schlüssel entfernen",
"delete_confirm_question": "Sind Sie sicher, dass Sie SSH SChlüssel entfernen wollen?",
"subtitle_with_keys": "{} Schlüssel",
"subtitle_without_keys": "Keine Slüssel",
"no_key_name": "Unbennanter Schlüssel",
"root_title": "Das sind superuser Schlüsseln"
"root_title": "Das sind superuser Schlüsseln",
"root_subtitle": "Besitzer dieser Schlüssel erhalten vollen Zugriff auf den Server und können alles darauf tun. Fügen Sie dem Server nur Ihre eigenen Schlüssel hinzu.",
"input_label": "Öffentlicher ED25519, ECDSA oder RSA Schlüssel"
},
"onboarding": {
"page2_server_provider_text": "Ein Serveranbieter unterhält Ihren Server in einem eigenen Rechenzentrum. SelfPrivacy verbindet sich automatisch mit dem Anbieter und richtet alle notwendigen Dinge ein.",
"page1_title": "Digitale Unabhägigkeit ist für jeden von uns verfügbar",
"page1_text": "E-Mail, VPN, Messenger, soziales Netzwerk und viel mehr auf Ihrem privaten Server unter Ihrer Kontrolle.",
"page2_title": "SelfPrivacy ist keine Cloud, sondern Ihr perönliches Rechenzentrum",
"page2_text": "SelfPrivacy funktioniert nur mit Providern Ihrer Wahl. Wenn Sie dort keine erforderlichen Konten haben, helfen wir Ihnen, sie zu erstellen.",
"page2_server_provider_title": "Serveranbieter",
"page2_dns_provider_title": "DNS-Provider",
"page2_backup_provider_title": "Backup-Provider",
"page2_dns_provider_text": "Sie brauchen einen Domainnamen, um im Internet zu sein. Sie benötigen außerdem einen zuverlässigen DNS-Provider, damit die Domain auf ihren Server verweist. Wir empfehlen Ihnen, einen unterstützten DNS-Anbieter auszuwählen, um das Netzwerk automatisch einzurichten. Wollen Sie es manuell einstellen? Das geht auch.",
"page2_backup_provider_text": "Was ist, wenn etwas mit Ihrem Server passiert? Stellen Sie sich einen Hackerangriff, eine versehentliche Datenlöschung oder DOS-Angriff vor? Ihre Daten werden bei Ihrem Anbieter von Backups sicher aufbewahrt. Sie werden sicher verschlüsselt und sind jederzeit zugänglich, um Ihren Server damit wiederherzustellen."
},
"resource_chart": {
"month": "Monat",
"day": "Tag",
"hour": "Stunde",
"cpu_title": "CPU Auslastung",
"network_title": "Netzwerknutzung",
"in": "Empfangen",
"out": "Gesendet"
},
"server": {
"card_title": "Server",
"description": "Dies ist ein virtueller Computer, auf dem alle Ihre Dienste ausgeführt werden",
"general_information": "Allgemeine Information",
"resource_usage": "Ressourcenverwendung",
"allow_autoupgrade": "Automatische Aktualisierung erlauben",
"allow_autoupgrade_hint": "Automatische Installation der Updates auf dem Server erlauben",
"reboot_after_upgrade": "Neustart nach der Aktualisierung",
"reboot_after_upgrade_hint": "Automatisch den Server neustarten nach der Anwendung der Aktualisierungen",
"server_timezone": "Server Zeitzone",
"select_timezone": "Zeitzone auswählen",
"timezone_search_bar": "Zeitzonenname oder Zeitverschiebungswert",
"server_id": "Server ID",
"status": "Status",
"cpu": "CPU",
"ram": "Arbeitsspeicher",
"disk": "Festplatte",
"monthly_cost": "Monatliche Kosten",
"location": "Standort",
"core_count": {
"one": "{} Kern",
"two": "{} Kerne",
"few": "{} Kerne",
"many": "{} Kerne",
"other": "{} Kerne"
},
"server_provider": "Serverprovider",
"dns_provider": "DNS-Provider",
"pricing_error": "Konnte Providerpreise nicht abrufen"
},
"domain": {
"screen_title": "Domäne und DNS",
"ok": "Einträge sind in Ordnung",
"error": "Probleme gefunden",
"error_subtitle": "Tippen sie hier, um sie zu beheben. Dadurch werden auch benutzerdefinierte DNS-Einträge entfernt.",
"uninitialized": "Daten sind noch nicht vorhanden",
"services_title": "Dienste",
"email_title": "E-Mail",
"email_subtitle": "Für sicheren E-Mail-Austauch benötigte Einträge.",
"update_list": "Liste aktualisieren",
"card_title": "Domäne",
"refreshing": "Aktualisiere Status…",
"services_subtitle": "Einträge vom Typ \"A\", die für jeden Dienst erfordelich sind."
},
"backup": {
"card_title": "Backup",
"description": "Retten Sie im Falle eines Hackerangriffs, Serverlöschung usw.",
"reupload_key": "Erneutes hochladen des Schlüssels erzwingen",
"reuploaded_key": "Schlüssel auf dem Server wurde Aktualisiert",
"initialize": "Initialisieren",
"restore": "Von der Sicherungskopie wiederherstellen",
"no_backups": "Backups sind noch nicht vorhanden",
"create_new": "Neuen Backup erstellen",
"restore_alert": "Sie sind dabei die am {} erstellten Backup wiederherzutellen. Alle aktuelle Daten gehen dabei verloren. Sind Sie sicher?",
"refresh": "Status Aktualisieren",
"refetch_backups": "Backupliste neuladen",
"refetching_list": "In wenigen Minuten wird die Liste neugeladen",
"card_subtitle": "Backups verwalten",
"refetch_backups_subtitle": "Cache überprüfen und Daten vom Speicherprovider neu abrufen. Könnte zusätzliche Kosten verursachen.",
"reupload_key_subtitle": "Weist den Server an den Backup-Speicher neu zu initialisieren. Falls etwas kaputt ist",
"select_all": "Alles backupen",
"create_new_select_heading": "Wähle aus, was zum Backup dazugehören soll",
"show_more": "Mehr anzeigen",
"start": "Backup starten",
"service_busy": "Eine andere Backupoperation wird ausgeführt",
"latest_snapshots": "Neuster Snapshot",
"latest_snapshots_subtitle": "Zeige die letzten 15 Snapshots",
"autobackup_period_title": "Automatische Backup-Zeitspanne",
"autobackup_period_subtitle": "Backups werden jede {period} angelegt",
"autobackup_period_never": "Automatische Backups sind deaktiviert",
"autobackup_period_every": "Jede {period}",
"autobackup_period_disable": "Automatische Backups deaktivieren",
"autobackup_set_period": "Setze Zeitraum",
"backups_encryption_key": "Verschlüsselungsschlüssel",
"backups_encryption_key_subtitle": "Bewahre es gut auf.",
"backups_encryption_key_copy": "Kopiere den Verschlüselungsschlüssel",
"backups_encryption_key_show": "Zeige den Verschlüsselungschlüssel",
"pending_jobs": "Backup Arbeiten werden ausgeführt",
"backups_encryption_key_description": "Dieser Schlüssel wird verwendet um ihre Backups zu verschlüsseln. Wenn sie ihn verlieren, wird es ihnen unmöglich ihre Backups wieder herzustellen.\nBitte bewahren sie ihn an einem sicheren Ort auf, da sie ihn benötigen sofern sie einmal ihre Backups manuell wiederherstellen müssen.",
"snapshot_modal_service_not_found": "Dies ist ein Snapshot von einem Service den sie nicht mehr auf ihrem Server haben. Normalerweise sollte dies nicht passieren, und wir können keine automatische Wiederherstellung durchführen. Sie können den Snapshot immer noch herunterladen und manuell wiederherstellen. Kontaktieren sie den SelfPrivacy Support, wenn sie Hilfe brauchen.",
"snapshot_modal_download_verify_option_description": "Niedrigeres Risiko, aber es wird mehr freier Speicherplatz benötigt. Lädt den vollständigen Snapshot in den temporären Speicher, verifiziert ihn und ersetzt dann die vorhandenen Daten.",
"snapshots_title": "Snapshot Liste",
"snapshot_service_title": "Service",
"snapshot_creation_time_title": "Zeit der Erstellung",
"snapshot_id_title": "Snapshot ID",
"snapshot_modal_select_strategy": "Wähle die Wiederherstellungsstrategie",
"snapshot_modal_download_verify_option_title": "Herunterladen, verifizieren und dann ersetzen",
"backups_encryption_key_not_found": "Verschlüsselungscode noch nicht gefunden, bitte versuchen sie es später noch einmal.",
"forget_snapshot": "Vergiss diesen Snapshot",
"forget_snapshot_alert": "Sie sind im Begriff dazu diesen Snapshot zu löschen. Sind sie sicher? Diese Aktion kann nicht rückgängig gemacht werden.",
"forget_snapshot_error": "Dieser Snapshot konnte nicht vergessen werden",
"snapshot_modal_heading": "Snapshot Details",
"snapshot_modal_inplace_option_title": "An Ort und Stelle ersetzen",
"snapshot_modal_inplace_option_description": "Weniger freier Speicherplatz benötigt, aber höheres Risiko. Ersetzt die vorhanden Daten, während dem Herunterladen, mit den Daten des Snapshots.",
"snapshot_reason_title": "Erzeugungsgrund",
"restore_started": "Wiederherstellung gestartet, prüfe den aktuellen Status der Jobliste",
"snapshot_reasons": {
"auto": "Automatisch erzeugt",
"unknown": "Unbekannt"
}
},
"storage": {
"card_title": "Serverspeicher",
"status_ok": "Die Festplattennutzung ist in Ordnung",
"status_error": "Geringer Speicherplatz",
"disk_usage": "{} belegt",
"disk_total": "{} insgesamt · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Byte",
"extend_volume_button": "Speicher erweitern",
"extending_volume_title": "Speichererweiterung",
"extending_volume_description": "Durch die Speichererweiterung können Sie mehr Daten auf Ihrem Server speichern, ohne den Server selbst zu erweitern. Speicher kann nur erweitert werden, Verringerung ist nicht möglich.",
"extending_volume_error": "Speichererweiterung konnte nicht initialisiert werden.",
"size": "Größe",
"data_migration_title": "Datenmigration",
"data_migration_notice": "Während der Migration werden alle Dienste ausgeschaltet.",
"start_migration_button": "Migration starten",
"extending_volume_price_info": "Der Preis enthält die gesetzliche Mehrwertsteuer und wird geschätzt nach den Preisangaben die ihr Serverbetreiber bereitstellt. Der Server wird nach der Größenänderung neu gestartet."
},
"not_ready_card": {
"in_menu": "Server ist noch nicht eingerichtet. Bitte beenden Sie die Einrichtung mit dem Einrichtungsassistenten, um fortzufahren."
},
"service_page": {
"enable": "Dienst aktivieren",
"status": {
"deactivating": "Wird deaktiviert",
"active": "In Betrieb",
"inactive": "Gestoppt",
"failed": "Fehler beim Starten",
"off": "Deaktiviert",
"activating": "Wird aktiviert",
"reloading": "Wird neugestartet"
},
"open_in_browser": "Im Browser öffnen",
"restart": "Dienst neustarten",
"disable": "Dienst ausschalten",
"move": "Zu einer anderen Festplatte wechseln",
"uses": "Belegt {usage} auf {volume}"
},
"mail": {
"login_info": "Verwenden Sie den Benutzernamen und das Passwort von dem Benutzertab. IMAP-Port ist 143 mit STARTTLS, SMTP-Port ist 587 mit STARTTLS."
},
"password_manager": {
"login_info": "Ihr Konto müssen Sie auf der Webseite erstellen."
},
"modals": {
"unexpected_error": "Unerwarteter Fehler beim Platzieren von Seiten des Anbieters.",
"delete_server_volume": "Server und Speicher löschen?",
"dns_removal_error": "DNS-Einträge konnten nicht entfernt werden.",
"server_deletion_error": "Aktiver Server konnte nicht gelöscht werden.",
"server_validators_error": "Verfügbare Server konnten nicht abgerufen werden.",
"already_exists": "Ein solcher Server existiert bereits.",
"destroy_server": "Den Server zerstören und einen neuen erstellen?",
"try_again": "Nochmal versuchen?",
"are_you_sure": "Sind Sie sicher?",
"purge_all_keys": "Alle Authentifizierungsschlüssel löschen?",
"purge_all_keys_confirm": "Ja, alle meine Token löschen",
"reboot": "Neustarten",
"yes": "Ja",
"no": "Nein",
"volume_creation_error": "Volume konnte nicht erstellt werden."
},
"jobs": {
"create_user": "Benutzer erstellen",
"service_turn_on": "Starten",
"reboot_success": "Server wird neugestartet",
"reboot_failed": "Der Server konnte nicht neugestartet werden. Überprüfen Sie die Logs der Anwendung.",
"create_ssh_key": "SSH-Schlüssel erstellen für {}",
"generic_error": "Es konnte keine Verbindung zum Server hergestellt werden!",
"delete_user": "Benutzer löschen",
"service_turn_off": "Abschalten",
"job_added": "Aufgabe hinzugefügt",
"run_jobs": "Aufgaben ausführen",
"title": "Aufgaben",
"start": "Starten",
"empty": "Keine Aufgaben",
"config_pull_failed": "Konfigurationsaktualisierung konnte nicht ausgeführt werden. Software-Aktualisierung trotzdem gestartet.",
"upgrade_success": "Serveraktualisierung gestartet",
"upgrade_failed": "Serveraktualisierung fehlgeschlagen",
"upgrade_server": "Server aktualisieren",
"reboot_server": "Server neustarten",
"delete_ssh_key": "SSH-Schlüssel löschen für {}",
"server_jobs": "Aufgaben auf dem Server",
"reset_user_password": "Passwort des Benutzers zurücksetzen"
},
"initializing": {
"locations_not_found": "Oops!",
"backblaze_bad_key_error": "Die Backblaze-Speicherinformationen sind ungültig",
"select_dns": "Lassen Sie uns nun einen DNS-Provider auswählen",
"use_this_domain": "Diese Domäne verwenden?",
"use_this_domain_text": "Das von Ihnen bereitgestellte Token gewährt Zugriff auf die folgende Domäne",
"no_connected_domains": "Derzeit keine verbundenen Domains",
"loading_domain_list": "Domänenliste wird geladen",
"save_domain": "Domäne speichern",
"final": "Letzter Schritt",
"create_server": "Server erstellen",
"select_provider_countries_text_do": "USA, Niederlande, Singapur, Großbritannien, Deutschland, Kanada, Indien, Australien",
"select_provider_price_text_do": "17 Dollar pro Monat für einen relativ kleinen Server und 50 GB Festplattenspeicher",
"connect_to_server_provider_text": "Mit dem API-Token kann SelfPrivacy eine Maschine mieten und Ihren Server darauf einrichten",
"choose_location_type_text": "Unterschiedliche Standorte bieten unterschiedliche Serverkonfigurationen, Preise und Verbindungsgeschwindigkeiten.",
"choose_server_type_text": "Unterschiedliche Ressourcenfunktionen unterstützen unterschiedliche Dienste. Keine Sorge, Sie können Ihren Server jederzeit erweitern",
"one_more_restart": "Noch ein Neustart, um Ihre Sicherheitszertifikate anzuwenden.",
"checks": "Überprüfungen sind abgeschlossen \n{} aus {}",
"connect_to_server": "Beginnen wir mit einem Server.",
"select_provider": "Wählen Sie einen beliebigen Anbieter aus der folgenden Liste aus, sie alle unterstützen SelfPrivacy",
"select_provider_notice": "Mit „relativ klein“ meinen wir eine Maschine mit 2 CPU-Kernen und 2 Gigabyte RAM.",
"select_provider_countries_title": "verfügbare Länder",
"select_provider_countries_text_hetzner": "Deutschland, Finnland, USA",
"select_provider_price_title": "Durchschnittspreis",
"select_provider_price_text_hetzner": "8 Euro pro Monat für einen relativ kleinen Server und 50 GB Festplattenspeicher",
"select_provider_payment_title": "Zahlungsarten",
"select_provider_payment_text_hetzner": "Kreditkarten, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Kreditkarten, Google Pay, PayPal",
"select_provider_email_notice": "E-Mail-Hosting ist für Neukunden nicht verfügbar. Es wird jedoch freigeschaltet, sobald Sie Ihre erste Zahlung abgeschlossen haben.",
"select_provider_site_button": "Webseite besuchen",
"connect_to_server_provider": "Anmelden bei ",
"how": "So erhalten Sie ein API-Token",
"provider_bad_key_error": "Der API-Schlüssel des Anbieters ist ungültig",
"could_not_connect": "Es konnte keine Verbindung zum Anbieter hergestellt werden.",
"choose_location_type": "Wo möchten Sie Ihren Server mieten?",
"locations_not_found_text": "An diesem Standort stehen keine Server zum Mieten zur Verfügung",
"back_to_locations": "Wählen Sie einen anderen aus",
"no_locations_found": "Keine verfügbaren Standorte gefunden, stellen Sie sicher, dass auf Ihr Konto zugegriffen werden kann",
"choose_server_type": "Welche Art von Server benötigen Sie?",
"choose_server_type_notice": "Die wichtigsten Dinge, die man sich ansehen sollte, sind CPU und RAM. Die Daten Ihrer Dienste werden auf einem leicht erweiterbaren und separat zu zahlenden Datenträger gespeichert.",
"choose_server_type_ram": "{} GB Arbeitsspeicher",
"choose_server_type_storage": "{} GB Systemspeicher",
"choose_server_type_payment_per_month": "{} pro Monat",
"what": "Was bedeutet das?",
"server_rebooted": "Server neugestartet. Warten auf die letzte Bestätigung…",
"server_started": "Server gestartet. Es wird jetzt validiert und neugestartet…",
"server_created": "Server erstellt. DNS-Prüfungen und Server starten…",
"until_the_next_check": "Bis zur nächsten Überprüfung: ",
"check": "Überprüfung",
"create_master_account": "Hauptkonto erstellen",
"enter_username_and_password": "Geben Sie den Benutzernamen und ein gutes Passwort ein",
"steps": {
"hosting": "Hosting",
"server_type": "Server-Typ",
"dns_provider": "DNS-Anbieter",
"backups_provider": "Sicherungskopien",
"domain": "Bereich",
"master_account": "Hauptkonto",
"server": "Server",
"dns_setup": "DNS-Einrichtung",
"nixos_installation": "NixOS-Installation",
"server_reboot": "Server-Neustart",
"final_checks": "Endgültige Kontrollen"
},
"dns_provider_bad_key_error": "Der API-Schlüssel ist ungültig",
"connect_to_dns": "Verbinden Sie den DNS-Anbieter",
"select_provider_price_free": "Kostenlos"
},
"validations": {
"length_not_equal": "Länge ist [], sollte {} sein",
"required": "Erforderlich",
"already_exist": "Ist bereits vorhanden",
"invalid_format": "Ungültiges Format",
"invalid_format_password": "Das Passwort darf keine Leerzeichen enthalten",
"invalid_format_ssh": "Muss dem SSH-Schlüsselformat entsprechen",
"root_name": "Benutzername darf nicht root sein",
"length_longer": "Länge ist [], sollte kürzer oder gleich {} sein"
},
"users": {
"could_not_create_user": "Benutzer konnte nicht erstellt werden",
"could_not_delete_user": "Benutzer konnte nicht gelöscht werden",
"could_not_add_ssh_key": "SSH-Schlüssel konnte nicht hinzugefügt werden",
"username_rule": "Der Benutzername darf nur lateinische Kleinbuchstaben, Ziffern und Unterstriche enthalten und darf nicht mit einer Ziffer beginnen",
"no_ssh_notice": "Für diesen Benutzer werden nur E-Mail- und SSH-Konten erstellt. Single Sign On für alle Dienste ist in Kürze verfügbar.",
"add_new_user": "Fügen Sie den ersten Benutzer hinzu",
"new_user": "Neuer Benutzer",
"delete_user": "Benutzer löschen",
"nobody_here": "Hier werden Benutzer angezeigt",
"login": "Login",
"new_user_info_note": "Neuen Benutzern wird automatisch Zugang zu allen Diensten gewährt",
"delete_confirm_question": "Sind Sie sicher?",
"reset_password": "Passwort zurücksetzen",
"account": "Konto",
"could_not_fetch_users": "Benutzerliste konnte nicht abgerufen werden",
"could_not_fetch_description": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut",
"refresh_users": "Benutzerliste aktualisieren",
"email_login": "E-Mail-Anmeldung",
"details_title": "Angaben zum Benutzer"
},
"devices": {
"main_screen": {
"header": "Geräte",
"description": "Diese Geräte haben über die SelfPrivacy-App vollen Zugriff auf den Server.",
"this_device": "Dieses Gerät",
"other_devices": "Andere Geräte",
"authorize_new_device": "Neues Gerät autorisieren",
"access_granted_on": "Zugriff gewährt auf {}",
"tip": "Tippen Sie auf das Gerät, um den Zugriff zu widerrufen."
},
"add_new_device_screen": {
"header": "Neues Gerät autorisieren",
"expired": "Der Schlüssel ist nicht mehr gültig.",
"description": "Geben Sie den Schlüssel auf dem Gerät ein, das Sie autorisieren möchten:",
"please_wait": "Bitte warten",
"tip": "Der Schlüssel ist 10 Minuten gültig.",
"get_new_key": "Neuen Schlüssel erhalten"
},
"revoke_device_alert": {
"header": "Zugangsberechtigung aufheben?",
"description": "Das Gerät {} hat auf den Server keinen Zugriff mehr.",
"yes": "Widerrufen",
"no": "Abbrechen"
}
},
"recovering": {
"domain_recovery_description": "Geben Sie eine Serverdomäne ein, für die Sie Zugriff erhalten möchten:",
"method_device_description": "Öffnen Sie die Anwendung auf einem anderen Gerät und gehen Sie dann zur Geräteseite. Drücken Sie auf „Gerät hinzufügen“, um Ihren Token zu erhalten.",
"fallback_select_token_copy": "Kopie des Authentifizierungstokens von einer anderen Version der Anwendung.",
"provider_connected_description": "Kommunikation hergestellt. Eingabe Ihres Tokens Token mit Zugriff auf {}:",
"choose_server_description": "Wir konnten nicht herausfinden, mit welchem Server Sie sich verbinden möchten.",
"modal_confirmation_dns_invalid": "Reverse DNS zeigt auf eine andere Domain",
"generic_error": "Vorgang fehlgeschlagen, bitte versuchen Sie es erneut.",
"recovery_main_header": "Verbindung zu einem vorhandenen Server herstellen",
"domain_recover_placeholder": "Ihre Domain",
"domain_recover_error": "Server mit dieser Domain wurde nicht gefunden",
"method_select_description": "Wählen Sie eine Wiederherstellungsmethode aus:",
"method_select_other_device": "Ich habe Zugriff auf einem anderen Gerät",
"method_select_recovery_key": "Ich habe einen Wiederherstellungsschlüssel",
"method_select_nothing": "Ich habe nichts davon",
"method_device_button": "Ich habe mein Token erhalten",
"method_device_input_description": "Geben Sie Ihr Autorisierungstoken ein",
"method_device_input_placeholder": "Token",
"method_recovery_input_description": "Geben Sie Ihren Wiederherstellungsschlüssel ein",
"fallback_select_description": "Was genau haben Sie? Wählen Sie die erste verfügbare Option:",
"fallback_select_root_ssh": "Root-SSH-Zugriff auf den Server.",
"fallback_select_provider_console": "Zugang zur Serverkonsole meines Providers.",
"authorization_failed": "Anmeldung mit diesem Schlüssel nicht möglich",
"fallback_select_provider_console_hint": "Zum Beispiel: Hetzner.",
"provider_connected": "Verbinden Sie sich mit Ihrem {}",
"provider_connected_placeholder": "Token des {}",
"confirm_server": "Server bestätigen",
"confirm_server_description": "Server gefunden! Bestätigen Sie, dass es das Richtige ist:",
"confirm_server_accept": "Ja! Das ist es",
"confirm_server_decline": "Einen anderen Server wählen",
"choose_server": "Wählen Sie Ihren Server",
"no_servers": "Auf Ihrem Konto sind keine Server verfügbar.",
"domain_not_available_on_token": "Die ausgewählte Domäne ist auf diesem Token nicht verfügbar.",
"modal_confirmation_title": "Ist es wirklich Ihr Server?",
"modal_confirmation_description": "Wenn Sie sich mit einem falschen Server verbinden, können Sie alle Ihre Daten verlieren.",
"modal_confirmation_dns_valid": "Reverse DNS ist gültig",
"modal_confirmation_ip_valid": "Die IP ist die gleiche wie im DNS-Eintrag",
"modal_confirmation_ip_invalid": "Die IP ist nicht dieselbe wie im DNS-Eintrag"
},
"recovery_key": {
"key_connection_error": "Es konnte keine Verbindung zum Server hergestellt werden.",
"key_main_description": "Wird für die SelfPrivacy-Autorisierung benötigt, wenn alle Ihre anderen autorisierten Geräte nicht verfügbar sind.",
"key_synchronizing": "Synchronisieren…",
"key_main_header": "Wiederherstellungsschlüssel",
"key_amount_toggle": "Nutzung einschränken",
"key_amount_field_title": "Maximale Anzahl von Nutzungen",
"key_duedate_toggle": "Zeitlich begrenzen",
"key_duedate_field_title": "Ablaufsdatum",
"key_receive_button": "Schlüssel erhalten",
"key_valid": "Ihr Schlüssel ist gültig",
"key_invalid": "Ihr Schlüssel ist nicht mehr gültig",
"key_valid_until": "Gültig bis {}",
"key_valid_for": "Gültig für {} Nutzungen",
"key_creation_date": "Erstellt am {}",
"key_replace_button": "Neuen Schlüssel generieren",
"key_receiving_info": "Der Schlüssel wird nie wieder angezeigt, aber Sie können ihn durch einen anderen ersetzen.",
"key_receiving_done": "Fertig!",
"generation_error": "Wiederherstellungsschlüssel konnte nicht generiert werden. {}",
"key_receiving_description": "Notieren Sie sich diesen Schlüssel und bewahren Sie ihn an einem sicheren Ort auf. Es wird verwendet, um den vollen Zugriff auf Ihren Server wiederherzustellen:"
},
"video": {
"login_info": "Kein Konto erforderlich."
},
"cloud": {
"login_info": "Login für den Administrator ist admin, Passwort ist dasselbe wie bei Ihrem Hauptbenutzer. Erstellen Sie neue Konten in der Nextcloud-Oberfläche."
},
"social_network": {
"login_info": "Sie müssen ein Konto auf der Website erstellen."
},
"git": {
"login_info": "Sie müssen ein Konto auf der Website erstellen. Der erste Benutzer wird zum Administrator."
},
"timer": {
"sec": "{} Sek"
},
"support": {
"title": "SelfPrivacy-Unterstützung"
},
"developer_settings": {
"title": "Einstellungen für Entwickler",
"subtitle": "Diese Einstellungen sind nur für Debugging-Zwecke gedacht. Ändern Sie sie nicht, wenn Sie nicht wissen, was Sie tun.",
"server_setup": "Server-Einrichtung",
"use_staging_acme": "Verwendung des ACME-Testservers",
"use_staging_acme_description": "Wird beim Einrichten eines neuen Servers verwendet.",
"routing": "Anwendungsrouting",
"reset_onboarding": "Setzen Sie die Willkommensflagge für den Besuch zurück",
"reset_onboarding_description": "Zurücksetzen des Netzschalters, um den Einschaltbildschirm erneut aufzurufen",
"cubit_statuses": "Aktueller Status der Ladequbits",
"ignore_tls": "Überprüfen Sie keine TLS-Zertifikate",
"ignore_tls_description": "Die Anwendung validiert TLS-Zertifikate nicht, wenn sie eine Verbindung zum Server herstellt."
}
}

View File

@ -2,6 +2,7 @@
"test": "en-test",
"locale": "en",
"basis": {
"app_name": "SelfPrivacy",
"providers": "Providers",
"providers_title": "Your Data Center",
"select": "Select",
@ -24,7 +25,7 @@
"username": "Username",
"loading": "Loading…",
"later": "Skip to setup later",
"connect_to_existing": "Connect to an existing server",
"connect_to_existing": "I already have a SelfPrivacy server!",
"reset": "Reset",
"details": "Details",
"no_data": "No data",
@ -33,50 +34,65 @@
"apply": "Apply",
"done": "Done",
"continue": "Continue",
"alert": "Alert"
"alert": "Alert",
"copied_to_clipboard": "Copied to clipboard!",
"please_connect": "Please connect your server, domain and DNS provider to dive in!",
"network_error": "Network error"
},
"more_page": {
"configuration_wizard": "Setup wizard",
"about_project": "About us",
"about_application": "About",
"onboarding": "Onboarding",
"create_ssh_key": "Superuser SSH keys",
"console": "Console",
"application_settings": "Application settings"
"create_ssh_key": "Superuser SSH keys"
},
"console_page": {
"title": "Console",
"waiting": "Waiting for initialization…"
},
"about_us_page": {
"title": "About us"
"waiting": "Waiting for initialization…",
"copy": "Copy"
},
"about_application_page": {
"title": "About",
"application_version_text": "Application version v.{}",
"api_version_text": "Server API version v.{}",
"title": "About & support",
"versions": "Versions",
"application_version_text": "Application version",
"api_version_text": "Server API version",
"open_source_licenses": "Open source licenses",
"links": "Links",
"website": "Our website",
"documentation": "Documentation",
"matrix_channel": "Matrix channel",
"telegram_channel": "Telegram channel",
"get_support": "Get support",
"matrix_support_chat": "Matrix support chat",
"telegram_support_chat": "Telegram support chat",
"email_support": "Email support",
"contribute": "Contribute",
"source_code": "Source code",
"bug_report": "Report a bug",
"bug_report_subtitle": "Due to spam, manual account confirmation is required. Contact us in the support chat to activate your account.",
"help_translate": "Help us translate",
"matrix_contributors_chat": "Matrix contributors chat",
"telegram_contributors_chat": "Telegram contributors chat",
"privacy_policy": "Privacy policy"
},
"application_settings": {
"title": "Application settings",
"system_dark_theme_title": "System default theme",
"system_dark_theme_description": "Use light or dark theme depending on system settings",
"dark_theme_title": "Dark theme",
"dark_theme_description": "Switch your application theme",
"dangerous_settings": "Dangerous settings",
"reset_config_title": "Reset application config",
"reset_config_description": "Reset api keys and root user",
"delete_server_title": "Delete server",
"delete_server_description": "This removes your server. It will be no longer accessible."
"reset_config_description": "Resets API keys and root user."
},
"ssh": {
"title": "SSH keys",
"create": "Create SSH key",
"delete": "Delete SSH key",
"delete_confirm_question": "Are you sure you want to delete SSH key?",
"subtitle_with_keys": "{} keys",
"subtitle_without_keys": "No keys",
"no_key_name": "Unnamed key",
"root_title": "These are superuser keys",
"root_subtitle": "Owners of these keys get full access to the server and can do anything on it. Only add your own keys to the server.",
"input_label": "Public ED25519 or RSA key"
"input_label": "Public ED25519, ECDSA or RSA key",
"ssh_disabled_warning": "SSH is disabled. You can enable it in the server settings."
},
"onboarding": {
"page1_title": "Digital independence, available to all of us",
@ -104,12 +120,17 @@
"description": "All your services live here",
"general_information": "General information",
"resource_usage": "Resource usage",
"settings": "Server settings",
"allow_autoupgrade": "Allow auto-upgrade",
"allow_autoupgrade_hint": "Allow automatic packages upgrades on server",
"reboot_after_upgrade": "Reboot after upgrade",
"reboot_after_upgrade_hint": "Reboot without prompt after applying changes on server",
"server_timezone": "Server timezone",
"select_timezone": "Select timezone",
"enable_ssh": "Enable SSH",
"enable_ssh_hint": "Allow SSH access to the server",
"allow_password_authentication": "Allow password authentication for SSH",
"allow_password_authentication_hint": "Allow users to log into your server's shell with a password (does not apply to root user)",
"timezone_search_bar": "Timezone name or time shift value",
"server_id": "Server ID",
"status": "Status",
@ -118,7 +139,9 @@
"disk": "Disk local",
"monthly_cost": "Monthly cost",
"location": "Location",
"provider": "Provider",
"pricing_error": "Couldn't fetch provider prices",
"server_provider": "Server Provider",
"dns_provider": "DNS Provider",
"core_count": {
"one": "{} core",
"two": "{} cores",
@ -127,26 +150,12 @@
"other": "{} cores"
}
},
"record": {
"root": "Root domain",
"api": "SelfPrivacy API",
"cloud": "File cloud",
"git": "Git server",
"meet": "Video conference",
"social": "Social network",
"password": "Password manager",
"vpn": "VPN",
"mx": "MX record",
"dmarc": "DMARC record",
"spf": "SPF record",
"dkim": "DKIM key"
},
"domain": {
"card_title": "Domain",
"screen_title": "Domain and DNS",
"ok": "Records are OK",
"error": "Problems found",
"error_subtitle": "Tap here to fix them",
"error_subtitle": "Tap here to fix them. This will also remove custom records.",
"refreshing": "Refreshing status…",
"uninitialized": "Data is not retrieved yet",
"services_title": "Services",
@ -157,21 +166,120 @@
},
"backup": {
"card_title": "Backup",
"card_subtitle": "Manage your backups",
"description": "Will save your day in case of incident: hackers attack, server deletion, etc.",
"reupload_key": "Force reupload key",
"reuploaded_key": "Key reuploaded",
"reupload_key_subtitle": "Will instruct the server to initialize backup storage again. Use if something is broken.",
"initialize": "Initialize",
"waiting_for_rebuild": "You will be able to create your first backup in a few minutes.",
"restore": "Restore from backup",
"no_backups": "There are no backups yet",
"create_new": "Create a new backup",
"creating": "Creating a new backup: {}%",
"restoring": "Restoring from backup",
"error_pending": "Server returned error, check it below",
"restore_alert": "You are about to restore from backup created on {}. All current data will be lost. Are you sure?",
"refresh": "Refresh status",
"refetch_backups": "Refetch backup list",
"refetching_list": "In a few minutes list will be updated"
"refetch_backups_subtitle": "Invalidate cache and refetch data from your storage provider. May cause additional charges.",
"refetching_list": "In a few minutes list will be updated",
"select_all": "Backup everything",
"create_new_select_heading": "Select what to backup",
"start": "Start backup",
"service_busy": "Another backup operation is in progress",
"latest_snapshots": "Latest snapshots",
"latest_snapshots_subtitle": "Showing last 15 snapshots",
"show_more": "Show more",
"autobackup_period_title": "Automatic backups period",
"autobackup_period_subtitle": "Backups created every {period}",
"autobackup_period_never": "Automatic backups are disabled",
"autobackup_period_every": "Every {period}",
"autobackup_period_disable": "Disable automatic backups",
"autobackup_set_period": "Set period",
"backups_encryption_key": "Encryption key",
"backups_encryption_key_subtitle": "Keep it in a safe place.",
"backups_encryption_key_copy": "Copy the encryption key",
"backups_encryption_key_show": "Show the encryption key",
"backups_encryption_key_description": "This key is used to encrypt your backups. If you lose it, you will not be able to restore your backups. Keep it in a safe place, as it will be useful if you ever need to restore from backups manually.",
"backups_encryption_key_not_found": "Encryption key not found yet, please try again later.",
"pending_jobs": "Currently running backup jobs",
"snapshots_title": "Snapshot list",
"forget_snapshot": "Forget snapshot",
"forget_snapshot_alert": "You are about to delete this snapshot. Are you sure? This action usually cannot be undone.",
"forget_snapshot_error": "Couldn't forget snapshot",
"snapshot_modal_heading": "Snapshot details",
"snapshot_service_title": "Service",
"snapshot_creation_time_title": "Creation time",
"snapshot_id_title": "Snapshot ID",
"snapshot_modal_select_strategy": "Select the restore strategy",
"snapshot_modal_download_verify_option_title": "Download, verify and then replace",
"snapshot_modal_download_verify_option_description": "Less risk, but more free space needed. Downloads entire snapshot to the temporary storage, verifies it and then replaces the current data.",
"snapshot_modal_inplace_option_title": "Replace in place",
"snapshot_modal_inplace_option_description": "Less free space needed, but more risk. Replaces current data with the snapshot data during the download.",
"snapshot_modal_service_not_found": "This is a snapshot of a service you don't have on your server anymore. Usually this shouldn't happen, and we cannot do the automatic restore. You can still download the snapshot and restore it manually. Contact SelfPrivacy support if you need help.",
"restore_started": "Restore started, check the jobs list for the current status",
"snapshot_reason_title": "Creation reason",
"snapshot_reasons": {
"auto": "Created automatically",
"explicit": "Created by your explicit request",
"pre_restore": "Created as a precaution before risky restore",
"unknown": "Unknown"
},
"rotation_quotas_title": "Snapshot rotation settings",
"set_rotation_quotas": "Set new rotation quotas",
"quotas_only_applied_to_autobackups": "These settings are only applied to automatic backups. Manual backups won't get deleted.",
"quota_titles": {
"last": "How many latest backups to keep",
"daily": "How many daily backups to keep",
"weekly": "How many weekly backups to keep",
"monthly": "How many monthly backups to keep",
"yearly": "How many yearly backups to keep"
},
"quota_subtitles": {
"no_effect": "This rule has no effect because another rule will keep more backups",
"last": {
"zero": "Rule is disabled",
"one": "Last {} backup will be kept regardless of its age",
"two": "Last {} backups will be kept regardless of their age",
"few": "Last {} backups will be kept regardless of their age",
"many": "Last {} backups will be kept regardless of their age",
"other": "Last {} backups will be kept regardless of their age"
},
"last_infinite": "All backups will be kept",
"daily": {
"zero": "Rule is disabled",
"one": "Last {} daily backup will be kept",
"two": "Last {} daily backups will be kept",
"few": "Last {} daily backups will be kept",
"many": "Last {} daily backups will be kept",
"other": "Last {} daily backups will be kept"
},
"daily_infinite": "All daily backups will be kept",
"weekly": {
"zero": "Rule is disabled",
"one": "Last {} weekly backup will be kept",
"two": "Last {} weekly backups will be kept",
"few": "Last {} weekly backups will be kept",
"many": "Last {} weekly backups will be kept",
"other": "Last {} weekly backups will be kept"
},
"weekly_infinite": "All weekly backups will be kept",
"monthly": {
"zero": "Rule is disabled",
"one": "Last {} monthly backup will be kept",
"two": "Last {} monthly backups will be kept",
"few": "Last {} monthly backups will be kept",
"many": "Last {} monthly backups will be kept",
"other": "Last {} monthly backups will be kept"
},
"monthly_infinite": "All monthly backups will be kept",
"yearly": {
"zero": "Rule is disabled",
"one": "Last {} yearly backup will be kept",
"two": "Last {} yearly backups will be kept",
"few": "Last {} yearly backups will be kept",
"many": "Last {} yearly backups will be kept",
"other": "Last {} yearly backups will be kept"
},
"yearly_infinite": "All yearly backups will be kept"
}
},
"storage": {
"card_title": "Server Storage",
@ -186,26 +294,31 @@
"extend_volume_button": "Extend volume",
"extending_volume_title": "Extending volume",
"extending_volume_description": "Resizing volume will allow you to store more data on your server without extending the server itself. Volume can only be extended: shrinking is not possible.",
"extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by Hetzner. Server will be rebooted after resizing.",
"extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by your server provider. Server will be rebooted after resizing.",
"extending_volume_error": "Couldn't initialize volume extending.",
"extending_volume_started": "Volume extending started",
"extending_volume_provider_waiting": "Provider volume resized, waiting 10 seconds…",
"extending_volume_server_waiting": "Server volume resized, waiting 20 seconds…",
"extending_volume_rebooting": "Rebooting server…",
"extending_volume_modal_description": "Upgrade to {} for {} plan per month.",
"size": "Size",
"euro": "Euro",
"price": "Price",
"data_migration_title": "Data migration",
"data_migration_notice": "During migration all services will be turned off.",
"start_migration_button": "Start migration",
"migration_process": "Migrating…",
"migration_done": "Finish"
"start_migration_button": "Start migration"
},
"not_ready_card": {
"in_menu": "Server is not set up yet. Please finish setup using setup wizard for further work."
},
"service_page": {
"nothing_here": "Nothing here",
"open_in_browser": "Open in browser",
"restart": "Restart service",
"disable": "Disable service",
"enable": "Enable service",
"move": "Move to another volume",
"uses": "Uses {usage} on {volume}",
"snapshots": "Backup snapshots",
"status": {
"active": "Up and running",
"inactive": "Stopped",
@ -217,51 +330,34 @@
}
},
"mail": {
"title": "E-Mail",
"subtitle": "E-Mail for company and family.",
"login_info": "Use username and password from users tab. IMAP port is 143 with STARTTLS, SMTP port is 587 with STARTTLS."
},
"password_manager": {
"title": "Password Manager",
"subtitle": "Base of your security. Bitwarden will help you to create, store and move passwords between devices, as well as input them, when requested using autocompletion.",
"login_info": "You will have to create an account on the website."
},
"video": {
"title": "Videomeet",
"subtitle": "Zoom and Google Meet are good, but Jitsi Meet is a worth alternative that also gives you confidence that you're not being listened.",
"login_info": "No account needed."
},
"cloud": {
"title": "Cloud Storage",
"subtitle": "Do not allow cloud services to read your data by using NextCloud.",
"login_info": "Login is admin, password is the same as with your main user. Create new accounts in Nextcloud interface."
},
"social_network": {
"title": "Social Network",
"subtitle": "It's hard to believe, but it became possible to create your own social network, with your own rules and target audience.",
"login_info": "You will have to create an account on the website."
},
"git": {
"title": "Git Server",
"subtitle": "Private alternative to the Github, that belongs to you, but not a Microsoft.",
"login_info": "You will have to create an account on the website. First user will become an admin."
},
"vpn": {
"title": "VPN Server",
"subtitle": "Private VPN server"
},
"users": {
"details_title": "User details",
"add_new_user": "Add a first user",
"new_user": "New user",
"delete_user": "Delete user",
"not_ready": "Please connect server, domain and DNS in the Providers tab, to be able to add a first user",
"nobody_here": "Nobody here",
"login": "Login",
"new_user_info_note": "New user will automatically be granted an access to all of the services",
"delete_confirm_question": "Are you sure?",
"reset_password": "Reset password",
"account": "Account",
"send_registration_data": "Share login credentials",
"could_not_fetch_users": "Couldn't fetch users list",
"could_not_fetch_description": "Please check your internet connection and try again",
"refresh_users": "Refresh users list",
@ -270,7 +366,8 @@
"could_not_add_ssh_key": "Couldn't add SSH key",
"username_rule": "Username must contain only lowercase latin letters, digits and underscores, should not start with a digit",
"email_login": "Email login",
"no_ssh_notice": "Only email and SSH accounts are created for this user. Single Sign On for all services is coming soon."
"no_ssh_notice": "Only email and SSH accounts are created for this user. Single Sign On for all services is coming soon.",
"user_already_exists": "User with such username already exists"
},
"initializing": {
"connect_to_server": "Let's start with a server.",
@ -280,6 +377,7 @@
"select_provider_countries_text_hetzner": "Germany, Finland, USA",
"select_provider_countries_text_do": "USA, Netherlands, Singapore, UK, Germany, Canada, India, Australia",
"select_provider_price_title": "Average price",
"select_provider_price_free": "Free",
"select_provider_price_text_hetzner": "€8 per month for a relatively small server and 50GB of disk storage",
"select_provider_price_text_do": "$17 per month for a relatively small server and 50GB of disk storage",
"select_provider_payment_title": "Payment methods",
@ -304,18 +402,19 @@
"choose_server_type_ram": "{} GB of RAM",
"choose_server_type_storage": "{} GB of system storage",
"choose_server_type_payment_per_month": "{} per month",
"no_server_types_found": "No available server types found. Make sure your account is accessible and try to change your server location.",
"cloudflare_bad_key_error": "Cloudflare API key is invalid",
"choose_server_type_payment_server": "{} for the server",
"choose_server_type_payment_storage": "{} for additional storage",
"choose_server_type_payment_ip": "{} for the public IPv4 address",
"dns_provider_bad_key_error": "API key is invalid",
"backblaze_bad_key_error": "Backblaze storage information is invalid",
"connect_to_dns": "Connect the DNS provider",
"select_dns": "Now let's select a DNS provider",
"manage_domain_dns": "To manage your domain's DNS",
"use_this_domain": "Use this domain?",
"use_this_domain_text": "The token you provided gives access to the following domain",
"cloudflare_api_token": "CloudFlare API Token",
"connect_backblaze_storage": "Connect Backblaze storage",
"multiple_domains_found": "Multiple domains found",
"multiple_domains_found_text": "The token you provided gives access to the following domains. Please select the one you want to use. For the security of your other domains, you should restrict this token's access to only the domain you want to use with SelfPrivacy.",
"no_connected_domains": "No connected domains at the moment",
"loading_domain_list": "Loading domain list",
"found_more_domains": "Found more than one domain. For your own security, please be asked to delete unnecessary domains",
"save_domain": "Save domain",
"final": "Final step",
"create_server": "Create server",
@ -323,13 +422,26 @@
"server_rebooted": "Server rebooted. Waiting for the last verification…",
"server_started": "Server started. It will be validated and rebooted now…",
"server_created": "Server created. DNS checks and server boot in progress…",
"domain_critical_error": "We can't reach this domain! Tap to read more…",
"until_the_next_check": "Until the next check: ",
"check": "Check",
"one_more_restart": "One more restart to apply your security certificates.",
"create_master_account": "Create master account",
"enter_username_and_password": "Enter username and strong password",
"finish": "Everything is initialized",
"checks": "Checks have been completed \n{} out of {}"
"checks": "Checks have been completed \n{} out of {}",
"steps": {
"hosting": "Hosting",
"server_type": "Server type",
"dns_provider": "DNS provider",
"backups_provider": "Backups",
"domain": "Domain",
"master_account": "Master account",
"server": "Server",
"dns_setup": "DNS setup",
"nixos_installation": "NixOS installation",
"server_reboot": "Server reboot",
"final_checks": "Final checks"
}
},
"recovering": {
"generic_error": "Operation failed, please try again.",
@ -349,12 +461,12 @@
"fallback_select_description": "What exactly do you have? Pick the first available option:",
"fallback_select_token_copy": "Copy of auth token from other version of the application.",
"fallback_select_root_ssh": "Root SSH access to the server.",
"fallback_select_provider_console": "Access to the server console of my prodiver.",
"fallback_select_provider_console": "Access to the server console of my provider.",
"authorization_failed": "Couldn't log in with this key",
"fallback_select_provider_console_hint": "For example: Hetzner.",
"server_provider_connected": "Connect to your Server Provider",
"server_provider_connected_description": "Communication established. Enter you token with access to {}:",
"server_provider_connected_placeholder": "Server Provider token",
"provider_connected": "Connect to {}",
"provider_connected_description": "Enter your token with access to {}:",
"provider_connected_placeholder": "{} token",
"confirm_server": "Confirm server",
"confirm_server_description": "Found your server! Confirm it is the right one:",
"confirm_server_accept": "Yes! That's it",
@ -368,11 +480,7 @@
"modal_confirmation_dns_valid": "Reverse DNS is valid",
"modal_confirmation_dns_invalid": "Reverse DNS points to another domain",
"modal_confirmation_ip_valid": "IP is the same as in DNS record",
"modal_confirmation_ip_invalid": "IP is not the same as in DNS record",
"confirm_cloudflare": "Connect to CloudFlare",
"confirm_cloudflare_description": "Enter a Cloudflare token with access to {}:",
"confirm_backblaze": "Connect to Backblaze",
"confirm_backblaze_description": "Enter a Backblaze token with access to backup storage:"
"modal_confirmation_ip_invalid": "IP is not the same as in DNS record"
},
"devices": {
"main_screen": {
@ -423,6 +531,7 @@
"modals": {
"dns_removal_error": "Couldn't remove DNS records.",
"server_deletion_error": "Couldn't delete active server.",
"volume_creation_error": "Couldn't create volume.",
"server_validators_error": "Couldn't fetch available servers.",
"already_exists": "Such server already exists.",
"unexpected_error": "Unexpected error during placement from the provider side.",
@ -431,9 +540,7 @@
"are_you_sure": "Are you sure?",
"purge_all_keys": "Purge all authentication keys?",
"purge_all_keys_confirm": "Yes, purge all my tokens",
"delete_server_volume": "Delete the server and volume?",
"reboot": "Reboot",
"you_cant_use_this_api": "You cannot use this API for domains with such TLD.",
"yes": "Yes",
"no": "No"
},
@ -449,6 +556,8 @@
"service_turn_off": "Turn off",
"service_turn_on": "Turn on",
"job_added": "Job added",
"job_postponed": "Job added, but you will be able to launch it after current jobs are finished",
"job_removed": "Job removed",
"run_jobs": "Run jobs",
"reboot_success": "Server is rebooting",
"reboot_failed": "Couldn't reboot the server. Check the app logs.",
@ -461,16 +570,52 @@
"delete_ssh_key": "Delete SSH key for {}",
"server_jobs": "Jobs on the server",
"reset_user_password": "Reset password of user",
"generic_error": "Couldn't connect to the server!"
"generic_error": "Couldn't connect to the server!",
"rebuild_system": "Rebuild system",
"start_server_upgrade": "Start the server upgrade",
"change_auto_upgrade_settings": "Change auto-upgrade settings",
"change_server_timezone": "Change server timezone",
"change_ssh_settings": "Change SSH settings"
},
"validations": {
"required": "Required",
"already_exist": "Already exists",
"invalid_format": "Invalid format",
"invalid_format_password": "Must not contain empty characters",
"invalid_format_password": "Password must not contain spaces",
"invalid_format_ssh": "Must follow the SSH key format",
"root_name": "Cannot be 'root'",
"length_not_equal": "Length is [], should be {}",
"length_longer": "Length is [], should be shorter than or equal to {}"
},
"support": {
"title": "SelfPrivacy Support"
},
"developer_settings": {
"title": "Developer settings",
"subtitle": "These settings are for debugging only. Don't change them unless you know what you're doing.",
"server_setup": "Server setup",
"use_staging_acme": "Use staging ACME server",
"use_staging_acme_description": "Applies when setting up a new server.",
"ignore_tls": "Do not verify TLS certificates",
"ignore_tls_description": "App will not verify TLS certificates when connecting to the server.",
"allow_ssh_key_at_setup": "Allow setting a root SSH key during setup",
"allow_ssh_key_at_setup_description": "A button to add a key will appear on the confirmation screen.",
"add_root_ssh_key": "Add a root SSH key",
"root_ssh_key_added": "Root SSH key set and will be applied",
"routing": "App routing",
"reset_onboarding": "Reset onboarding switch",
"reset_onboarding_description": "Reset onboarding switch to show onboarding screen again",
"cubit_statuses": "Cubit loading statuses"
},
"countries": {
"germany": "Germany",
"netherlands": "Netherlands",
"singapore": "Singapore",
"united_kingdom": "United Kingdom",
"canada": "Canada",
"india": "India",
"australia": "Australia",
"united_states": "United States",
"finland": "Finland"
}
}
}

View File

@ -31,18 +31,24 @@
"remove": "Eliminar",
"apply": "Solicitar",
"done": "Hecho",
"connect_to_existing": "Conectarse a un servidor existente"
"connect_to_existing": "¡Ya tengo un servidor de SelfPrivacy!",
"app_name": "SelfPrivacy",
"please_connect": "¡Conecta tu servidor y dominio para sumergirte!",
"copied_to_clipboard": "Copiado al portapapeles!"
},
"test": "es-test",
"locale": "es",
"application_settings": {
"reset_config_title": "Restablecer la configuración de la aplicación",
"dark_theme_description": "Cambia el tema de tu aplicación",
"reset_config_description": "Restablecer claves api y usuario root",
"reset_config_description": "Restablecer claves API y usuario root.",
"delete_server_title": "Eliminar servidor",
"delete_server_description": "Esto elimina su servidor. Ya no será accesible.",
"title": "Ajustes de la aplicación",
"dark_theme_title": "Tema oscuro"
"dark_theme_title": "Tema oscuro",
"system_dark_theme_title": "Tema del sistema",
"system_dark_theme_description": "Utiliza un tema claro u oscuro de la configuración del sistema",
"dangerous_settings": "Configuraciones peligrosas"
},
"ssh": {
"delete_confirm_question": "¿Está seguro de que desea eliminar la clave SSH?",
@ -50,38 +56,56 @@
"title": "SSH Claves",
"create": "Crear clave SSH",
"delete": "Eliminar clave SSH",
"subtitle_with_keys": "{} claves",
"subtitle_without_keys": "Sin llaves",
"no_key_name": "Clave sin nombre",
"root_title": "Estas son las claves de superusuario",
"input_label": "Clave pública ED25519 o RSA"
"input_label": "Clave pública ED25519, ECDSA o RSA"
},
"about_application_page": {
"application_version_text": "Versión de la aplicación v.{}",
"application_version_text": "Versión de la aplicación",
"title": "Sobre",
"api_version_text": "Versión API del servidor v.{}",
"api_version_text": "Versión API del servidor",
"privacy_policy": "Política de privacidad"
},
"onboarding": {
"page2_text": "SelfPrivacy sólo trabaja con los proveedores que usted elija. Si no tiene cuentas obligatorias en ellos, le ayudaremos a crearlas.",
"page1_title": "La independencia digital, al alcance de todos",
"page1_text": "Correo, VPN, Messenger, red social y mucho más en tu servidor privado, bajo tu control.",
"page2_title": "SelfPrivacy no es una nube, es tu centro de datos personal"
"page2_title": "SelfPrivacy no es una nube, es tu centro de datos personal",
"page2_server_provider_title": "Servidor proveedor",
"page2_server_provider_text": "Un proveedor de servidores mantiene su servidor en su propio centro de datos. SelfPrivacy se conectará automáticamente al proveedor y configurará todo lo necesario.",
"page2_dns_provider_title": "Proveedor de DNS",
"page2_backup_provider_title": "Proveedor de copias de seguridad",
"page2_dns_provider_text": "Necesitas un dominio para tener un lugar en Internet. Y también necesitas un proveedor de DNS fiable para que el dominio apunte a tu servidor. Le sugeriremos que elija un proveedor de DNS compatible para configurar automáticamente la red."
},
"more_page": {
"configuration_wizard": "Asistente de configuración",
"about_project": "Sobre nosotros",
"about_application": "Sobre",
"onboarding": "Incorporación",
"create_ssh_key": "Claves SSH de superusuario",
"console": "Consola",
"application_settings": "Ajustes de la aplicación"
"create_ssh_key": "Claves SSH de superusuario"
},
"console_page": {
"title": "Consola",
"waiting": "Esperando la inicialización…"
"waiting": "Esperando la inicialización…",
"copy": "Copiar"
},
"about_us_page": {
"title": "Sobre nosotros"
"server": {
"reboot_after_upgrade_hint": "Reinicio sin aviso después de aplicar cambios en el servidor",
"card_title": "Servidor",
"description": "Todos sus servicios funcionan aquí",
"general_information": "Información general",
"resource_usage": "Uso de recursos",
"server_timezone": "Zona horaria del servidor",
"select_timezone": "Selecciona zona horaria",
"reboot_after_upgrade": "Reinicia después de actualizar",
"allow_autoupgrade": "Permite la autoactualización",
"allow_autoupgrade_hint": "Ppermite actualizaciones automáticas de paquetes en el servidor"
},
"resource_chart": {
"month": "Mes",
"out": "Fuera",
"day": "Día",
"hour": "Hora",
"cpu_title": "Uso de CPU",
"network_title": "Uso de la red",
"in": "En"
}
}

613
assets/translations/et.json Normal file
View File

@ -0,0 +1,613 @@
{
"application_settings": {
"system_dark_theme_description": "Kasutage valgus- või tumeteemat sõltuvalt süsteemi seadetest",
"delete_server_description": "See eemaldab teie serveri. Seda ei saa enam juurde pääseda.",
"title": "Rakenduse seaded",
"system_dark_theme_title": "Süsteemi vaiketeema",
"dark_theme_title": "Tume teema",
"dark_theme_description": "Vaheta oma rakenduse teemat",
"dangerous_settings": "Ohtlikud seaded",
"reset_config_title": "Lähtesta rakenduse konfiguratsioon",
"reset_config_description": "Lähtestab API võtmed ja juurkasutaja.",
"delete_server_title": "Kustuta server"
},
"server": {
"reboot_after_upgrade": "Taaskäivita pärast värskendust",
"card_title": "Server",
"description": "Kõik teie teenused elavad siin",
"general_information": "Üldine teave",
"resource_usage": "Ressursside kasutamine",
"allow_autoupgrade": "Luba automaatsed värskendused",
"allow_autoupgrade_hint": "Luba automaatsed pakettide värskendused serveris",
"reboot_after_upgrade_hint": "Taaskäivitage ilma hoiatuseta pärast muudatuste rakendamist serveris",
"server_timezone": "Serveri ajavöönd",
"select_timezone": "Valige ajavöönd",
"timezone_search_bar": "Ajavööndi nimi või ajavahemiku väärtus",
"server_id": "Serveri ID",
"status": "Staatus",
"cpu": "CPU",
"ram": "Mälu",
"disk": "Kohalik ketas",
"monthly_cost": "Kuukulu",
"location": "Asukoht",
"pricing_error": "Teenusepakkuja hindu ei õnnestunud tuua",
"server_provider": "Serveri Teenusepakkuja",
"dns_provider": "DNS Teenusepakkuja",
"core_count": {
"one": "{} tuum",
"two": "{} tuumi",
"few": "{} tuumi",
"many": "{} tuumi",
"other": "{} tuumi"
},
"settings": "Serveri seaded",
"enable_ssh": "SSH lubamine",
"allow_password_authentication": "Luba SSH-ga sisselogimine parooli kasutades",
"enable_ssh_hint": "Luba juurdepääs serverile SSH kaudu",
"allow_password_authentication_hint": "Võimaldab kasutajatel SSH kaudu serveriga ühenduda, kasutades oma parooli (ei kehti superkasutajale)"
},
"ssh": {
"root_subtitle": "Nende võtmete omanikud saavad serverisse täieliku juurdepääsu ja saavad sellega teha mida iganes. Lisage serverisse ainult omaenda võtmed.",
"title": "SSH võtmed",
"create": "Loo SSH võti",
"delete": "Kustuta SSH võti",
"delete_confirm_question": "Kas olete kindel, et soovite SSH võtme kustutada?",
"no_key_name": "Nimetu võti",
"root_title": "Need on superkasutaja võtmed",
"input_label": "Avalik ED25519, ECDSA või RSA võti",
"ssh_disabled_warning": "SSH on välja lülitatud. Seda saab lubada serveri seadetes."
},
"onboarding": {
"page2_dns_provider_text": "Teil on vaja domeeni, et olla Internetis olemas. Ja teil on vaja ka usaldusväärset DNS teenuse pakkujat, et domeen suunataks teie serverisse. Me soovitame teil valida toetatud DNS teenuse pakkuja, et võrguühenduse automaatselt seadistada.",
"page1_title": "Digitaalne sõltumatus, saadaval kõigile meist",
"page1_text": "Meil, VPN, Messenger, sotsiaalvõrgustik ja palju muud teie privaatsel serveril, teie kontrolli all.",
"page2_title": "SelfPrivacy ei ole pilv, see on Teie isiklik andmekeskus",
"page2_text": "SelfPrivacy töötab ainult valitud teenusepakkujatega. Kui teil pole neis vajalikke kontosid, aitame teil neid luua.",
"page2_server_provider_title": "Serveri pakkuja",
"page2_server_provider_text": "Serveri pakkuja haldab teie serverit oma andmekeskuses. SelfPrivacy ühendub automaatselt pakkuja juurde ja seadistab kõik vajaliku.",
"page2_dns_provider_title": "DNS pakkuja",
"page2_backup_provider_title": "Varundamisteenuse pakkuja",
"page2_backup_provider_text": "Mis juhtub, kui midagi juhtub teie serveriga? Kujutage ette häkkerirünnakut, juhuslikku andmete kustutamist või teenuse keeldumist? Teie andmed hoitakse turvaliselt teie varundusteenuse pakkuja juures. Need on turvaliselt krüpteeritud ja igal ajal ligipääsetavad teie serveri taastamiseks."
},
"test": "ee-katse",
"locale": "ee",
"basis": {
"providers": "Pakkujad",
"providers_title": "Teie andmehoidla",
"select": "Valige",
"services": "Teenused",
"services_title": "Teie isiklikud, privaatsed ja sõltumatud teenused.",
"users": "Kasutajad",
"more": "Rohkem",
"next": "Järgmine",
"got_it": "Sain aru",
"settings": "Seaded",
"password": "Parool",
"create": "Lisa uus",
"confirmation": "Kinnitus",
"cancel": "Tühista",
"delete": "Kustuta",
"close": "Sulge",
"connect": "Ühendama",
"domain": "Domeen",
"saving": "Salvestamine…",
"username": "Kasutajanimi",
"loading": "Laadimine…",
"app_name": "SelfPrivacy",
"later": "Jätka seadistamist hiljem",
"connect_to_existing": "Mul on juba SelfPrivacy server!",
"reset": "Lähtesta",
"details": "Detailid",
"no_data": "Andmed puuduvad",
"wait": "Oota",
"remove": "Eemalda",
"apply": "Rakenda",
"done": "Tehtud",
"continue": "Jätka",
"alert": "Häire",
"copied_to_clipboard": "Kopeeritud lõikelauale!",
"please_connect": "Palun ühendage oma server, domeen ja DNS teenuse pakkuja, et alustada!",
"network_error": "Võrgu viga"
},
"more_page": {
"configuration_wizard": "Seadistusviisard",
"onboarding": "Sissejuhatus",
"create_ssh_key": "Superkasutaja SSH võtmed"
},
"console_page": {
"title": "Konsool",
"waiting": "Ootab initsialiseerimist…",
"copy": "Kopeeri"
},
"about_application_page": {
"title": "Teave ja klienditugi",
"application_version_text": "Rakenduse versioon",
"api_version_text": "Serveri API versioon",
"privacy_policy": "Privaatsuspoliitika",
"versions": "Versioonid",
"open_source_licenses": "Avaallika litsentsid",
"links": "Lingid",
"website": "Meie veebisait",
"documentation": "Dokumentatsioon",
"matrix_channel": "Kanal Matrix",
"telegram_channel": "Telegram kanal",
"get_support": "Abi saamine",
"matrix_support_chat": "Matrixi toetuse vestlus",
"telegram_support_chat": "Toetuse vestlus Telegram",
"email_support": "Toetus e-posti teel",
"contribute": "Kaasa aitama",
"help_translate": "Aidake meil tõlkida",
"source_code": "Lähtekood",
"bug_report": "Raporteeri vead",
"bug_report_subtitle": "Rämpsposti tõttu on vajalik käsitsi konto kinnitamine. Võtke meiega ühendust toe vestlusel oma konto aktiveerimiseks.",
"matrix_contributors_chat": "Arendajate vestlusruum Matrix",
"telegram_contributors_chat": "Arendajate vestlusruum Telegram"
},
"resource_chart": {
"month": "Kuu",
"day": "Päev",
"hour": "Tund",
"cpu_title": "CPU kasutus",
"network_title": "Võrgu kasutus",
"in": "Sisse",
"out": "Välja"
},
"domain": {
"card_title": "Domeen",
"screen_title": "Domeen ja DNS",
"ok": "Kirjed on korras",
"error": "Probleemid leitud",
"error_subtitle": "Puudutage siia nende parandamiseks. See eemaldab ka kohandatud kirjed.",
"refreshing": "Värskendatakse staatust…",
"uninitialized": "Andmeid pole veel kätte saadud",
"services_title": "Teenused",
"services_subtitle": "Iga teenuse jaoks on vajalikud \"A\" kirjed.",
"email_title": "Elektrooniline post",
"email_subtitle": "Kirjed turvaliseks e-kirja vahetamiseks vajalikud.",
"update_list": "Värskenda nimekirja"
},
"backup": {
"quota_subtitles": {
"last": {
"zero": "Reegel on keelatud",
"one": "Viimane {} varundus säilitatakse sõltumata selle vanusest",
"two": "Viimased {} varukoopiad säilitatakse sõltumata nende vanusest",
"few": "Viimased {} varundused säilitatakse sõltumata nende vanusest",
"many": "Viimased {} varundused säilitatakse sõltumata nende vanusest",
"other": "Viimased {} varundused säilitatakse sõltumata nende vanusest"
},
"no_effect": "See reegel ei oma mõju, kuna teine reegel säilitab rohkem varukoopiaid",
"last_infinite": "Kõik varukoopiad säilitatakse",
"daily": {
"zero": "Reegel on keelatud",
"one": "Viimane {} päevane varundus säilitatakse",
"two": "Viimased {} päevased varundused säilitatakse",
"few": "Viimased {} igapäevased varukoopiad säilitatakse",
"many": "Säilitatakse viimased {} päevased varukoopiad",
"other": "Viimased {} igapäevased varundused säilitatakse"
},
"daily_infinite": "Kõik igapäevased varundused säilitatakse",
"weekly": {
"zero": "Reegel on keelatud",
"one": "Viimane {} nädalane varundus säilitatakse",
"two": "Viimased {} nädalased varundused säilitatakse",
"few": "Viimased {} nädalased varukoopiad säilitatakse",
"many": "Viimased {} nädalased varundused säilitatakse",
"other": "Viimased {} nädalased varukoopiad säilitatakse"
},
"weekly_infinite": "Kõik nädalased varundused säilitatakse",
"monthly": {
"zero": "Reegel on keelatud",
"one": "Viimane {} kuine varukoopia säilitatakse",
"two": "Viimased {} kuise varukoopiad säilitatakse",
"few": "Säilitatakse viimased {} igakuist varukoopiat",
"many": "Säilitatakse viimased {} igakuist varukoopiat",
"other": "Säilitatakse viimased {} igakuist varukoopiat"
},
"monthly_infinite": "Kõik igakuised varukoopiad säilitatakse",
"yearly": {
"many": "Säilitatakse viimased {} aasta varukoopiad",
"zero": "Reegel on keelatud",
"one": "Säilitatakse viimane {} aasta varukoopia",
"two": "Säilitatakse viimased {} aasta varukoopiad",
"few": "Säilitatakse viimased {} aasta varukoopiad",
"other": "Säilitatakse viimased {} aasta varukoopiad"
},
"yearly_infinite": "Kõik iga-aastased varukoopiad säilitatakse"
},
"card_title": "Varundus",
"card_subtitle": "Halda oma varukoopiad",
"description": "Päästab teie päeva juhul, kui juhtub intsident: häkkerirünnak, serveri kustutamine jne.",
"reupload_key": "Võtme sunnitud lähtestamine",
"reuploaded_key": "Võti laaditi uuesti",
"initialize": "Initsialiseerimine",
"restore": "Taasta varukoopiast",
"no_backups": "Varukoopiaid pole veel olemas",
"create_new": "Loo uus varukoopia",
"restore_alert": "Olete valmis taastama varukoopiast, mis loodi {} . Kõik praegused andmed lähevad kaotsi. Kas olete kindel?",
"refresh": "Värskenda olekut",
"refetch_backups": "Uuenda varukoopiate loendit",
"refetch_backups_subtitle": "Tühistage vahemälu ja uuendage andmed oma salvestusettevõtjast. Võib põhjustada lisatasusid.",
"reupload_key_subtitle": "Juhtige serverit varundusmälu uuesti alglaadima. Kasutage, kui midagi on katki.",
"refetching_list": "Mõne minuti pärast loendit värskendatakse",
"select_all": "Varunda kõik",
"create_new_select_heading": "Valige, mida varundada",
"start": "Alusta varundust",
"service_busy": "Teine varundamistoiming on käimas",
"latest_snapshots": "Viimased hetktõmmised",
"latest_snapshots_subtitle": "Näitab viimased 15 hetktõmmist",
"show_more": "Näita rohkem",
"autobackup_period_title": "Automaatsete varukoopiate periood",
"autobackup_period_subtitle": "Varukoopiaid luuakse iga {period}",
"autobackup_period_never": "Automaatne varundamine on keelatud",
"autobackup_period_every": "iga {periood}",
"autobackup_period_disable": "Keela automaatne varundamine",
"autobackup_set_period": "Määra periood",
"backups_encryption_key": "Krüpteerimisvõti",
"backups_encryption_key_subtitle": "Hoidke seda kindlas kohas.",
"backups_encryption_key_copy": "Kopeerige krüpteerimisvõti",
"backups_encryption_key_show": "Näita krüpteerimisvõtit",
"backups_encryption_key_description": "Seda võtit kasutatakse teie varukoopiate krüptimiseks. Kui kaotate selle, ei saa te varukoopiaid taastada. Hoidke seda kindlas kohas, sest see on kasulik, kui peate kunagi varukoopiatest käsitsi taastama.",
"backups_encryption_key_not_found": "Krüpteerimisvõtit ei leitud veel, proovige hiljem uuesti.",
"pending_jobs": "Praegu töötavad varundustööd",
"snapshots_title": "Hetkekujutis nimekiri",
"forget_snapshot": "Unustage hetkeseade",
"forget_snapshot_alert": "Te kavatsete selle hetkefoto kustutada. Kas olete kindel? Seda tegevust ei saa tavaliselt tagasi võtta.",
"forget_snapshot_error": "Snapshot'i unustamine ei õnnestunud",
"quota_titles": {
"daily": "Kui palju päevaseid varukoopiaid säilitada",
"weekly": "Kui palju nädalaseid varukoopiaid säilitada",
"monthly": "Kui palju kuiseid varukoopiaid säilitada",
"yearly": "Kui palju aastaseid varukoopiaid säilitada",
"last": "Kui palju uusimaid varukoopiaid säilitada"
},
"snapshot_modal_heading": "Hetktõmmise Üksikasjad",
"snapshot_service_title": "Teenindus",
"snapshot_creation_time_title": "Loomise aeg",
"snapshot_id_title": "Hetktõmmise ID",
"snapshot_modal_select_strategy": "Valige taastamise strateegia",
"snapshot_modal_download_verify_option_title": "Laadige alla, kontrollige ja seejärel asendage",
"snapshot_modal_download_verify_option_description": "Vähem riski, kuid vaja on rohkem vaba ruumi. Laadib kogu hetktõmmise ajutisse salvestusruumi alla, kontrollib seda ja seejärel asendab praegused andmed.",
"snapshot_modal_inplace_option_title": "Vahetage oma kohale",
"snapshot_modal_inplace_option_description": "Vaja on vähem vaba ruumi, kuid suurem risk. Asendab allalaadimise ajal praegused andmed hetktõmmise andmetega.",
"snapshot_modal_service_not_found": "See on hetktõmmis teenusest, mida teie serveris enam pole. Tavaliselt ei tohiks see juhtuda ja me ei saa automaatset taastamist teha. Saate siiski hetktõmmise alla laadida ja käsitsi taastada. Kui vajate abi, võtke ühendust SelfPrivacy toega.",
"restore_started": "Taastamine on alanud, kontrollige tööde loendist praegust olekut",
"snapshot_reason_title": "Loomise põhjus",
"snapshot_reasons": {
"auto": "Loodud automaatselt",
"explicit": "Loodud teie selgesõnalise taotluse alusel",
"pre_restore": "Loodud ettevaatusabinõuna enne riskantset taastamist",
"unknown": "Tundmatu"
},
"rotation_quotas_title": "Hetktõmmise pööramise Seaded",
"set_rotation_quotas": "Määrake uued rotatsioonikvoodid",
"quotas_only_applied_to_autobackups": "Neid sätteid rakendatakse ainult automaatse varundamise korral. Käsitsi tehtud varukoopiaid ei kustutata."
},
"initializing": {
"connect_to_server_provider_text": "API võtme abil saab SelfPrivacy rentida masina ja seadistada sellele oma serveri",
"how": "Kuidas saada API võtit",
"select_dns": "Nüüd valime DNS teenusepakkuja",
"use_this_domain": "Kasutada seda domeeni?",
"use_this_domain_text": "Esitatud võti annab juurdepääsu järgnevale domeenile",
"select_provider_countries_title": "Saadaval olevad riigid",
"select_provider_countries_text_hetzner": "Saksamaa, Soome, Ameerika Ühendriigid",
"select_provider_countries_text_do": "Ameerika Ühendriigid, Holland, Singapur, Suurbritannia, Saksamaa, Kanada, India, Austraalia",
"select_provider_price_title": "Keskm hind",
"select_provider_price_free": "Tasuta",
"select_provider_price_text_hetzner": "€8 kuus suhteliselt väikese serveri ja 50 GB ketasruumi eest",
"select_provider_price_text_do": "$17 kuus suhteliselt väikese serveri ja 50 GB ketasruumi eest",
"select_provider_payment_title": "Maksemeetodid",
"select_provider_payment_text_hetzner": "Krediitkaardid, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Krediitkaardid, Google Pay, PayPal",
"select_provider_email_notice": "E-posti majutust uutele klientidele ei pakuta. Siiski saab selle lukust avada niipea, kui teete oma esimese makse.",
"select_provider_site_button": "Külasta saiti",
"connect_to_server_provider": "Logi sisse ",
"provider_bad_key_error": "Pakkuja API võti on kehtetu",
"could_not_connect": "Ühendust pakkuja juurde ei saanud.",
"choose_location_type": "Kust soovite tellida oma serveri?",
"choose_location_type_text": "Erinevad asukohad pakuvad erinevaid serverikonfiguratsioone, hindu ja ühenduse kiirust.",
"locations_not_found": "Oih!",
"locations_not_found_text": "Rentida pole saadaval ühtegi serverit",
"back_to_locations": "Valige midagi muud",
"no_locations_found": "Saadaolevaid asukohti ei leitud, veenduge, et teie konto oleks ligipääsetav",
"choose_server_type": "Millist tüüpi serverit te vajate?",
"choose_server_type_text": "Erinevad ressursside võimalused toetavad erinevaid teenuseid. Ärge muretsege, saate oma serverit igal ajal laiendada",
"choose_server_type_notice": "Olulised asjad, mida vaadata, on CPU ja RAM. Teie teenuste andmed salvestatakse kinnitatud mahule, mida saab hõlpsasti laiendada ja eraldi tasuda.",
"choose_server_type_ram": "{} GB ja RAM",
"choose_server_type_storage": "{} GB süsteemi salvestusruumi",
"choose_server_type_payment_per_month": "{} kuus",
"choose_server_type_payment_server": "{} serveri eest",
"choose_server_type_payment_storage": "{} lisasalvestuse eest",
"choose_server_type_payment_ip": "{} avaliku IPv4 aadressi eest",
"dns_provider_bad_key_error": "API võti on kehtetu",
"backblaze_bad_key_error": "Backblaze'i salvestusinfo on kehtetu",
"connect_to_dns": "Ühendage DNS teenusepakkuja",
"multiple_domains_found": "Leiti mitu domeeni",
"multiple_domains_found_text": "Esitatud võti annab juurdepääsu järgmistele domeenidele. Palun valige see, mida soovite kasutada. Teiste domeenide turvalisuse tagamiseks peaksite piirama selle võtme juurdepääsu ainult domeeniga, mida soovite kasutada koos SelfPrivacy.",
"no_connected_domains": "Praegu pole ühtegi ühendatud domeeni",
"loading_domain_list": "Laadib domeenide loendit",
"save_domain": "Salvesta domeen",
"final": "Viimane samm",
"create_server": "Looge server",
"what": "Mida see tähendab?",
"server_started": "Server on käivitatud. Nüüd toimub selle kontroll ja taaskäivitamine…",
"server_created": "Server on loodud. DNS kontroll ja serveri käivitamine on pooleli…",
"domain_critical_error": "Me ei saa sellele domeenile ühendust! Puudutage lisateabe lugemiseks…",
"server_rebooted": "Server taaskäivitati. Ootame viimast kontrolli…",
"steps": {
"master_account": "Põhikonto",
"hosting": "Hosting",
"server_type": "Serveri tüüp",
"dns_provider": "DNS pakkuja",
"backups_provider": "Varukoopiad",
"domain": "Domeen",
"server": "Server",
"dns_setup": "DNS seadistamine",
"nixos_installation": "NixOS installimine",
"server_reboot": "Serveri taaskäivitamine",
"final_checks": "Viimased kontrollid"
},
"create_master_account": "Loo põhikonto",
"enter_username_and_password": "Sisesta kasutajanimi ja tugev parool",
"checks": "Kontrollid on lõpetatud\n{} otsas {}",
"connect_to_server": "Alustame serveriga.",
"select_provider": "Valige järgmisest loendist mis tahes pakkuja, need kõik toetavad SelfPrivacy",
"select_provider_notice": "\"Suhteliselt väikese\" all peame silmas masinat, millel on 2 tuuma CPU ja 2 gigabaiti muutmälu.",
"until_the_next_check": "Kuni järgmise kontrollini: ",
"check": "Kontrollima",
"one_more_restart": "Veel üks taaskäivitus turvasertifikaatide rakendamiseks."
},
"developer_settings": {
"ignore_tls_description": "Rakendus ei kontrolli TLS sertifikaate ühenduse loomisel serveriga.",
"subtitle": "Need seaded on ainult silumise jaoks. Ärge muutke neid, kui te ei tea, mida teete.",
"title": "Arendaja seaded",
"server_setup": "Serveri seadistamine",
"use_staging_acme_description": "Kehtib uue serveri seadistamisel.",
"use_staging_acme": "Kasuta etapilist ACME serverit",
"ignore_tls": "Ära kontrolli TLS sertifikaate",
"allow_ssh_key_at_setup": "Lubage juur SSH võtme seadistamine paigaldamise ajal",
"add_root_ssh_key": "Lisage juur SSH võti",
"allow_ssh_key_at_setup_description": "Kinnitusekraanile ilmub nupp võtme lisamiseks.",
"root_ssh_key_added": "SSH juurvõti on määratud ja seda rakendatakse",
"routing": "Rakenduse marsruutimine",
"reset_onboarding": "Lähtestage liitumislüliti",
"reset_onboarding_description": "Alguskuva uuesti kuvamiseks lähtestage liitumislüliti",
"cubit_statuses": "laadimise olekud"
},
"not_ready_card": {
"in_menu": "Server pole veel seadistatud. Palun lõpetage seadistamine kasutades seadistusviisardit edasiseks tööks."
},
"storage": {
"start_migration_button": "Alusta migreerimist",
"extending_volume_description": "Helitugevuse suuruse muutmine võimaldab teil salvestada serverisse rohkem andmeid ilma serverit ennast laiendamata. Helitugevust saab ainult pikendada: kokkutõmbumine pole võimalik.",
"data_migration_notice": "Migratsiooni ajal lülitatakse kõik teenused välja.",
"extending_volume_title": "Helitugevuse pikendamine",
"card_title": "Serveri salvestusruum",
"status_ok": "Kettakasutus on OK",
"status_error": "Vähene kettaruumi",
"disk_usage": "{} kasutatud",
"disk_total": "{} Kokku · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Baitid",
"extend_volume_button": "Laiendage helitugevust",
"extending_volume_price_info": "Hind sisaldab käibemaksu ja on prognoositud teie serveripakkuja esitatud hinnaandmete põhjal. Server taaskäivitatakse pärast suuruse muutmist.",
"extending_volume_error": "Helitugevuse suurendamist ei saanud lähtestada.",
"extending_volume_modal_description": "Uuendage {} plaanile {} kuus.",
"size": "Suurus",
"price": "Hind",
"data_migration_title": "Andmete migratsioon",
"extending_volume_started": "Mahtu laiendamine algas",
"extending_volume_provider_waiting": "Teenusepakkuja maht on muudetud, ootame 10 sekundit…",
"extending_volume_server_waiting": "Serveri maht on muudetud, ootame 20 sekundit…",
"extending_volume_rebooting": "Serveri taaskäivitamine…"
},
"service_page": {
"nothing_here": "Midagi siin",
"open_in_browser": "Ava brauseris",
"restart": "Teenuse taaskäivitamine",
"disable": "Keela teenus",
"enable": "luba teenus",
"move": "Liigu teisele mahule",
"uses": "Kasutab {usage} mahul {volume}",
"snapshots": "Varukoopia hetkepilte",
"status": {
"active": "Üleval ja töötab",
"inactive": "Peatatud",
"failed": "Käivitamine ebaõnnestus",
"off": "Keelatud",
"activating": "Aktiveerimine",
"deactivating": "Deaktiveerimine",
"reloading": "Taaskäivitamine"
}
},
"mail": {
"login_info": "Kasutage kasutajanime ja parooli kasutajate vahekaardilt. IMAP port on 143 koos STARTTLS, SMTP port on 587 koos STARTTLS."
},
"password_manager": {
"login_info": "Teil tuleb luua konto veebisaidil."
},
"recovering": {
"method_device_description": "Avage rakendus teises seadmes ja minge seadmete lehele. Oma märgi saamiseks vajutage nuppu \"Lisa seade\".",
"method_select_description": "Valige taastamisviis:",
"domain_recovery_description": "Sisestage serveri domeen, millele soovite juurdepääsu saada:",
"domain_recover_placeholder": "Teie domeen",
"domain_recover_error": "Sellise domeeniga serverit ei leitud",
"fallback_select_provider_console_hint": "Näiteks: Hetzner.",
"provider_connected": "Ühenda {}",
"generic_error": "Toiming ebaõnnestus, proovige uuesti.",
"recovery_main_header": "Ühendage olemasoleva serveriga",
"method_select_other_device": "Mul on juurdepääs teises seadmes",
"method_select_recovery_key": "Mul on taastevõti",
"method_select_nothing": "Mul pole midagi sellist",
"method_device_button": "Sain oma märgi kätte",
"method_device_input_description": "Sisestage oma autoriseerimisluba",
"method_device_input_placeholder": "Token",
"method_recovery_input_description": "Sisestage oma taastevõti",
"fallback_select_description": "Mis sul täpsemalt on? Valige esimene saadaolev valik:",
"fallback_select_token_copy": "Auth tokeni koopia rakenduse teisest versioonist.",
"fallback_select_root_ssh": "SSH juurjuurdepääs serverile.",
"fallback_select_provider_console": "Juurdepääs minu teenusepakkuja serverikonsoolile.",
"authorization_failed": "Selle võtmega ei saanud sisse logida",
"provider_connected_description": "Sisestage oma tunnus, millel on juurdepääs domeenile {}:",
"provider_connected_placeholder": "{} tunnus",
"confirm_server": "Kinnitage server",
"confirm_server_description": "Teie server leitud! Kinnitage, et see on õige:",
"confirm_server_accept": "Jah! See on kõik",
"confirm_server_decline": "Valige mõni muu server",
"choose_server": "Valige oma server",
"choose_server_description": "Me ei saanud aru, millise serveriga proovite ühendust luua.",
"no_servers": "Teie kontol pole saadaolevaid servereid.",
"domain_not_available_on_token": "Valitud domeen pole sellel märgil saadaval.",
"modal_confirmation_title": "Kas see on tõesti teie server?",
"modal_confirmation_description": "Kui loote ühenduse vale serveriga, võite kaotada kõik oma andmed.",
"modal_confirmation_dns_valid": "Vastupidine DNS on kehtiv",
"modal_confirmation_dns_invalid": "Vastupidine DNS osutab teisele domeenile",
"modal_confirmation_ip_valid": "IP on sama, mis DNS kirjes",
"modal_confirmation_ip_invalid": "IP ei ole sama, mis DNS kirjes"
},
"video": {
"login_info": "Konto pole vaja."
},
"users": {
"could_not_fetch_users": "Kasutajate loendit ei õnnestunud hankida",
"refresh_users": "Värskenda kasutajate loendit",
"details_title": "Kasutaja üksikasjad",
"add_new_user": "Lisa esimene kasutaja",
"new_user": "Uus kasutaja",
"delete_user": "Kustuta kasutaja",
"nobody_here": "Siin pole kedagi",
"login": "Logi sisse",
"new_user_info_note": "Uuele kasutajale antakse automaatselt juurdepääs kõikidele teenustele",
"delete_confirm_question": "Kas oled kindel?",
"reset_password": "Parooli lähtestamine",
"account": "Konto",
"could_not_fetch_description": "Palun kontrollige oma internetiühendust ja proovige uuesti",
"could_not_create_user": "Kasutaja loomine ebaõnnestus",
"could_not_delete_user": "Kasutaja kustutamine ebaõnnestus",
"could_not_add_ssh_key": "SSH võtme lisamine ebaõnnestus",
"username_rule": "Kasutajanimi võib sisaldada ainult väiketähti, numbreid ja allkriipse, ei tohi alata numbriga",
"email_login": "E-posti sisselogimine",
"no_ssh_notice": "Sellele kasutajale luuakse ainult e-posti ja SSH kontod. Ühe sisselogimise lahendus kõikidele teenustele on varsti saadaval.",
"user_already_exists": "Sama nimega kasutaja on juba olemas"
},
"devices": {
"main_screen": {
"other_devices": "Muud seadmed",
"authorize_new_device": "Autoriseeri uus seade",
"access_granted_on": "Juurdepääs anti {}",
"tip": "Juurdepääsu tühistamiseks vajutage seadmel nuppu.",
"header": "Seadmed",
"description": "Nendel seadmetel on SelfPrivacy rakenduse kaudu täielik juurdepääs serverile.",
"this_device": "See seade"
},
"add_new_device_screen": {
"header": "Uue seadme autoriseerimine",
"description": "Sisestage selle seadme võti, mida soovite autoriseerida:",
"please_wait": "Palun oota",
"tip": "Võti kehtib 10 minutit.",
"expired": "Võti on aegunud.",
"get_new_key": "Hangi uus võti"
},
"revoke_device_alert": {
"header": "Tühistada juurdepääsu?",
"description": "Seadmel {} ei ole enam serverile juurdepääsu.",
"no": "Tühista",
"yes": "Tühistama"
}
},
"recovery_key": {
"key_connection_error": "Ühendust serveriga ei õnnestunud luua.",
"key_synchronizing": "Sünkroniseerimine…",
"key_main_header": "Taastevõti",
"key_main_description": "On vajalik SelfPrivacy autoriseerimiseks, kui kõik teised autoriseeritud seadmed pole kättesaadavad.",
"key_amount_toggle": "Piirang kasutuste arvu järgi",
"key_amount_field_title": "Maksimaalne kasutuskordade arv",
"key_duedate_toggle": "Piirang aja järgi",
"key_duedate_field_title": "Aegumiskuupäev",
"key_receive_button": "Võtme saamine",
"key_valid": "Teie võti on kehtiv",
"key_invalid": "Teie võti ei kehti enam",
"key_valid_until": "Kehtib kuni {}",
"key_valid_for": "Kehtib {} kasutuskorraks",
"key_creation_date": "Loodud {}",
"key_replace_button": "Genereeri uus võti",
"key_receiving_description": "Kirjutage see võti üles ja asetage turvalisse kohta. Seda kasutatakse täieliku juurdepääsu taastamiseks teie serverile:",
"key_receiving_info": "Võtit ei näidata kunagi enam, kuid teil on võimalus asendada see teisega.",
"key_receiving_done": "Valmis!",
"generation_error": "Taastevõtit ei õnnestunud luua. {}"
},
"jobs": {
"service_turn_off": "Välja lülitamine",
"service_turn_on": "Sisselülitamine",
"upgrade_success": "Serveri värskendamine on alanud",
"upgrade_failed": "Serveri värskendamine ebaõnnestus",
"upgrade_server": "Värskenda serverit",
"reboot_server": "Taaskäivita server",
"create_ssh_key": "Looge SSH võti {} jaoks",
"generic_error": "Ei õnnestunud ühendust serveriga luua!",
"delete_ssh_key": "Kustutage SSH võti {} jaoks",
"server_jobs": "Tööd serveris",
"reset_user_password": "Kasutaja parooli lähtestamine",
"title": "Töökohtade nimekiri",
"start": "Alusta",
"empty": "Töökohti pole",
"create_user": "Kasutaja loomine",
"delete_user": "Kasutaja kustutamine",
"job_added": "Töö lisatud",
"run_jobs": "Käivita tööd",
"reboot_success": "Server taaskäivitub",
"reboot_failed": "Serverit ei õnnestunud taaskäivitada. Kontrollige rakenduse logisid.",
"config_pull_failed": "Konfiguratsiooni värskendust ei õnnestunud alla laadida. Tarkvara värskendamine algas siiski.",
"job_postponed": "Töö lisatud, kuid saate selle käivitada pärast praeguste tööde lõppu",
"job_removed": "Töö eemaldatud",
"rebuild_system": "Süsteemi ümberkorraldamine",
"start_server_upgrade": "Serveri värskenduse käivitamine",
"change_auto_upgrade_settings": "Automaatse värskenduse seadete muutmine",
"change_server_timezone": "Serveri ajavööndi muutmine",
"change_ssh_settings": "Muuda SSH seadeid"
},
"validations": {
"required": "Nõutud",
"already_exist": "Juba eksisteerib",
"invalid_format": "Kehtetu vorming",
"invalid_format_password": "Parool ei tohi sisaldada tühikuid",
"invalid_format_ssh": "Peab järgima SSH võtme formaati",
"root_name": "Ei saa olla 'root'",
"length_not_equal": "Pikkus on [], peaks olema {}",
"length_longer": "Pikkus on [], peaks olema lühem või võrdne kui {}"
},
"support": {
"title": "SelfPrivacy tugi"
},
"cloud": {
"login_info": "Sisselogimine on admin, parool on sama mis teie põhikasutajal. Looge uusi kontosid Nextcloudi liideses."
},
"social_network": {
"login_info": "Teil tuleb luua konto veebisaidil."
},
"git": {
"login_info": "Teil tuleb luua konto veebisaidil. Esimesest kasutajast saab administraator."
},
"modals": {
"dns_removal_error": "DNS kirjeid ei õnnestunud eemaldada.",
"server_deletion_error": "Aktiivset serverit ei õnnestunud kustutada.",
"volume_creation_error": "Mahu loomine ebaõnnestus.",
"server_validators_error": "Saadaolevate serverite hankimine ebaõnnestus.",
"already_exists": "Selline server on juba olemas.",
"unexpected_error": "Pakkuja poolelt tekkis paigutuse ajal ootamatu viga.",
"destroy_server": "Hävitage server ja looge uus?",
"try_again": "Proovige uuesti?",
"are_you_sure": "Kas olete kindel?",
"purge_all_keys": "Kustutada kõik autentimisvõtmed?",
"purge_all_keys_confirm": "Jah, kustuta kõik minu võtmed",
"delete_server_volume": "Kustutada server ja maht?",
"reboot": "Taaskäivitage",
"yes": "Jah",
"no": "Ei"
},
"timer": {
"sec": "{} sek"
}
}

View File

@ -24,11 +24,231 @@
"username": "Nom d'utilisateur",
"loading": "Chargement…",
"later": "Passer à la configuration plus tard",
"connect_to_existing": "Se connecter à un server existant",
"connect_to_existing": "Se connecter à un serveur SelfPrivacy existant",
"reset": "Réinitialiser",
"details": "Détails",
"no_data": "Pas de données",
"wait": "Attendez",
"remove": "Supprimer"
"remove": "Supprimer",
"alert": "Alerte",
"continue": "Continuer",
"apply": "Appliquer",
"done": "Effectué",
"app_name": "SelfPrivacy",
"please_connect": "Veuillez connecter votre serveur, domaine et fournisseur DNS pour vous lancer dans le bain !",
"copied_to_clipboard": "Copié dans le presse-papier !"
},
"more_page": {
"create_ssh_key": "Clés SSH du super utilisateur",
"configuration_wizard": "Assistant de configuration",
"onboarding": "Embarquement"
},
"console_page": {
"title": "Console",
"waiting": "En attente de l'initialisation…",
"copy": "Copier"
},
"about_application_page": {
"title": "À propos",
"privacy_policy": "Politique de confidentialité",
"application_version_text": "Version de l'application",
"api_version_text": "Version de l'API du serveur {}"
},
"application_settings": {
"title": "Paramètres de l'application",
"dark_theme_description": "Changer le thème de l'application",
"reset_config_title": "Réinitialiser la configuration de l'application",
"delete_server_title": "Supprimer le serveur",
"delete_server_description": "Cela va supprimer votre serveur. Celui-ci ne sera plus accessible.",
"dark_theme_title": "Thème sombre",
"reset_config_description": "Réinitialiser les clés API et l'utilisateur root.",
"system_dark_theme_title": "Thème par défaut du système",
"system_dark_theme_description": "Affichage de jour ou de nuit en fonction du paramétrage système",
"dangerous_settings": "Paramètres dangereux"
},
"ssh": {
"title": "Clés SSH",
"create": "Créer une clé SSH",
"delete": "Supprimer une clé SSH",
"delete_confirm_question": "Êtes-vous sûr de vouloir supprimer la clé SSH ?",
"no_key_name": "Clé sans nom",
"input_label": "Clé RSA ou ED25519 publique",
"root_title": "Ce sont les clés SSH du superutilisateur",
"root_subtitle": "Les possesseurs de ses clés SSH obtiennent le contrôle total sur le serveur et peuvent faire ce qu'ils veulent dessus. Il suffit d'ajouter vos clés SSH sur ce serveur."
},
"onboarding": {
"page1_title": "Indépendance numérique, accessible à nous tous",
"page1_text": "Mail, VPN, messagerie, réseau social et bien plus sur votre serveur privé, sous votre contrôle.",
"page2_title": "SelfPrivacy n'est pas un cloud, c'est votre centre de données personnel",
"page2_server_provider_title": "Hébergeur",
"page2_server_provider_text": "Un hébergeur maintient votre serveur dans son propre datacenter. SelfPrivacy va automatiquement se connecter à votre fournisseur et installer tout le nécessaire.",
"page2_dns_provider_title": "Fournisseur de DNS",
"page2_backup_provider_title": "Fournisseur de sauvegarde",
"page2_text": "SelfPrivacy fonctionne uniquement avec les fournisseurs que vous choisissez. Si vous n'avez pas de compte sur ceux-ci, nous allons vous aider à en créer.",
"page2_dns_provider_text": "Vous avez besoin d'un domaine pour avoir un espace sur l'Internet. Il est également nécessaire de disposer d'un fournisseur de DNS fiable pour que votre domaine pointe sur votre serveur. Nous allons vous suggérer de choisir des fournisseurs DNS supportés pour automatiquement configurer le réseau.",
"page2_backup_provider_text": "Et s'il se passait quelque chose avec votre serveur ? Imaginez une attaque par un hackeur, une suppression accidentelle de vos données ou un dénis de service ? Vos données seront conservées en toute sécurité chez votre fournisseur de sauvegardes. Elles seront chiffrées et accessibles à tout moment pour être restaurées sur vos serveurs."
},
"resource_chart": {
"month": "Mois",
"day": "Jour",
"hour": "Heure",
"cpu_title": "Utilisation du CPU",
"network_title": "Utilisation du réseau",
"in": "Entré",
"out": "Sorti"
},
"server": {
"card_title": "Serveur",
"general_information": "Informations générales",
"resource_usage": "Utilisation des ressources",
"allow_autoupgrade": "Permettre la mise à jour automatique",
"allow_autoupgrade_hint": "Permettre la mise à jour des paquets automatiquement sur le serveur",
"reboot_after_upgrade": "Redémarrer après mise à jour",
"reboot_after_upgrade_hint": "Redémarrer sans demander après application des changements sur le serveur",
"server_id": "ID du serveur",
"status": "Statut",
"cpu": "Processeur",
"ram": "Mémoire",
"disk": "Disque local",
"monthly_cost": "Coût mensuel",
"location": "Localisation",
"core_count": {
"one": "{} cœur",
"two": "{} cœurs",
"many": "{} cœurs",
"other": "{} cœurs",
"few": "{} cœurs"
},
"server_timezone": "Fuseau horaire du serveur",
"select_timezone": "Sélectionner le fuseau horaire",
"description": "Tous vos services en direct ici"
},
"domain": {
"card_title": "Domaine",
"screen_title": "Domaines et DNS",
"error": "Problèmes détectés",
"error_subtitle": "Clique ici pour les fixer",
"refreshing": "Rafraîchissement du statut…",
"services_title": "Services",
"services_subtitle": "Enregistrement de type \"A\" requis pour chaque service.",
"email_title": "Email",
"email_subtitle": "Enregistrements nécessaires pour l'échange sécurisé d'email.",
"update_list": "Liste mise à jour",
"ok": "Les enregistrements DNS sont OK",
"uninitialized": "Les données n'ont pas encore été récupérées"
},
"backup": {
"card_title": "Sauvegarde",
"reuploaded_key": "Clés republiées",
"initialize": "Initialise",
"restore": "Restaurer depuis la sauvegarde",
"create_new": "Créer une nouvelle sauvegarde",
"restore_alert": "Vous allez restaurer depuis la sauvegarde créée le {}. Toutes les données existantes vont être perdues. Êtes-vous sûr ?",
"refresh": "Statut d'avancement",
"refetching_list": "Dans quelques minutes, la liste sera mise à jour",
"reupload_key": "Forcer la republication de la clé",
"no_backups": "Il n'y a pour l'instant aucune sauvegarde",
"refetch_backups": "Récupérer la liste des mise à jour"
},
"storage": {
"card_title": "Stockage du serveur",
"status_ok": "L'utilisation du disque est OK",
"status_error": "Faible espace disque",
"disk_usage": "{} utilisé",
"disk_total": "{} total · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"extending_volume_title": "Extension du volume",
"extending_volume_price_info": "Les prix incluent la TVA et sont estimés par les données commerciales fournies par Hetzner.\nLe serveur va redémarrer après redimensionnement.",
"extending_volume_error": "Pas possible d'initialiser l'extension du volume.",
"size": "Taille",
"data_migration_title": "Migration de données",
"data_migration_notice": "Durant la migration, tous les services ne seront plus accessibles.",
"start_migration_button": "Démarrer la migration",
"extend_volume_button": "Étendre le volume",
"extending_volume_description": "Redimensionner le volume va vous permettre de stocker davantage de données sur votre serveur sans étendre le serveur lui-même. Les volumes ne peuvent être qu'étendus, le shrinking n'est pas possible."
},
"service_page": {
"open_in_browser": "Ouvrir dans le navigateur",
"restart": "Redémarrer le service",
"status": {
"active": "Démarré et opérationnel",
"inactive": "Arrêté",
"failed": "Démarrage en échec",
"off": "Désactivé",
"activating": "Activation",
"deactivating": "Désactivation",
"reloading": "Redémarrage"
},
"disable": "Désactiver le service",
"enable": "Activer le service",
"move": "Déplacer sur un autre volume",
"uses": "Utilise {usage} du {volume}"
},
"mail": {
"login_info": "Utiliser l'identifiant et le mot de passe de l'onglets utilisateurs. Le port IMAP est 143 avec STARTTLS, le port SMTP est 587 avec STARTTLS."
},
"not_ready_card": {
"in_menu": "Le serveur n'est pas encore configuré. Veuillez finir le paramétrage en utilisant l'assistant d'installation pour aller plus loin."
},
"validations": {
"invalid_format_password": "Ne doit pas contenir d'espace",
"invalid_format": "Format invalide",
"already_exist": "Existe déjà",
"required": "Requis",
"invalid_format_ssh": "Doit correspondre au format de clé SSH",
"root_name": "Ne peut être 'root'"
},
"jobs": {
"create_ssh_key": "Créer une clé SSH pour {}",
"reboot_failed": "Impossible de redémarrer le serveur. Veuillez vérifier les logs applicatifs.",
"delete_user": "Supprimer utilisateur",
"generic_error": "Impossible de se connecter au serveur!",
"delete_ssh_key": "Supprimer la clé SSH pour {}",
"reboot_server": "Redémarrer le serveur",
"upgrade_server": "Mise à jour du serveur",
"upgrade_failed": "Impossible de mettre à jour le serveur",
"upgrade_success": "Mise à jour du serveur démarrée",
"reboot_success": "Le serveur redémarre",
"run_jobs": "Lancer des jobs",
"job_added": "Job ajouté",
"service_turn_on": "Lancer",
"reset_user_password": "Réinitialiser le mot de passe de l'utilisateur",
"service_turn_off": "Arrêter",
"create_user": "Créer utilisateur",
"empty": "Pas de jobs",
"server_jobs": "Jobs sur le serveur",
"start": "Démarrer",
"title": "Liste des jobs"
},
"modals": {
"destroy_server": "Effacer le serveur et en créer un nouveau?",
"no": "Non",
"yes": "Oui",
"reboot": "Redémarrer",
"delete_server_volume": "Supprimer le serveur et le volume?",
"purge_all_keys_confirm": "Oui, purger tous mes tokens",
"purge_all_keys": "Purger toutes les clés d'authentification?",
"are_you_sure": "Êtes-vous sûr?",
"try_again": "Essayer à nouveau?"
},
"password_manager": {
"login_info": "Vous devrez créer un compte sur le site web."
},
"timer": {
"sec": "{} secondes"
},
"cloud": {
"login_info": "Le login est admin, le mot de passe est le même que votre utilisateur principal. Créer de nouveaux comptes via l'interface Nextcloud."
},
"video": {
"login_info": "Pas de compte nécessaire."
},
"social_network": {
"login_info": "Vous devrez créer un compte sur le site web."
},
"git": {
"login_info": "Vous devrez créer un compte sur le site web. Le premier utilisateur deviendra admin."
}
}

588
assets/translations/he.json Normal file
View File

@ -0,0 +1,588 @@
{
"test": "he-test",
"locale": "he",
"more_page": {
"configuration_wizard": "אשף הקמה",
"create_ssh_key": "מפתחות SSH למשתמשי על",
"onboarding": "קבלת פנים"
},
"basis": {
"app_name": "SelfPrivacy",
"providers": "ספקים",
"providers_title": "חוות השרתים שלך",
"select": "בחירה",
"services": "שירותים",
"services_title": "השירותים האישיים, הפרטיים והעצמאיים שלך.",
"users": "משתמשים",
"more": "עוד",
"next": "הבא",
"got_it": "הבנתי",
"settings": "הגדרות",
"password": "סיסמה",
"create": "הוספת חדש",
"confirmation": "אישור",
"cancel": "ביטול",
"delete": "מחיקה",
"close": "סגירה",
"connect": "התחברות",
"domain": "שם תחום",
"saving": "מתבצעת שמירה…",
"username": "שם משתמש",
"loading": "בטעינה…",
"later": "דילוג כדי להגדיר אחר כך",
"connect_to_existing": "כבר יש לי שרת SelfPrivacy!",
"reset": "איפוס",
"details": "פרטים",
"no_data": "אין נתונים",
"wait": "להמתין",
"remove": "הסרה",
"apply": "החלה",
"done": "בוצע",
"continue": "להמשיך",
"alert": "התראה",
"copied_to_clipboard": "הועתק ללוח הגזירים!",
"please_connect": "נא לחבר את השרת, שם התחום וספק ה־DNS שלך לפני שצוללים פנימה!",
"network_error": "שגיאת רשת"
},
"about_application_page": {
"privacy_policy": "מדיניות פרטיות",
"title": "על אודות",
"application_version_text": "היישום בגרסה",
"api_version_text": "גרסת ה־API של השרת היא"
},
"ssh": {
"root_subtitle": "בעלי המפתחות האלו יקבלו גישה מלאה לשרת ויוכלו לעשות איתו כל העולה על רוחם. יש להוסיף רק את המפתחות שלך לשרת.",
"title": "מפתחות SSH",
"create": "יצירת מפתח SSH",
"delete": "מחיקת מפתח SSH",
"delete_confirm_question": "למחוק את מפתח ה־SSH?",
"no_key_name": "מפתח ללא שם",
"root_title": "אלו מפתחות משתמש על",
"input_label": "מפתח ED25519, ECDSA או RSA ציבורי"
},
"domain": {
"ok": "הרשומות תקינות",
"email_subtitle": "רשומות שנחוצות לתכתובת דוא״ל מאובטחת.",
"card_title": "שם תחום",
"screen_title": "שם תחום ו־DNS",
"error": "נמצאו בעיות",
"error_subtitle": "יש לגעת כאן כדי לתקן אותן. הרשומות שהותאמו אישית תוסרנה.",
"refreshing": "המצב מתעדכן…",
"uninitialized": "הנתונים לא נמשכו עדיין",
"services_title": "שירותים",
"services_subtitle": "רשומות מסוג „A” נחוצות לכל אחד מהשירותים.",
"email_title": "דוא״ל",
"update_list": "עדכון הרשימה"
},
"console_page": {
"title": "מסוף",
"waiting": "בהמתנה לאתחול…",
"copy": "העתקה"
},
"application_settings": {
"title": "הגדרות יישום",
"system_dark_theme_title": "ערכת העיצוב כברירת המחדל של המערכת",
"system_dark_theme_description": "להשתמש בערכות עיצוב בהירה או כהה בהתאם להגדרות המערכת שלך",
"dark_theme_title": "ערכת עיצוב כהה",
"dark_theme_description": "החלפת ערכת העיצוב של המערכת שלך",
"dangerous_settings": "הגדרות מסוכנות",
"reset_config_title": "איפוס הגדרות היישומון",
"reset_config_description": "איפוס מפתחות ה־API ומשתמש העל.",
"delete_server_title": "מחיקת שרת",
"delete_server_description": "מסיר את השרת שלך. הוא לא יהיה זמין עוד."
},
"backup": {
"create_new_select_heading": "לבחור מה לגבות",
"autobackup_period_subtitle": "גיבויים נוצרים כל {period}",
"autobackup_set_period": "הגדרת הפרש",
"backups_encryption_key_show": "הצגת מפתח ההצפנה",
"card_title": "גיבוי",
"card_subtitle": "ניהול הגיבויים שלך",
"description": "יציל לך את היום במקרים של אירועים חריגים: תקיפות האקרים, מחיקת השרת וכו׳.",
"reuploaded_key": "המפתח הועלה מחדש",
"initialize": "אתחול",
"restore": "שחזור מגיבוי",
"no_backups": "אין גיבויים עדיין",
"create_new": "יצירת גיבוי חדש",
"refresh": "רענון מצב",
"refetch_backups": "משיכת רשימת הגיבויים מחדש",
"reupload_key": "אילוץ העלאת מפתח מחדש",
"refetch_backups_subtitle": "ביטול תוקף המטמון ומשיכת הנתונים מחדש מספק האחסון שלך. עשוי לגרור חיובים נוספים.",
"select_all": "לגבות הכול",
"start": "התחלת גיבוי",
"service_busy": "גיבוי נוסף מתבצע כרגע",
"show_more": "להציג עוד",
"autobackup_period_title": "משך גיבויים אוטומטיים",
"autobackup_period_never": "גיבויים אוטומטיים מושבתים",
"autobackup_period_every": "כל {period}",
"autobackup_period_disable": "השבתת גיבויים אוטומטיים",
"backups_encryption_key": "מפתח הצפנה",
"backups_encryption_key_subtitle": "יש לשמור עליו במקום בטוח.",
"backups_encryption_key_copy": "העתקת מפתח ההצפנה",
"reupload_key_subtitle": "ינחה את השרת להתחיל את אחסון הגיבוי שוב. כדאי להשתמש אם משהו לא תקין.",
"refetching_list": "תוך כמה דקות הרשימה תתעדכן",
"latest_snapshots": "תמונות המצב העדכניות ביותר",
"latest_snapshots_subtitle": "15 תמונות המצב העדכניות ביותר מוצגות",
"pending_jobs": "משימות גיבוי שפועלות כרגע",
"snapshot_service_title": "שירות",
"snapshot_creation_time_title": "מועד היצירה",
"snapshot_modal_select_strategy": "נא לבחור את אסטרטגיית השחזור",
"snapshots_title": "רשימת תמונות מצב",
"forget_snapshot": "התעלמות מתמונת המצב",
"forget_snapshot_error": "לא ניתן להתעלם מתמונת מצב",
"snapshot_modal_heading": "פרטי תמונת המצב",
"snapshot_id_title": "מזהה תמונת מצב",
"snapshot_modal_inplace_option_title": "החלפה במקום",
"snapshot_modal_inplace_option_description": "דורש פחות מקום בכונן אך יותר מסוכן. מחליף את הנתונים הנוכחיים בנתוני תמונת המצב במהלך ההורדה.",
"restore_started": "השחזור התחיל, יש לעיין ברשימת המשימות לצפייה במצב הנוכחי",
"snapshot_reason_title": "סיבת היצירה",
"snapshot_reasons": {
"auto": "נוצרה אוטומטית",
"unknown": "לא ידוע",
"explicit": "נוצרה לבקשתך המפורשת",
"pre_restore": "נוצרה מטעמי זהירות יתר בטרם שחזור מסוכן"
},
"quota_subtitles": {
"last": {
"zero": "הכלל מושבת",
"two": "שני הגיבויים האחרונים יישמרו ללא תלות בגילם",
"few": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם",
"many": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם",
"other": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם",
"one": "הגיבוי האחרון יישמר ללא תלות בגילו"
},
"daily": {
"zero": "הכלל מושבת",
"one": "הגיבוי היומי האחרון יישמר",
"few": "{} הגיבויים היומיים האחרונים יישמרו",
"many": "{} הגיבויים היומיים האחרונים יישמרו",
"two": "שני הגיבויים היומיים האחרונים יישמרו",
"other": "{} הגיבויים היומיים האחרונים יישמרו"
},
"daily_infinite": "כל הגיבויים היומיים יישמרו",
"weekly": {
"zero": "הכלל מושבת",
"one": "הגיבוי השבועי האחרון יישמר",
"two": "שני הגיבויים השבועיים האחרונים יישמרו",
"many": "{} הגיבויים השבועיים האחרונים יישמרו",
"other": "{} הגיבויים השבועיים האחרונים יישמרו",
"few": "{} הגיבויים השבועיים האחרונים יישמרו"
},
"yearly": {
"zero": "הכלל מושבת",
"one": "הגיבוי השנתי האחרון יישמר",
"two": "שני הגיבויים השנתיים האחרונים יישמרו",
"many": "{} הגיבויים השנתיים האחרונים יישמרו",
"few": "{} הגיבויים השנתיים האחרונים יישמרו",
"other": "{} הגיבויים השנתיים האחרונים יישמרו"
},
"weekly_infinite": "כל הגיבויים השבועיים יישמרו",
"monthly": {
"zero": "הכלל מושבת",
"one": "הגיבוי החודש האחרון יישמר",
"few": "{} הגיבויים החודשיים האחרונים יישמרו",
"many": "{} הגיבויים החודשיים האחרונים יישמרו",
"two": "שני הגיבויים החודשיים האחרונים יישמרו",
"other": "{} הגיבויים החודשיים האחרונים יישמרו"
},
"monthly_infinite": "כל הגיבויים החודשיים יישמרו",
"yearly_infinite": "כל הגיבויים השנתיים יישמרו",
"last_infinite": "כל הגיבויים יישמרו",
"no_effect": "לכלל הזה אין שום השפעה כיוון שכלל אחר ישמור יותר גיבויים"
},
"quotas_only_applied_to_autobackups": "הגדרות אלו חלות רק על גיבויים אוטמטיים. גיבויים ידניים לא יימחקו.",
"quota_titles": {
"last": "כמה גיבויים אחרונים לשמור",
"daily": "כמה גיבויים יומיים לשמור",
"monthly": "כמה גיבויים חודשיים לשמור",
"yearly": "כמה גיבויים שנתיים לשמור",
"weekly": "כמה גיבוים שבועיים לשמור"
},
"rotation_quotas_title": "הגדרות מחזוריות תמונות מצב",
"set_rotation_quotas": "הגדרת מכסות מחזוריות חדשות",
"backups_encryption_key_description": "המפתח הזה משמש להצפנת הגיבויים שלך. אם יאבד, לא יהיה לך איך לשחזר את הגיבויים שלך. רצוי לשמור אותו במקום בטוח כיוון שהוא יועיל לך מאוד במקרה שצריך לשחזר גיבויים ידנית.",
"backups_encryption_key_not_found": "מפתח ההצפנה לא נמצא, נא לנסות שוב מאוחר יותר.",
"snapshot_modal_download_verify_option_title": "להוריד, לאמת ואז להחליף",
"forget_snapshot_alert": "פעולה זו תמחק תמונת מצב. להמשיך? זאת בדרך כלל פעולה בלתי הפיכה.",
"snapshot_modal_download_verify_option_description": "פחות מסוכן אך דורש יותר מקום בכונן. מוריד את כל תמונת המצב לאחסון האזמנה, מאמת אותה ומחליף את הנתונים הנוכחיים.",
"snapshot_modal_service_not_found": "זאת תמונת מצב של שירות שאין לך יותר על השרת. בדרך כלל זה לא אמור לקרות אך אין לנו אפשרות לבצע את השחזור האוטומטי. עדיין ניתן להוריד את תמונת המצב כדי לשחזר אותה ידנית. אפשר ליצור קשר עם SelfPrivacy לקבלת תמיכה במקרה הצורך.",
"restore_alert": "פעולה זו תשחזר מגיבוי שנוצר ב־{}. כל הנתונים הנוכחיים יאבדו. להמשיך?"
},
"onboarding": {
"page1_title": "עצמאות דיגיטלית, לכל אחד מאתנו",
"page2_title": "SelfPrivacy זה לא ענן, זאת חוות השרתים האישית שלך",
"page2_server_provider_title": "ספק שרתים",
"page2_dns_provider_title": "ספק DNS",
"page2_backup_provider_title": "ספק גיבויים",
"page1_text": "דוא״ל, VPN, יישום תכתובות, רשת חברתית ועוד בשרת פרטי מחדש, תחת שליטתך.",
"page2_text": "SelfPrivacy עובד רק עם ספקים לבחירתך. אם אין לך חשבונות נחוצים אצלם, אנו נסייע לך ליצור אותם.",
"page2_server_provider_text": "ספק שרתים מתחזק את השרת שלך בחוות שרתים משלו. SelfPrivacy תתחבר אוטומטית לספק ותגדיר את כל מה שצריך.",
"page2_dns_provider_text": "צריך שם תחום כדי שיהיה לך מקום באינטרנט. וצריך גם ספק DNS אמין שיפנה משם התחום לשרת שלך. אנו מציעים לך לבחור מבין ספקי ה־DNS הנתמכים כדי להגדיר תקשורת אוטומטית.",
"page2_backup_provider_text": "מה אם משהו יקרה לשרת שלך? למשל תקיפת האקרים, מחיקת מידע בשוגג או מניעת שירות? הנתונים שלך יישמרו בצורה בטוחה בגיבויי הספק שלך. הם יוצפנו בצורה מאובטחת ויהיו נגישים בכל עת כדי לשחזר את השרת שלך מהם."
},
"resource_chart": {
"month": "חודש",
"day": "יום",
"hour": "שעה",
"network_title": "ניצולת רשת",
"in": "נכנס",
"out": "יוצא",
"cpu_title": "ניצולת מעבד"
},
"server": {
"card_title": "שרת",
"description": "כל השירותים שלך חיים כאן",
"general_information": "מידע כללי",
"resource_usage": "ניצולת משאבים",
"allow_autoupgrade": "לאפשר שדרוג אוטומטי",
"allow_autoupgrade_hint": "לאפשר שדרוגי חבילות אוטומטיים בשרת",
"reboot_after_upgrade": "להפעיל מחדש לאחר שדרוג",
"reboot_after_upgrade_hint": "להפעיל מחדש ללא בקשה לאחר החלת השינויים בשרת",
"server_timezone": "אזור הזמן של השרת",
"select_timezone": "בחירת אזור זמן",
"timezone_search_bar": "שם אזור הזמן או ערך הזחת השעה",
"server_id": "מזהה שרת",
"status": "מצב",
"cpu": "מעבד",
"ram": "זיכרון",
"disk": "כונן מקומי",
"monthly_cost": "עלות חודשית",
"location": "מקום",
"pricing_error": "לא ניתן למשוך את מחירי הספקים",
"server_provider": "ספק שרתים",
"dns_provider": "ספק DNS",
"core_count": {
"one": "ליבה אחת",
"two": "{} ליבות",
"few": "{} ליבות",
"many": "{} ליבות",
"other": "{} ליבות"
}
},
"storage": {
"card_title": "אחסון בשרת",
"status_ok": "ניצולת הכונן תקינה",
"price": "מחיר",
"status_error": "חסר מקום בכונן",
"disk_usage": "{} מנוצלים",
"disk_total": "{} בסך הכול · {}",
"data_migration_title": "הסבת נתונים",
"gb": "{} ג״ב",
"mb": "{} מ״ב",
"kb": "{} ק״ב",
"bytes": "בתים",
"extend_volume_button": "הרחבת כרך",
"extending_volume_title": "הרחבת כרך",
"extending_volume_description": "שינוי גודל כרך מאפשר לך לאחסן יותר נתונים בשרת שלך מבלי להגדיר את השרת עצמו. אפשר רק להרחיב כרכים: אי אפשר לכווץ אותם.",
"extending_volume_price_info": "המחיר כולל מע״מ והוא משוערך על בסיס נתוני החיוב שמסופקים על ידי ספק השרת שלך. השרת יופעל מחדש לאחר שינוי הגודל.",
"extending_volume_error": "לא ניתן לאתחל את הרחבת הכרך.",
"size": "גודל",
"data_migration_notice": "במהלך ההסבה כל השירותים ייכבו.",
"start_migration_button": "התחלת הסבה",
"extending_volume_modal_description": "לשדרג ל־{} בתוכנית של {} לחודש.",
"extending_volume_started": "הרחבת כרך החלה",
"extending_volume_provider_waiting": "גודל כרך הספק השתנה, נמתין 10 שניות…",
"extending_volume_server_waiting": "גודל כרך השרת השתנה, נמתין 20 שניות…",
"extending_volume_rebooting": "השרת מופעל מחדש…"
},
"service_page": {
"enable": "הפעלת שירות",
"move": "העברה לכרך אחר",
"uses": "משתמש ב־{usage} על גבי {volume}",
"status": {
"active": "פעיל",
"inactive": "נעצר",
"failed": "התחלה נכשלה",
"off": "מושבת",
"activating": "מופעל",
"deactivating": "נעצר",
"reloading": "מופעל מחדש"
},
"snapshots": "תמונות מצב של גיבוי",
"nothing_here": "אין כאן כלום",
"open_in_browser": "פתיחה בדפדפן",
"restart": "הפעלת השירות מחדש",
"disable": "השבתת שירות"
},
"not_ready_card": {
"in_menu": "השרת לא מוגדר עדיין. נא לסיים את ההגדרה באמצעות אשף ההקמה כדי להמשיך בהקמה."
},
"mail": {
"login_info": "להשתמש בשם המשתמש והסיסמה מלשונית המשתמשים. פתחת ה־IMAP היא 143 עם STARTTLS, פתחת ה־SMTP היא 587 עם STARTTLS."
},
"password_manager": {
"login_info": "צריך ליצור חשבון באתר."
},
"video": {
"login_info": "לא צריך חשבון."
},
"git": {
"login_info": "צריך ליצור חשבון באתר. המשתמש הראשון יהיה המנהל."
},
"users": {
"login": "כניסה",
"new_user_info_note": "למשתמש חדש תוענק אוטומטית גישה לכל השירותים",
"delete_confirm_question": "להמשיך?",
"reset_password": "איפוס סיסמה",
"account": "חשבון",
"no_ssh_notice": "למשתמש זה נוצרים רק חשבונות דוא״ל ו־SSH. כניסה אחודה לכל השירותים מגיעה בקרוב.",
"details_title": "פרטי משתמש",
"add_new_user": "הוספת המשתמש הראשון",
"new_user": "משתמש חדש",
"delete_user": "מחיקת משתמש",
"nobody_here": "אי כאן אף אחד",
"could_not_fetch_users": "לא ניתן למשוך את רשימת המשתמשים",
"could_not_fetch_description": "נא לבדוק את החיבור שלך לאינטרנט ולנסות שוב",
"refresh_users": "רענון רשימת המשתמשים",
"could_not_create_user": "לא ניתן ליצור משתמש",
"could_not_delete_user": "לא ניתן למחוק משתמש",
"could_not_add_ssh_key": "לא ניתן להוסיף מפתח SSH",
"email_login": "כניסה עם דוא״ל",
"username_rule": "שם המשתמש חייב להכיל אותיות לטיניות קטנות, ספרות וקווים תחתיים ואסור לו להתחיל בספרה",
"user_already_exists": "כבר קיים משתמש עם שם המשתמש הזה"
},
"initializing": {
"select_provider_countries_text_hetzner": "גרמניה, פינלנד, ארה״ב",
"select_provider_countries_text_do": "ארה״ב, הולנד, סינגפור, אנגליה, גרמניה, קנדה, הודו, אוסטרליה",
"select_provider": "יש לבחור ספק מהרשימה שלהלן, כולם תומכים ב־SelfPrivacy",
"select_provider_notice": "הכוונה ב‚יחסית קטן’ היא מכונה עם 2 ליבות מעבד ו־2 גיגה בתים של זיכרון.",
"select_provider_countries_title": "מדינות זמינות",
"select_provider_price_text_hetzner": "€8 לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון",
"select_provider_payment_text_hetzner": "כרטיסי אשראי, העברה בנקאית, SEPA, PayPal",
"select_provider_price_text_do": "17$ לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון",
"select_provider_payment_title": "שיטות תשלום",
"select_provider_payment_text_do": "כרטיסי אשראי, Google Pay, PayPal",
"how": "איך לקבל אסימון API",
"provider_bad_key_error": "מפתח ה־API של הספק שגוי",
"could_not_connect": "לא ניתן להתחבר לספק.",
"locations_not_found": "אופס!",
"choose_location_type": "איפה להזמין את השרת שלך?",
"connect_to_server_provider_text": "עם אסימון API יכול SelfPrivacy לשכור מכונה ולהקים את השרת שלך עליה",
"multiple_domains_found_text": "האסימון שסיפקת מעניק גישה לשמות התחום הבאים. נא לבחור את האחד לשימוש. כדי לשמור על אבטחת שאר שמות התחום שלך, כדאי להגביל את הגישה של האסימון הזה רק לשם התחום שמיועד לשימוש עם SelfPrivacy.",
"use_this_domain_text": "האסימון שסיפקת מעניק גישה לשם התחום הבא",
"multiple_domains_found": "נמצאו מגוון שמות תחום",
"no_connected_domains": "אין שמות תחום מחוברים כרגע",
"one_more_restart": "הפעלה נוספת מחדש כדי להחיל את אישורי האבטחה שלך.",
"what": "מה זה אומר?",
"server_rebooted": "השרת הופעל מחדש. בהמתנה לאימות האחרון…",
"server_started": "השרת הופעל. הוא יאומת ויופעל מחדש כעת…",
"server_created": "השרת נוצר. בדיקות ה־DNS וטעינת השרת מתבצעות…",
"until_the_next_check": "עד לבדיקה הבאה: ",
"check": "בדיקה",
"steps": {
"server": "שרת",
"server_type": "סוג שרת",
"dns_provider": "ספק DNS",
"backups_provider": "גיבויים",
"domain": "שם תחום",
"master_account": "חשבון ראשי",
"hosting": "אירוח",
"dns_setup": "הגדרת DNS",
"nixos_installation": "התקנת NixOS",
"final_checks": "בדיקות אחרונות",
"server_reboot": "הפעלת השרת מחדש"
},
"select_provider_email_notice": "אירוח דוא״ל לא יהיה זמין ללקוחות חדשים. עם זאת, אפשרות זו תיפתח לאחר השלמת התשלום הראשון שלך.",
"choose_server_type_text": "קיבולות משאבים שונות תומכות בשירותים שונים. אל חשש, אפשר להגדיל את השרת שלך בכל עת",
"connect_to_server": "הבה נתחיל עם שרת.",
"select_provider_price_title": "מחיר ממוצע",
"select_provider_price_free": "חינם",
"select_provider_site_button": "ביקור באתר",
"connect_to_server_provider": "כעת יש להיכנס דרך ",
"choose_location_type_text": "מקומות שונים מציעים הגדרות, מחירים ומהירויות חיבור שונות לשרת.",
"locations_not_found_text": "אין שרתים זמינים להשכרה",
"back_to_locations": "נא לבחור משהו אחר",
"no_locations_found": "לא נמצאו מקומות זמינים, נא לוודא שהחשבון שלך זמין",
"choose_server_type_payment_storage": "{} לשטח אחסון נוסף",
"choose_server_type_payment_ip": "{} לכתובת ה־IPv4 הציבורית",
"dns_provider_bad_key_error": "מפתח ה־API שגוי",
"connect_to_dns": "חיבור לספק ה־DNS",
"select_dns": "עכשיו נבחר ספק DNS",
"use_this_domain": "להשתמש בשם התחום הזה?",
"loading_domain_list": "רשימת שמות התחום נטענת",
"choose_server_type": "איזה סוג של שרת נחוץ לך?",
"choose_server_type_ram": "{} ג״ב זיכרון",
"choose_server_type_storage": "{} ג״ב אחסון מערכת",
"choose_server_type_payment_per_month": "{} לחודש",
"choose_server_type_payment_server": "{} לשרת",
"backblaze_bad_key_error": "פרטי האחסון שלך ב־Backblaze שגויים",
"choose_server_type_notice": "הדברים החשובים לעקוב אחריהם הם המעבד והזיכרון. הנתונים של השירותים שלך יאוחסנו בכונן מעוגן שאפשר להגדיל בקלות והתשלום עליו נפרד.",
"save_domain": "שמירת שם התחום",
"final": "צעד אחרון",
"create_server": "יצירת שרת",
"enter_username_and_password": "נא למלא שם משתמש וסיסמה חזקה",
"create_master_account": "יצירת חשבון ראשי",
"checks": "בדיקות הושלמו \n{} מתוך {}",
"domain_critical_error": "לא הצלחנו להגיע לשם התחום הזה! נגיעה למידע נוסף…"
},
"recovering": {
"method_select_other_device": "יש לי גישה דרך מכשיר אחר",
"method_select_recovery_key": "יש לי מפתח שחזור",
"method_recovery_input_description": "נא לספק את מפתח השחזור שלך",
"fallback_select_description": "מה יש לך בדיוק? נא לבחור את האפשרות הזמינה הראשונה:",
"method_device_description": "יש לפתוח את היישום במכשיר אחר, לאחר מכן לגשת לעמוד המכשירים. שם ללחוץ על „הוספת מכשיר” כדי לקבל את האסימון שלך.",
"method_select_nothing": "אין לי אף אחד מאלה",
"method_device_button": "קיבלתי את האסימון שלי",
"method_device_input_description": "נא לספק את אסימון האימות שלך",
"method_device_input_placeholder": "אסימון",
"authorization_failed": "אי אפשר להיכנס עם המפתח הזה",
"fallback_select_provider_console_hint": "למשל: Hetzner.",
"fallback_select_root_ssh": "גישת על (root) ב־SSH לשרת.",
"fallback_select_provider_console": "גישה למסוף השרת של הספק שלי.",
"modal_confirmation_ip_valid": "ה־IP זהה לזה שברשומת ה־DNS",
"modal_confirmation_ip_invalid": "ה־IP שונה מזה שברשומת ה־DNS",
"generic_error": "הפעולה בוטלה, נא לנסות שוב.",
"recovery_main_header": "התחברות לשרת קיים",
"domain_recover_placeholder": "שם התחום שלך",
"domain_recover_error": "לא נמצא שרת עם שם תחום כזה",
"method_select_description": "נא לבחור שיטת שחזור:",
"provider_connected": "התחברות אל {}",
"domain_recovery_description": "נא למלא את שם תחום השרת לאספקת גישה:",
"fallback_select_token_copy": "העתקת אסימון האימות מגרסה אחרת של היישומון.",
"confirm_server": "אישור השרת",
"confirm_server_description": "השרת שלך נמצא! עכשיו צריך לוודא שזה הנכון:",
"confirm_server_accept": "כן! זה הנכון",
"provider_connected_placeholder": "אסימון {}",
"provider_connected_description": "נא לספק את האסימון עם גישה אל {}:",
"confirm_server_decline": "בחירה בשרת אחר",
"choose_server": "בחירה בשרת שלך",
"choose_server_description": "לא הצלחנו לפענח לאיזה מהשרתים ניסית להתחבר.",
"no_servers": "אין שרתים זמינים בחשבון שלך.",
"domain_not_available_on_token": "שם התחום הנבחר לא זמין לאסימון הזה.",
"modal_confirmation_title": "זה באמת השרת שלך?",
"modal_confirmation_description": "אם בחרת להתחבר לשרת הלא נכון הנתונים שלך עלולים להימחק לצמיתות.",
"modal_confirmation_dns_valid": "ה־DNS ההפוך תקף",
"modal_confirmation_dns_invalid": "ה־DNS ההפוך מצביע לשם תחום אחר"
},
"devices": {
"main_screen": {
"tip": "לחיצה על המכשיר תשלול לו את הגישה.",
"header": "מכשירים",
"description": "למכשירים האלה יש גישה מלאה לשרת דרך יישומון SelfPrivacy.",
"this_device": "המכשיר הזה",
"other_devices": "מכשירים אחרים",
"authorize_new_device": "אימות מכשיר חדש",
"access_granted_on": "הוענקה גישה דרך {}"
},
"add_new_device_screen": {
"header": "מכשיר חדש מאומת",
"description": "נא לספק את המפתח במכשיר לאישור:",
"please_wait": "נא להמתין",
"tip": "המפתח תקף ל־10 דקות.",
"expired": "תוקף המפתח פג.",
"get_new_key": "משיכת מפתח חדש"
},
"revoke_device_alert": {
"header": "לשלול גישה?",
"description": "למכשיר {} לא תהיה עוד גישה לשרת.",
"yes": "שלילה",
"no": "ביטול"
}
},
"recovery_key": {
"key_amount_toggle": "הגבלה לפי מספר שימושים",
"key_amount_field_title": "מספר שימושים מרבי",
"key_duedate_toggle": "הגבלה בזמן",
"key_duedate_field_title": "מועד תום התוקף",
"key_receive_button": "קבלת מפתח",
"key_receiving_done": "בוצע!",
"key_connection_error": "לא ניתן להתחבר לשרת.",
"key_synchronizing": "מתבצע סנכרון…",
"key_main_header": "ממפתח שחזור",
"key_valid_until": "תקף עד {}",
"key_main_description": "נחוץ לאימות SelfPrivacy כאשר כל שאר המכשירים שאינם מאומתים אינם זמינים.",
"key_valid": "המפתח שלך תקף",
"key_invalid": "המפתח שלך לא תקף עוד",
"key_valid_for": "תקף לטובת {} שימושים",
"key_creation_date": "נוצר ב־{}",
"key_replace_button": "הנפקת מפתח חדש",
"key_receiving_description": "יש לכתוב לך את המפתח הזה ולאחסן במקום בטוח. הוא משמש לשחזור הגישה המלאה לשרת שלך:",
"generation_error": "לא ניתן לייצר מפתח שחזור. {}",
"key_receiving_info": "המפתח לא יופיע עוד לעולם, אך אפשר להחליף אותו באחר."
},
"modals": {
"purge_all_keys": "למחוק לחלוטין את כל מפתחות האימות?",
"try_again": "לנסות שוב?",
"unexpected_error": "שגיאת פתע במהלך הצבה מצד הספק.",
"are_you_sure": "להמשיך?",
"destroy_server": "להשמיד את השרת וליצור אחד חדש?",
"purge_all_keys_confirm": "כן, למחוק לחלוטין את כל האסימונים שלי",
"delete_server_volume": "למחוק את השרת והכרך?",
"reboot": "להפעיל מחדש",
"yes": "כן",
"dns_removal_error": "לא ניתן להסיר רשומת DNS.",
"server_deletion_error": "לא ניתן למחוק שרת פעיל.",
"volume_creation_error": "לא ניתן ליצור כרך.",
"server_validators_error": "לא ניתן למשוך את השרתים הזמינים.",
"already_exists": "כבר קיים שרת כזה.",
"no": "לא"
},
"jobs": {
"service_turn_off": "כיבוי",
"service_turn_on": "הפעלה",
"job_added": "נוספה משימה",
"run_jobs": "הפעלת משימות",
"generic_error": "לא ניתן להתחבר לשרת!",
"title": "רשימת משימות",
"start": "התחלה",
"empty": "אין משימות",
"create_user": "יצירת משתמש",
"delete_user": "מחיקת משתמש",
"reboot_success": "השרת מופעל מחדש",
"upgrade_success": "החל שדרוג השרת",
"upgrade_failed": "שדרוג השרת נכשל",
"upgrade_server": "שדרוג שרת",
"reboot_server": "הפעלת שרת מחדש",
"create_ssh_key": "יצירת מפתח SSH עבור {}",
"delete_ssh_key": "מחיקת מפתח SSH עבור {}",
"server_jobs": "משימות בשרת",
"reset_user_password": "איפוס סיסמת משתמש",
"reboot_failed": "לא ניתן להפעיל את השרת מחדש. נא לעיין ביומני היישום.",
"config_pull_failed": "משיכת שדרוג ההגדרות נכשלה. שדרוג התוכנה החל בכל זאת.",
"job_postponed": "נוספה משימה, אך לא תהיה לך אפשרות להפעיל אותה לאחר סיום המשימות הנוכחיות",
"job_removed": "משימה הוסרה",
"rebuild_system": "בניית המערכת מחדש",
"start_server_upgrade": "התחלת שדרוג השרת",
"change_auto_upgrade_settings": "שינוי הגדרות השדרוג האוטומטי",
"change_server_timezone": "שינוי אזור הזמן של השרת"
},
"validations": {
"required": "נחוץ",
"already_exist": "כבר קיים",
"invalid_format": "תבנית שגויה",
"invalid_format_password": "הסיסמה לא יכולה להכיל רווחים",
"invalid_format_ssh": "חייב לעקוב אחר תבנית מפתח ה־SSH",
"root_name": "לא יכול להיות root (משתמש העל)",
"length_not_equal": "האורך הוא [], אמור להיות {}",
"length_longer": "האורך הוא [], אמור להיות קצר או שווה ל־{}"
},
"developer_settings": {
"cubit_statuses": "מצבי טעינת Cubit",
"routing": "ניתוב יישומים",
"reset_onboarding": "איפוס מתג קבלת פנים",
"reset_onboarding_description": "יש לאפס את מתג קבלת הפנים כדי להציג שוב את מסך קבלת הפנים",
"title": "הגדרות מפתחים",
"subtitle": "ההגדרות האלו הן לניפוי שגיאות בלבד. לא לשנות אותן אלא אם כן ברור לך לחלוטין מה כל דבר עושה.",
"server_setup": "הגדרת שרת",
"use_staging_acme_description": "חל על הקמת שרתים חדשים.",
"use_staging_acme": "להשתמש בשרת ACME לבדיקות",
"ignore_tls": "לא לאמת אישורי TLS",
"ignore_tls_description": "היישום לא יאמת אישורי RLS בעת התחברות לשרת.",
"add_root_ssh_key": "הוספת מפתח SSH למשתמש העל (root)",
"allow_ssh_key_at_setup": "לאפשר הגדרת מפתח SSH למשתמש העל (root) במהלך ההתקנה",
"allow_ssh_key_at_setup_description": "כפתור להוספת מפתח יופיע במסך האישור.",
"root_ssh_key_added": "מפתח SSH למשתמש העל (root) הוגדר והוחל"
},
"cloud": {
"login_info": "שם המשתמש הוא admin, הסיסמה זהה לזאת של המשתמש הראשי שלך. אפשר ליצור חשבונות חדשים דרך המנשק של ה־Nextcloud שלך."
},
"social_network": {
"login_info": "צריך ליצור חשבון באתר."
},
"timer": {
"sec": "{} שנ׳"
},
"support": {
"title": "תמיכה של SelfPrivacy"
}
}

View File

@ -1 +1,5 @@
{}
{
"basis": {
"copied_to_clipboard": "\n"
}
}

View File

@ -1 +1,7 @@
{}
{
"test": "jp-test",
"locale": "jp",
"basis": {
"app_name": "SelfPrivacy"
}
}

View File

@ -1 +1,136 @@
{}
{
"test": "kz-test",
"locale": "kz",
"basis": {
"app_name": "SelfPrivacy",
"providers": "Провайдерлер",
"providers_title": "Сіздің Деректер Орталығыңыз",
"got_it": "Түсіндім",
"select": "Таңдау",
"services_title": "Сіздің жеке, жеке және тәуелсіз қызметтеріңіз.",
"more": "Толығырақ",
"next": "Келесі",
"settings": "Параметрлер",
"password": "Құпия сөз",
"create": "Жаңаны қосу",
"confirmation": "Растау",
"users": "Пайдаланушылар",
"network_error": "Желі қатесі",
"username": "Пайдаланушы аты",
"later": "Кейінірек",
"reset": "Қалпына келтіру",
"loading": "Жүктеу…",
"connect_to_existing": "Бар болғанға қосылу!",
"wait": "Күте тұрыңыз",
"remove": "Аластау",
"apply": "Қолдану",
"no_data": "Деректер жоқ",
"done": "Аяқталды",
"continue": "Жалғастыру",
"alert": "Ескерту",
"details": "Толығырақ ақпарат",
"saving": "Сақтау…",
"services": "Қызметтер",
"cancel": "Бас тарту",
"delete": "Жою",
"close": "Жабу",
"connect": "Қосылу",
"domain": "Домен",
"copied_to_clipboard": "Буферге көшірілді!",
"please_connect": "Қосылуыңызды сұраймыз!"
},
"more_page": {
"onboarding": "Қосылу процессі",
"create_ssh_key": "SSH кілтін құру",
"configuration_wizard": "Конфигурация көмекшісі"
},
"ssh": {
"create": "Жасау",
"title": "SSH",
"delete": "SSH кілтін жою",
"delete_confirm_question": "Жоюды растау сұрағы?",
"root_subtitle": "Root сипаттамасы.",
"no_key_name": "Кілт атауы жоқ",
"root_title": "Root атауы",
"input_label": "Енгізу жолағы"
},
"onboarding": {
"page2_dns_provider_title": "2-бет DNS провайдер аталымы",
"page2_dns_provider_text": "Интернетте болу үшін домен қажет. Домендің сайтіңізге бағытына қарайтында, үзінді DNS-сервер қажет. Біз сізден қолайлы реттеудің арасынан бірін сайлауығымызды ұсынамыз, барлық жазбаларды автоматты түрде орнатамыз. Оларды қолмен қолдауға алу керек пе? Сол тұра мүмкін.",
"page2_backup_provider_text": "Серверде неғиздік не іске меселе келе ме? Хакерлік хампшылығы, қызмет қабылдауды тыйым салу немесе қоршаған жадылықтар? Сіздің деректеріңіз басқа орында қадамдық сайтты көшетуші қолжетімділік болады, қолдаушы жеделдіктеме жасайтын жерде сақталады. Олардың барлығы үнемі шифрланады, сондықтан серверіңізді көбейтіп алуға болады.",
"page2_title": "Бағдарламаны баптау 2-бет",
"page2_server_provider_title": "Сервер провайдерінің атауы",
"page1_text": "Бағдарламаны баптау 1-бет мәтіні.",
"page2_server_provider_text": "Сервер-провайдер серверіңізді оғанға өз дата-мерзімінде қызмет көрсетеді. SelfPrivacy онымен автоматты түрде байланыс байланған және серверді сізге орнатады.",
"page2_text": "SelfPrivacy тек сіздің таңдаған сервистік ұсыныстармен жұмыс істейді. Сізде тіркелгі жоқ болса, біз оны жасауға көмек көрсетеміз.",
"page1_title": "Бағдарламаны баптау 1-бет",
"page2_backup_provider_title": "2-бет сақтандыру провайдер аталымы"
},
"about_application_page": {
"title": "Бағдарлама жайлы",
"versions": "Нұсқалары",
"application_version_text": "Бағдарлама нұсқасы",
"api_version_text": "API нұсқасы",
"open_source_licenses": "Опенсорс лицензиялары",
"links": "Сілтемелер",
"website": "Вебсайт",
"documentation": "Құжаттама",
"matrix_channel": "Matrix арнасы",
"telegram_channel": "Telegram арнасы",
"get_support": "Қолдау алу",
"matrix_support_chat": "Matrix қолдау чаты",
"telegram_support_chat": "Telegram қолдау чаты",
"email_support": "Электрондық пошта арқылы қолдау",
"contribute": "Үлес қосу",
"source_code": "Бастапқы код",
"bug_report": "Қате туралы хабарлау",
"matrix_contributors_chat": "Үлес қосушылардың Matrix чаты",
"help_translate": "Аудармаға көмектесу",
"telegram_contributors_chat": "Үлес қосушылардың Telegram чаты",
"privacy_policy": "Құпиялылық саясаты",
"bug_report_subtitle": "Спамға байланысты есептік жазбаны қолмен растау қажет. Тіркелгіні белсендіру үшін Қолдау чатында бізге хабарласыңыз."
},
"application_settings": {
"dangerous_settings": "Қауіпті параметрлер",
"reset_config_title": "Конфигурацияны қалпына келтіру",
"title": "Қосымша параметрлері",
"system_dark_theme_title": "Системалық қараңғы тақырып",
"system_dark_theme_description": "Системалық қараңғы тақырып сипаттамасы",
"dark_theme_title": "Қараңғы тақырып",
"dark_theme_description": "Қараңғы тақырып сипаттамасы",
"delete_server_title": "Серверді жою",
"reset_config_description": "Конфигурацияны қалпына келтіру сипаттамасы.",
"delete_server_description": "Серверді жою сипаттамасы."
},
"resource_chart": {
"month": "Ай",
"day": "Күн",
"hour": "Сағат",
"cpu_title": "Процессор атауы",
"network_title": "Желі атауы",
"in": "Кіру",
"out": "Шығу"
},
"server": {
"card_title": "Сервер карточкасы",
"server_id": "Сервер идентификаторы",
"status": "Күй",
"cpu": "CPU",
"ram": "RAM",
"description": "Сипаттама",
"general_information": "Жалпы ақпарат",
"allow_autoupgrade": "Автоматты жаңартуға рұқсат етілген",
"resource_usage": "Ресурс пайдалануы",
"allow_autoupgrade_hint": "Автоматты жаңартуға рұқсат етілген сілтеме",
"reboot_after_upgrade": "Жаңартудан кейін қайта жүктеу",
"reboot_after_upgrade_hint": "Жаңартудан кейін қайта жүктеу түсініктемесі",
"server_timezone": "Сервер уақыты белдеуі",
"select_timezone": "Уақыт белдеуін таңдау",
"timezone_search_bar": "Уақыт белдеуі іздеу жолағы"
},
"console_page": {
"title": "Консоль",
"waiting": "Күтуде…",
"copy": "Көшіру"
}
}

188
assets/translations/lv.json Normal file
View File

@ -0,0 +1,188 @@
{
"test": "lv-test",
"basis": {
"app_name": "SelfPrivacy",
"providers_title": "Tavs Datu Centrs",
"select": "Izvēlies",
"services": "Servisi",
"services_title": "Tavi personīgie, privātie un neatkarīgie servisi.",
"users": "Lietotāji",
"more": "Vairāk",
"next": "Nākamais",
"got_it": "Sapratu",
"password": "Parole",
"create": "Pievienot jaunu",
"confirmation": "Apstiprinājums",
"cancel": "Atcelt",
"delete": "Izdzēst",
"close": "Aizvērt",
"connect": "Savienoties",
"domain": "Domēna",
"saving": "Saglabā…",
"username": "Lietotājvārds",
"later": "Izlaist un iestatīt vēlāk",
"connect_to_existing": "Savienoties ar esošu serveri",
"reset": "Atiestatīt",
"details": "Detaļas",
"no_data": "Nav dati",
"wait": "Uzgaidiet",
"remove": "Noņemt",
"apply": "Pieteikties",
"done": "Pabeigts",
"alert": "Brīdinājums",
"providers": "Sniedzēji",
"settings": "Iestatījumi",
"loading": "Lādē…",
"continue": "Turpināt"
},
"more_page": {
"configuration_wizard": "Iestatīšanas vednis",
"onboarding": "Pievienošanās",
"create_ssh_key": "Superlietotāja SSH atslēgas"
},
"console_page": {
"title": "Konsole",
"copy": "Kopēt",
"waiting": "Gaida inicializatīnu…"
},
"about_application_page": {
"title": "Par",
"application_version_text": "Aplikācijas versija",
"api_version_text": "Servera API versija",
"privacy_policy": "Privātuma politika"
},
"application_settings": {
"system_dark_theme_title": "Sistēmas noklusējuma dizains",
"dark_theme_title": "Tumšs dizains",
"title": "Aplikācijas iestatījumi",
"system_dark_theme_description": "Izmantojiet gaišu vai tumšu dizainu atkarībā no sistēmas iestatījumiem",
"dark_theme_description": "Lietojumprogrammas dizaina pārslēgšana",
"dangerous_settings": "Bīstamie iestatījumi",
"reset_config_title": "Atiestatīt lietojumprogrammas konfigurāciju",
"reset_config_description": "Atiestatīt API atslēgas un saknes lietotāju.",
"delete_server_title": "Izdzēst serveri",
"delete_server_description": "Šis izdzēš jūsu serveri. Tas vairs nebūs pieejams."
},
"locale": "lv",
"ssh": {
"title": "SSH atslēgas",
"create": "Izveidot SSH atslēgu",
"delete": "Izdzēst SSH atslēgu",
"no_key_name": "Nenosaukta atslēga",
"root_title": "Šīs ir superlietotāja atslēgas",
"input_label": "Publiska ED25519 vai RSA atslēga",
"delete_confirm_question": "Vai jūs esat pārliecināti, ka vēlaties izdzēst SSH atslēgu?",
"root_subtitle": "Šo atslēgu īpašnieki saņem pilnu piekļuvi serverim un var ar to kaut ko darīt. Pievienojiet serverim tikai savas atslēgas."
},
"onboarding": {
"page1_title": "Digitālā neatkarība, kas pieejama mums visiem",
"page1_text": "Pasts, VPN, Ziņnesis, sociālie tīkli un daudz cits uz tava privātā servera, zem tavas kontroles.",
"page2_title": "SelfPrivacy nav mākonis, tas ir tavs personīgais datu centrs",
"page2_server_provider_title": "Servera sniedzējs",
"page2_server_provider_text": "Servera sniedzējs uztur tavu serveri savā datu centrā. SelfPrivacy automātiksi savienosies ar sniedzēju un uzstādīs visas vajadzīgās lietas.",
"page2_dns_provider_title": "DNS sniedzējs",
"page2_backup_provider_title": "Dublēšanas pakalpojumu sniedzējs",
"page2_backup_provider_text": "Ko darīt, ja kaut kas notiek ar jūsu serveri? Iedomājieties hakeru uzbrukumu, nejaušu datu dzēšanu vai pakalpojuma atteikumu? Jūsu dati tiks glabāti drošībā pie dublējumu nodrošinātāja. Tie būs droši šifrēti un jebkurā laikā pieejami, lai atjaunotu jūsu serveri ar.",
"page2_text": "SelfPrivacy tikai darbojas ar tiem sniedzējiem, ko tu izvēlies. Ja tev nav nepieciešamie konti tajos, mēs tev palīdzēsim tos uztaisīt.",
"page2_dns_provider_text": "Jums ir nepieciešams domēns, lai būtu vieta internetā. Un jums ir nepieciešams arī uzticams DNS nodrošinātājs, lai domēns būtu vērsts uz jūsu serveri. Mēs iesakām izvēlēties atbalstītu DNS nodrošinātāju, lai automātiski iestatītu tīklošanu."
},
"resource_chart": {
"month": "Mēnesis",
"day": "Diena",
"hour": "Stunda",
"cpu_title": "CPU izmantošana",
"network_title": "Tīkla lietojums",
"in": "Iekšā",
"out": "Ārā"
},
"server": {
"card_title": "Serveris",
"description": "Visi tavi serveri dzīvo šeit",
"general_information": "Vispārīga informācija",
"resource_usage": "Resursu izmantošana",
"allow_autoupgrade": "Atļaut automātisko jaunināšanu",
"allow_autoupgrade_hint": "Automātisko pakotņu jaunināšanas atļaušana serverī",
"reboot_after_upgrade": "Atsāknēšana pēc jaunināšanas",
"reboot_after_upgrade_hint": "Atsāknēšana bez tūlītējas pēc izmaiņu piemērošanas serverī",
"select_timezone": "Laika joslas atlasīšana",
"timezone_search_bar": "Laika joslas nosaukums vai laika nobīdes vērtība",
"server_id": "Servera ID",
"status": "Status",
"cpu": "CPU",
"disk": "Disks lokāls",
"monthly_cost": "Mēneša maksa",
"location": "Vieta",
"core_count": {
"one": "{} kodols",
"two": "{} kodoli",
"few": "{} kodoli",
"many": "{} kodoli",
"other": "{} kodoli"
},
"server_timezone": "Servera laika josla",
"ram": "Atmiņa"
},
"domain": {
"card_title": "Domēns",
"screen_title": "Domēns un DNS",
"ok": "Ieraksti ir kārtībā",
"error": "Atrastas problēmas",
"refreshing": "Notiek statusa atsvaidzināšana…",
"uninitialized": "Dati vēl nav izgūti",
"services_title": "Pakalpojumi",
"email_title": "E-pasts",
"email_subtitle": "Ieraksti nepieciešami drošai e-pasta apmaiņai.",
"update_list": "Atjaunināt sarakstu",
"error_subtitle": "Pieskarieties šeit, lai tos labotu",
"services_subtitle": "Tips \"A\" ieraksti nepieciešami katram pakalpojumam."
},
"backup": {
"card_title": "Rezerves",
"description": "Izglābs jūsu dienu incidenta gadījumā: hakeru uzbrukums, servera dzēšana utt.",
"reupload_key": "Piespiedu atkārtotas augšupielādes atslēga",
"initialize": "Inicializēt",
"restore": "Atjaunono dublējuma",
"no_backups": "Vēl nav dublējumu",
"create_new": "Jauna dublējuma izveide",
"refresh": "Atsvaidzināšanas statuss",
"reuploaded_key": "Atslēga atkārtoti ielādēta",
"restore_alert": "Jūs gatavojaties atjaunot no dublējuma, kas izveidots {}. Visi pašreizējie dati tiks zaudēti. Vai esi pārliecināts?",
"refetch_backups": "Atkārtoti ielādēt dublējumkopiju sarakstu",
"refetching_list": "Pēc dažām minūtēm saraksts tiks atjaunināts"
},
"service_page": {
"uses": "Izmanto {usage} uz {volume}",
"open_in_browser": "Atvērt pārlūkprogrammā",
"restart": "Restartējiet pakalpojumu",
"disable": "Atspējot pakalpojumu",
"enable": "Iespējot pakalpojumu",
"move": "Pāriet uz citu sējumu",
"status": {
"active": "Darbojas",
"inactive": "Apstājies"
}
},
"storage": {
"start_migration_button": "Sāciet migrāciju",
"card_title": "Servera krātuve",
"status_ok": "Diska lietojums ir kārtībā",
"status_error": "Maz vietas diskā",
"disk_usage": "{} izmantots",
"disk_total": "{} Kopā · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Baiti",
"extend_volume_button": "Pagarināt skaļumu",
"extending_volume_title": "Skaļuma paplašināšana",
"extending_volume_description": "Skaļuma lieluma maiņa ļaus serverī saglabāt vairāk datu, nepagarinot pašu serveri. Skaļumu var tikai palielināt: sarukt nav iespējams.",
"extending_volume_price_info": "Cenā ir iekļauts PVN, un tā ir aprēķināta no Hetzner sniegtajiem cenu datiem. Pēc izmēra maiņas serveris tiks restartēts.",
"extending_volume_error": "Nevarēja inicializēt skaļuma palielināšanu.",
"size": "Lielums",
"data_migration_title": "Datu migrācija",
"data_migration_notice": "Migrācijas laikā visi pakalpojumi tiks izslēgti."
},
"not_ready_card": {
"in_menu": "Serveris vēl nav iestatīts. Lūdzu, pabeidziet iestatīšanu, izmantojot iestatīšanas vedni, lai turpinātu darbu."
}
}

View File

@ -0,0 +1,9 @@
{
"test": "mk-test",
"basis": {
"providers": "Провајдери",
"providers_title": "Вашиот центар за податоци",
"select": "Изберите"
},
"locale": "mk"
}

View File

@ -22,7 +22,7 @@
"saving": "Zapisywanie…",
"username": "Nazwa użytkownika",
"loading": "Ładowanie…",
"connect_to_existing": "Podłącz do istniejącego serwera",
"connect_to_existing": "Mam już serwer SelfPrivacy!",
"reset": "Zresetuj to",
"details": "Dokładna informacja",
"no_data": "Brak danych",
@ -31,29 +31,27 @@
"apply": "Zastosuj to",
"done": "Gotowe",
"continue": "Kontynuować",
"alert": "Powiadomienie"
"alert": "Powiadomienie",
"app_name": "SelfPrivacy",
"please_connect": "Połącz się z serwerem, aby rozpocząć grę!",
"copied_to_clipboard": "Skopiowane do schowka!"
},
"test": "pl-test",
"locale": "pl",
"more_page": {
"about_project": "O projekcie \"SelfPrivacy\"",
"about_application": "O aplikacji",
"create_ssh_key": "SSH klucze administratora",
"console": "Konsola",
"configuration_wizard": "Kreator konfiguracji",
"application_settings": "Ustawienia aplikacji"
"onboarding": "Witamy"
},
"console_page": {
"title": "Konsola",
"waiting": "Oczekiwanie na inicjalizację…"
},
"about_us_page": {
"title": "O projekcie \"SelfPrivacy\""
"waiting": "Oczekiwanie na inicjalizację…",
"copy": "Kopia"
},
"about_application_page": {
"title": "O aplikacji",
"application_version_text": "Wersja aplikacji v.{}",
"api_version_text": "Wersja API serwera v.{}",
"application_version_text": "Wersja aplikacji",
"api_version_text": "Wersja API serwera",
"privacy_policy": "Polityka prywatności"
},
"application_settings": {
@ -61,18 +59,19 @@
"dark_theme_title": "Ciemny motyw aplikacji",
"dark_theme_description": "Zmień kolor motywu aplikacji",
"reset_config_title": "Resetowanie",
"reset_config_description": "Zresetuj klucze API i użytkownika root",
"reset_config_description": "Zresetuj klucze API i użytkownika root.",
"delete_server_title": "Usuń serwer",
"delete_server_description": "Ta czynność usunie serwer. Po tym będzie niedostępny."
"delete_server_description": "Ta czynność usunie serwer. Po tym będzie niedostępny.",
"system_dark_theme_description": "Użyj jasnego lub ciemnego motywu w zależności od ustawień systemu",
"system_dark_theme_title": "Domyślny motyw systemowy",
"dangerous_settings": "Niebezpieczne ustawienia"
},
"ssh": {
"title": "klucze SSH",
"delete": "Usuń klucz SSH",
"subtitle_with_keys": "Klucze: {}",
"subtitle_without_keys": "Brak kluczy",
"no_key_name": "Bezimienny klucz",
"root_title": "To są klucze superużytkownika",
"input_label": "Publiczny klucz ED25519 lub RSA",
"input_label": "Publiczny klucz ED25519, ECDSA lub RSA",
"create": "Dodaj klucz SSH",
"delete_confirm_question": "Czy na pewno chcesz usunąć następny klucz?",
"root_subtitle": "Właściciele określonych tutaj kluczy uzyskują pełny dostęp do danych i ustawień serwera. Dodaj tylko swoje klucze."
@ -112,7 +111,6 @@
"disk": "Dysk lokalny",
"monthly_cost": "Koszt miesięczny",
"location": "Lokalizacja danych",
"provider": "Dostawca",
"core_count": {
"one": "{} jądro",
"two": "{} jądra",
@ -124,21 +122,10 @@
"allow_autoupgrade": "Zezwalaj na automatyczne aktualizacje",
"reboot_after_upgrade_hint": "Automatycznie uruchom ponownie serwer po zastosowaniu aktualizacji",
"select_timezone": "Wybierz swoją strefę czasową",
"timezone_search_bar": "Nazwa strefy czasowej lub wartość przesunięcia czasu"
},
"record": {
"root": "Domena główna",
"cloud": "Chmura plików",
"git": "Git serwer",
"meet": "Wideokonferencje",
"social": "Serwis społecznościowy",
"password": "Menedżer haseł",
"vpn": "VPN",
"dmarc": "Zapisywanie rekord",
"spf": "Zapisywanie SPF",
"dkim": "DKIM klucz",
"api": "SelfPrivacy API",
"mx": "Zapisywanie MX"
"timezone_search_bar": "Nazwa strefy czasowej lub znaczenie przesunięcia czasowego",
"server_provider": "Provider serwera",
"dns_provider": "Dostawca DNS",
"pricing_error": "Nie udało się uzyskać cen dostawców"
},
"domain": {
"card_title": "Domena",
@ -151,20 +138,367 @@
"email_title": "Email",
"update_list": "Zaktualizuj listę",
"ok": "Zapisy są w porządku",
"error_subtitle": "Kliknij tutaj, aby naprawić",
"error_subtitle": "Stuknij tutaj, aby je naprawić. Spowoduje to również usunięcie niestandardowych rekordów.",
"email_subtitle": "Zapisy wymagane do bezpiecznej wymiany poczty elektronicznej."
},
"backup": {
"card_title": "Utworzyć kopię zapasową",
"description": "Pomoże Ci w każdej sytuacji: atak hakerski, usunięcie serwera, itp.",
"reupload_key": "Wymuś aktualizację klucza",
"reuploaded_key": "Zaktualizowano klucz na serwerze",
"initialize": "Inicjalizacja",
"reuploaded_key": "Klucz na serwerze został zaktualizowany",
"initialize": "Nastawić",
"restore": "Przywróć z kopii",
"no_backups": "Nie ma jeszcze żadnych kopii zapasowych",
"create_new": "Utwórz nową kopię",
"creating": "Tworzenie kopii: {}%",
"restoring": "Przywracanie z kopii",
"waiting_for_rebuild": "Po kilku minutach będziesz mógł utworzyć pierwszą kopię."
"refresh": "Odśwież status",
"refetch_backups": "Ponownie pobierz listę kopii zapasowych",
"refetching_list": "Za kilka minut lista zostanie zaktualizowana",
"restore_alert": "Za chwilę przywrócisz z kopii utworzonej przez {}. Wszystkie bieżące dane zostaną utracone. Jesteś pewny?",
"backups_encryption_key_description": "Ten klucz służy do szyfrowania kopii zapasowych. Jeśli go zgubisz, nie będziesz w stanie przywrócić kopii zapasowych. Przechowuj go w bezpiecznym miejscu, ponieważ będzie przydatny, jeśli kiedykolwiek będziesz musiał ręcznie przywrócić dane z kopii zapasowych.",
"snapshot_modal_download_verify_option_description": "Less risk, but more free space needed. Downloads entire snapshot to the temporary storage, verifies it and then replaces the current data.",
"refetch_backups_subtitle": "Unieważnienie pamięci podręcznej i ponowne pobranie danych od dostawcy pamięci masowej. Może to spowodować naliczenie dodatkowych opłat.",
"snapshot_modal_service_not_found": "Jest to migawka usługi, której nie ma już na serwerze. Zwykle nie powinno się to zdarzyć i nie możemy wykonać automatycznego przywracania. Nadal możesz pobrać migawkę i przywrócić ją ręcznie. Skontaktuj się z pomocą techniczną SelfPrivacy, jeśli potrzebujesz pomocy.",
"backups_encryption_key_subtitle": "Przechowuj go w bezpiecznym miejscu.",
"quotas_only_applied_to_autobackups": "Te ustawienia są stosowane tylko do automatycznych kopii zapasowych. Ręczne kopie zapasowe nie zostaną usunięte.",
"card_subtitle": "Zarządzanie kopiami zapasowymi",
"latest_snapshots_subtitle": "Wyświetlanie ostatnich 15 migawek",
"show_more": "Pokaż więcej",
"autobackup_period_title": "Okres automatycznego tworzenia kopii zapasowych",
"autobackup_period_subtitle": "Kopie zapasowe tworzone co {okres}",
"autobackup_period_never": "Automatyczne kopie zapasowe są wyłączone",
"snapshot_reasons": {
"unknown": "Nieznany",
"auto": "Utworzony automatycznie",
"explicit": "Utworzone na wyraźne żądanie użytkownika",
"pre_restore": "Utworzony jako środek ostrożności przed ryzykownym przywracaniem"
},
"set_rotation_quotas": "Ustaw nowe limity rotacji",
"backups_encryption_key_not_found": "Nie znaleziono klucza szyfrowania, spróbuj ponownie później.",
"snapshots_title": "Lista migawek",
"reupload_key_subtitle": "Nakaże serwerowi ponowne zainicjowanie magazynu kopii zapasowych. Użyj, jeśli coś jest uszkodzone.",
"select_all": "Kopiuj wszystko",
"create_new_select_heading": "Wybór elementów do utworzenia kopii zapasowej",
"start": "Rozpocznij tworzenie kopii zapasowej",
"backups_encryption_key_copy": "Kopiowanie klucza szyfrowania",
"backups_encryption_key_show": "Pokaż klucz szyfrowania",
"pending_jobs": "Aktualnie uruchomione zadania tworzenia kopii zapasowych",
"forget_snapshot": "Zapomnij o migawce",
"forget_snapshot_alert": "Zamierzasz usunąć tę migawkę. Czy na pewno? Tej akcji zazwyczaj nie można cofnąć.",
"forget_snapshot_error": "Nie mogłem zapomnieć migawki",
"snapshot_modal_heading": "Szczegóły migawki",
"snapshot_service_title": "Usługa",
"snapshot_creation_time_title": "Czas tworzenia",
"snapshot_modal_select_strategy": "Wybierz strategię przywracania",
"snapshot_modal_download_verify_option_title": "Pobierz, zweryfikuj, a następnie wymień",
"snapshot_modal_inplace_option_title": "Zastąp w miejscu",
"snapshot_modal_inplace_option_description": "Mniej wolnego miejsca, ale większe ryzyko. Zastępuje bieżące dane danymi z migawki podczas pobierania.",
"restore_started": "Przywracanie rozpoczęte, sprawdź aktualny status na liście zadań.",
"snapshot_reason_title": "Przyczyna stworzenia",
"service_busy": "Trwa kolejna operacja tworzenia kopii zapasowej",
"latest_snapshots": "Najnowsze zdjęcia",
"autobackup_period_every": "Każdy {okres}",
"autobackup_period_disable": "Wyłącz automatyczne tworzenie kopii zapasowych",
"autobackup_set_period": "Ustawiony okres",
"backups_encryption_key": "Klucz szyfrowania"
},
"storage": {
"card_title": "Pamięć serwera",
"status_ok": "Użycie dysku jest OK",
"status_error": "Mało miejsca na dysku",
"disk_usage": "{} użyte",
"disk_total": "{} całkowity · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Bajt",
"extend_volume_button": "Rozwiń pamięć",
"extending_volume_title": "Rozszerzenie pamięci",
"extending_volume_price_info": "Cena zawiera podatek VAT i jest oparta na danych cenowych dostarczonych przez firmę Hetzner. Serwer zostanie zrestartowany w trakcie procesu.",
"extending_volume_error": "Nie można rozpocząć rozszerzenia repozytorium.",
"size": "Rozmiar",
"data_migration_title": "Migracja danych",
"data_migration_notice": "Na czas migracji danych wszystkie usługi zostaną wyłączone.",
"start_migration_button": "Rozpocznij migrację",
"extending_volume_description": "Zmiana rozmiaru pamięci masowej pozwoli na przechowywanie większej ilości danych na serwerze bez rozszerzenia serwera. Objętość można tylko zwiększyć, nie można jej zmniejszyć."
},
"service_page": {
"open_in_browser": "Otwórz w przeglądarce",
"status": {
"activating": "Włącza się",
"deactivating": "Wyłącza się",
"reloading": "Uruchamia się ponownie",
"off": "Wyłączone",
"inactive": "Zatrzymany",
"active": "Włączone i działa",
"failed": "Nie udało sie uruchomić"
},
"move": "Przeniesienie do innego woluminu",
"enable": "Włącz usługę",
"restart": "Uruchom ponownie usługę",
"disable": "Wyłącz usługę",
"uses": "Używa {usage} na {volume}"
},
"mail": {
"login_info": "Użyj nazwy użytkownika i hasła z listy użytkowników. Port IMAP: 143, STARTTLS. Port SMTP: 587, STARTTLS."
},
"password_manager": {
"login_info": "Konto należy założyć na stronie internetowej."
},
"video": {
"login_info": "Konto nie jest potrzebne."
},
"cloud": {
"login_info": "Login jest admin, hasło jest takie samo jak w przypadku głównego użytkownika. Utwórz nowe konta w interfejsie Nextcloud."
},
"social_network": {
"login_info": "Konto należy założyć na stronie."
},
"git": {
"login_info": "Konto należy założyć na stronie. Pierwszy zarejestrowany użytkownik zostaje administratorem."
},
"users": {
"add_new_user": "Dodaj pierwszego użytkownika",
"new_user": "Nowy użytkownik",
"delete_user": "Usuń użytkownika",
"nobody_here": "Tu będą pojawią się użytkownicy",
"login": "Login",
"new_user_info_note": "Nowy użytkownik automatycznie otrzyma dostęp do wszystkich serwisów",
"delete_confirm_question": "Czy naprawdę chcesz usunąć konto?",
"reset_password": "Zresetuj hasło",
"account": "Konto",
"could_not_fetch_users": "Nie udało się uzyskać użytkowników",
"could_not_fetch_description": "Sprawdź połączenie internetowe i spróbuj ponownie",
"refresh_users": "Odśwież listę użytkowników",
"could_not_create_user": "Nie udało się utworzyć użytkownika",
"could_not_delete_user": "Nie udało się usunąć użytkownika",
"could_not_add_ssh_key": "Nie udało się utworzyć SSH klucz",
"username_rule": "Nazwa użytkownika może zawierać tylko małe litery alfabetu łacińskiego, cyfry i podkreślenia, nie może zaczynać się od cyfry",
"email_login": "Logowanie e-mailem",
"no_ssh_notice": "Dla tego użytkownika tworzone są tylko konta e-mail i SSH. Jednokrotne logowanie do wszystkich usług będzie dostępne wkrótce.",
"details_title": "Dane użytkownika"
},
"validations": {
"length_longer": "Długość ciągu znaków [] musi być mniejsza lub równa {}",
"length_not_equal": "Długość jest [], ależ powinna być {}",
"already_exist": "Już jest",
"invalid_format": "Nieprwidłowy format",
"required": "Potrzebien",
"root_name": "Nie może być 'root'",
"invalid_format_ssh": "Potrzebien format klucza SSH",
"invalid_format_password": "Hasło nie może zawierać spacji"
},
"not_ready_card": {
"in_menu": "Serwer jeszcze nie jest skonfigurowany, użyj kreatora połączeń."
},
"initializing": {
"connect_to_server": "Zacznijmy od serwera.",
"select_provider": "Wybierz dowolnego dostawcę z poniższej listy, wszyscy obsługują SelfPrivacy",
"select_provider_notice": "Przez \"stosunkowo małą\" rozumiemy maszynę z 2 rdzeniami procesora i 2 gigabajtami pamięci RAM.",
"select_provider_countries_title": "Dostępne kraje",
"select_provider_countries_text_hetzner": "Niemcy, Finlandia, USA",
"select_provider_countries_text_do": "USA, Holandia, Singapur, Wielka Brytania, Niemcy, Kanada, Indie, Australia",
"select_provider_payment_text_do": "Karty kredytowe, Google Pay, PayPal",
"select_provider_email_notice": "Hosting poczty e-mail nie będzie dostępny dla nowych klientów. Niemniej jednak zostanie odblokowany, gdy tylko dokonasz pierwszej płatności.",
"select_provider_site_button": "Odwiedź storonkę",
"select_provider_price_title": "Średnia cena",
"select_provider_price_text_hetzner": "€8 miesięcznie za stosunkowo mały serwer i 50GB miejsca na dysku",
"select_provider_price_text_do": "$17 miesięcznie za stosunkowo mały serwer i 50GB miejsca na dysku",
"select_provider_payment_title": "Metody płatności",
"select_provider_payment_text_hetzner": "Karty kredytowe, SWIFT, SEPA, PayPal",
"connect_to_server_provider": "Teraz zaloguj się przez ",
"no_locations_found": "Nie znaleziono lokalizacji, upewnij się, że Twoje konto jest dostępne",
"choose_server_type": "Jaki typ serwera powinienem wybrać?",
"choose_server_type_ram": "{} GB pamięci RAM",
"choose_server_type_text": "Od zasobów serwera zależeć będzie, jakie usługi będą mogły być uruchomione. W każdej chwili możliwa będzie rozbudowa serwera",
"choose_server_type_notice": "Główne rzeczy, na które należy zwrócić uwagę, to liczba wątków procesora i ilość pamięci RAM. Dane serwisowe zostaną umieszczone na osobnym dysku, który jest osobno płatny i łatwo rozszerzalny.",
"connect_to_server_provider_text": "Dzięki tokenowi API SelfPrivacy będzie mógł wynająć maszynę i postawić na niej swój serwer",
"how": "Jak uzyskać token API",
"provider_bad_key_error": "Klucz API dostawcy jest nieprawidłowy",
"could_not_connect": "Nie można połączyć się z dostawcą.",
"choose_location_type": "Gdzie chcesz zamówić swój serwer?",
"locations_not_found": "Ups!",
"locations_not_found_text": "W tej lokalizacji nie było dostępnych serwerów do wynajęcia",
"back_to_locations": "Wybierzmy inny",
"choose_location_type_text": "Wybór lokalizacji będzie determinował dostępne konfiguracje, ceny i prędkość połączenia z serwerem.",
"choose_server_type_storage": "{} GB pamięci na diskie",
"choose_server_type_payment_per_month": "{} miesięcznie",
"use_this_domain": "Kto używa ten domen?",
"no_connected_domains": "Niema podłączonych domenów",
"what": "Co to znaczy?",
"backblaze_bad_key_error": "Informacja o Blackbaze nieprawidłowa",
"select_dns": "Teraz wybierz provajdera DNS",
"create_master_account": "Dodać konto administratora",
"use_this_domain_text": "Podany token zapewnia kontrolę nad tą domeną",
"loading_domain_list": "Ładowanie listy domen",
"save_domain": "Zapisz domenę",
"final": "Ostatni krok",
"create_server": "Utwórz serwer",
"server_rebooted": "Serwer zrestartowany. Czekam na ostatnią weryfikację…",
"server_started": "Serwer działa. Teraz zostanie sprawdzony i zrestartowany…",
"server_created": "Serwer został utworzony. Sprawdzane są adresy DNS i serwer uruchamia się…",
"until_the_next_check": "Do następnej inspekcji: ",
"check": "Sprawdź",
"one_more_restart": "Teraz nastąpi dodatkowe ponowne uruchomienie komputera w celu aktywacji certyfikatów bezpieczeństwa.",
"enter_username_and_password": "Wprowadź nazwę użytkownika i złożone hasło",
"checks": "Kontrole wykonane:\n{} / {}",
"steps": {
"hosting": "Hosting",
"nixos_installation": "Instalacja NixOS",
"server_type": "Typ serwera",
"dns_provider": "Dostawca DNS",
"backups_provider": "Kopie zapasowe",
"domain": "Domena",
"master_account": "Rachunek główny",
"server": "Serwer",
"dns_setup": "Instalacja DNS",
"server_reboot": "Restart serwera",
"final_checks": "Kontrole końcowe"
},
"dns_provider_bad_key_error": "Klucz API jest nieprawidłowy",
"select_provider_price_free": "Za darmo",
"connect_to_dns": "Połącz dostawcę DNS"
},
"jobs": {
"delete_ssh_key": "Wydalić SSH-klucz dla {}",
"create_user": "Dodać korzystalnika",
"delete_user": "Wydalić korzystalnika",
"reboot_failed": "Nie otrzyma się zrestartować. Przeprowadzicie logi.",
"service_turn_off": "Wyłączyć",
"service_turn_on": "Włączyć",
"create_ssh_key": "Dodać SSH-klucz dla {}",
"generic_error": "Nie otrzyma się podłoczyć k serweru!",
"title": "Zadania",
"start": "Rozpocząć wykonywanie",
"empty": "Nie ma zadań",
"job_added": "Zadanie dodane",
"run_jobs": "Uruchom zadania",
"reboot_success": "Serwer uruchamia się ponownie",
"config_pull_failed": "Aktualizacja konfiguracji serwera nie powiodła się. Rozpoczęto aktualizację oprogramowania.",
"upgrade_success": "Uruchomiono aktualizację serwera",
"upgrade_failed": "Aktualizacja serwera nie działa",
"upgrade_server": "Aktualizacja serwera",
"reboot_server": "Ponowne uruchomienie serwera",
"server_jobs": "Zadania na serwerze",
"reset_user_password": "Zresetuj hasło użytkownika"
},
"modals": {
"purge_all_keys": "Wydalić wszystkie kluczy autentyfikacji?",
"are_you_sure": "Wpełnieny?",
"dns_removal_error": "Nie otrzyma się wydalić zapis DNS.",
"yes": "Tak",
"no": "Nie",
"reboot": "Restart",
"server_deletion_error": "Nie można usunąć serwera.",
"server_validators_error": "Nie udało się uzyskać listy serwerów.",
"already_exists": "Taki serwer już istnieje.",
"unexpected_error": "Nieprzewidywalny błąd po stronie świadczeniodawcy.",
"destroy_server": "Zniszczyć serwer i stworzyć nowy?",
"try_again": "Mam spróbować jeszcze raz?",
"purge_all_keys_confirm": "Tak, wymazać wszystkie klucze",
"delete_server_volume": "Usunąć serwer i pamięć masową?",
"volume_creation_error": "Nie udało się utworzyć woluminu."
},
"recovery_key": {
"key_main_header": "Klucz odzyskania",
"key_synchronizing": "Synchronizacja…",
"key_receiving_done": "Zrobiono!",
"key_replace_button": "Wytworzyć nowy klucz",
"generation_error": "Nie otrzyma się zrobić klucz odzyskania. {}",
"key_connection_error": "Nie udało się połączyć z serwerem.",
"key_main_description": "Wymagane dla autoryzacji SelfPrivacy, gdy autoryzowane urządzenia są niedostępne.",
"key_amount_toggle": "Ograniczenie stosowania",
"key_amount_field_title": "Maks. liczba zastosowań",
"key_duedate_toggle": "Ograniczenie okresu użytkowania",
"key_duedate_field_title": "Data ważności",
"key_receive_button": "Zdobądź klucz",
"key_valid": "Twój klucz jest ważny",
"key_invalid": "Twój klucz jest już nieważny",
"key_valid_until": "Ważny do {}",
"key_valid_for": "Możesz użyć {} więcej razy",
"key_creation_date": "Utworzony {}",
"key_receiving_description": "Zapisz ten klucz w bezpiecznym miejscu. Dzięki niemu masz pełny dostęp do swojego serwera:",
"key_receiving_info": "Ten klucz nie będzie już pokazywany, ale możesz go zastąpić nowym."
},
"timer": {
"sec": "{} s"
},
"recovering": {
"confirm_server_decline": "Wybierz inny serwer",
"domain_not_available_on_token": "Wprowadzony token nie ma dostępu do żądanej domeny.",
"method_recovery_input_description": "Wprowadź swój token odzyskiwania",
"fallback_select_provider_console": "Dostęp do konsoli serwera mojego dostawcy.",
"confirm_server_description": "Znalazłem twój serwer! Potwierdź, że jest to właściwe:",
"confirm_server": "Potwierdzić serwer",
"modal_confirmation_title": "Czy to naprawdę twój serwer?",
"modal_confirmation_description": "Podłączenie się do niewłaściwego serwera może prowadzić do destrukcyjnych konsekwencji.",
"generic_error": "Błąd operacji, spróbuj ponownie.",
"recovery_main_header": "Podłączenie do istniejącego serwera",
"domain_recovery_description": "Wprowadź domenę, pod którą chcesz uzyskać dostęp do serwera:",
"domain_recover_placeholder": "Domena",
"domain_recover_error": "Nie można znaleźć serwera z tą domeną",
"method_device_description": "Otwórz aplikację na innym urządzeniu i otwórz ekran zarządzania urządzeniami. Naciśnij \"Dodaj urządzenie\", aby otrzymać token autoryzacji.",
"method_select_description": "Wybierz metodę wprowadzania danych:",
"method_select_other_device": "Mam dostęp na innym urządzeniu",
"method_select_recovery_key": "Mam klucz odzyskiwania",
"method_select_nothing": "Nie mam żadnego z nich",
"method_device_button": "Otrzymałem symbol",
"method_device_input_description": "Wprowadź swój token autoryzacyjny",
"method_device_input_placeholder": "Token",
"confirm_server_accept": "Tak, to on",
"choose_server": "Wybierz serwer",
"choose_server_description": "Nie można określić, z którym serwerem się komunikujesz.",
"no_servers": "Na Twoim koncie nie ma dostępnych serwerów.",
"modal_confirmation_dns_valid": "Odwrócony DNS jest prawidłowy",
"modal_confirmation_dns_invalid": "Odwrócony DNS wskazuje na inną domenę",
"modal_confirmation_ip_valid": "IP jest takie samo jak w rekordzie DNS",
"modal_confirmation_ip_invalid": "IP nie jest zgodne z tym w rekordzie DNS",
"fallback_select_description": "Które z nich posiadasz? Wybierz pierwszą, która pasuje:",
"fallback_select_token_copy": "Kopia tokena autoryzacyjnego z innej wersji aplikacji.",
"fallback_select_root_ssh": "Dostęp Root do serwera poprzez SSH.",
"authorization_failed": "Nie udało się zalogować za pomocą tego klucza",
"fallback_select_provider_console_hint": "Na przykład: Hetzner.",
"provider_connected": "Połączenie z dostawcą {}",
"provider_connected_description": "Połączenie ustanowione. Podaj swój token z dostępem do {}:",
"provider_connected_placeholder": "{} Token "
},
"devices": {
"main_screen": {
"description": "Urządzenia te mają pełny dostęp do zarządzania serwerem poprzez aplikację SelfPrivacy.",
"header": "Urządzenia",
"this_device": "To urządzenie",
"other_devices": "Inne urządzenia",
"authorize_new_device": "Autoryzacja nowego urządzenia",
"access_granted_on": "Dostęp przyznany {}",
"tip": "Naciśnij na urządzenie, aby cofnąć dostęp."
},
"revoke_device_alert": {
"header": "Cofnąć dostęp?",
"description": "Urządzenie {} nie będzie już mogło kontrolować serwera.",
"yes": "Wycofaj się",
"no": "Anulować"
},
"add_new_device_screen": {
"header": "Autoryzacja nowego urządzenia",
"description": "Wprowadź ten klucz na nowym urządzeniu:",
"please_wait": "Proszę czekać",
"tip": "Klucz jest ważny przez 10 minut.",
"expired": "Klucz stracił ważność.",
"get_new_key": "Uzyskaj nowy klucz"
}
},
"support": {
"title": "Wsparcie SelfPrivacy"
},
"developer_settings": {
"subtitle": "Te ustawienia służą wyłącznie do celów debugowania. Nie zmieniaj ich, jeśli nie wiesz, co robisz.",
"title": "Ustawienia dewelopera",
"server_setup": "Kreator instalacji serwera",
"use_staging_acme": "Korzystanie z serwera testów ACME",
"use_staging_acme_description": "Używane podczas konfigurowania nowego serwera.",
"routing": "Trasowanie aplikacji",
"reset_onboarding": "Wyzerowanie flagi powitalnej dla wizyty",
"reset_onboarding_description": "Resetowanie przełącznika zasilania w celu ponownego wyświetlenia ekranu włączania zasilania",
"cubit_statuses": "Aktualny stan qubitów ładujących",
"ignore_tls": "Używane podczas konfigurowania nowego serwera."
}
}

View File

@ -24,7 +24,7 @@
"username": "Имя пользователя",
"loading": "Загрузка…",
"later": "Пропустить и настроить потом",
"connect_to_existing": "Подключиться к существующему серверу",
"connect_to_existing": "У меня уже есть SelfPrivacy сервер!",
"reset": "Сбросить",
"details": "Детальная информация",
"no_data": "Нет данных",
@ -33,50 +33,68 @@
"apply": "Применить",
"done": "Готово",
"continue": "Продолжить",
"alert": "Уведомление"
"alert": "Уведомление",
"copied_to_clipboard": "Скопировано в буфер обмена!",
"app_name": "SelfPrivacy",
"please_connect": "Настройте ваш сервер и подключите домен для полного погружения!",
"network_error": "Ошибка сети"
},
"more_page": {
"configuration_wizard": "Мастер настройки",
"about_project": "О проекте SelfPrivacy",
"about_application": "О приложении",
"onboarding": "Приветствие",
"console": "Консоль",
"create_ssh_key": "SSH ключи администратора",
"application_settings": "Настройки приложения"
"create_ssh_key": "SSH ключи администратора"
},
"console_page": {
"title": "Консоль",
"waiting": "Ждём инициализации…"
},
"about_us_page": {
"title": "О проекте SelfPrivacy"
"waiting": "Ждём инициализации…",
"copy": "Копировать"
},
"about_application_page": {
"title": "О приложении",
"application_version_text": "Версия приложения v.{}",
"api_version_text": "Версия API сервера v.{}",
"privacy_policy": "Политика конфиденциальности"
"title": "О приложении и поддержка",
"application_version_text": "Версия приложения",
"api_version_text": "Версия API сервера",
"privacy_policy": "Политика конфиденциальности",
"versions": "Версии",
"matrix_channel": "Канал в Matrix",
"email_support": "Поддержка по электронной почте",
"bug_report_subtitle": "Из-за спама требуется ручное подтверждение аккаунта. Свяжитесь с нами в чате поддержки для активации аккаунта.",
"open_source_licenses": "Лицензии используемых библиотек",
"links": "Ссылки",
"website": "Наш сайт",
"documentation": "Документация",
"telegram_channel": "Канал в Telegram",
"get_support": "Получить помощь",
"matrix_support_chat": "Чат поддержки в Matrix",
"telegram_support_chat": "Чат поддержки в Telegram",
"contribute": "Внести вклад",
"source_code": "Исходный код",
"bug_report": "Сообщить о неполадке",
"help_translate": "Помочь с переводом",
"matrix_contributors_chat": "Чат разработчиков в Matrix",
"telegram_contributors_chat": "Чат разработчиков в Telegram"
},
"application_settings": {
"title": "Настройки приложения",
"dark_theme_title": "Тёмная тема",
"dark_theme_description": "Сменить цветовую тему",
"reset_config_title": "Сброс настроек",
"reset_config_description": "Сбросить API ключи, а также root пользователя",
"reset_config_description": "Сбросить API ключи и root пользователя.",
"delete_server_title": "Удалить сервер",
"delete_server_description": "Действие приведёт к удалению сервера. После этого он будет недоступен."
"delete_server_description": "Действие приведёт к удалению сервера. После этого он будет недоступен.",
"system_dark_theme_title": "Системная тема",
"system_dark_theme_description": "Будет использована светлая или тёмная тема в зависимости от системных настроек",
"dangerous_settings": "Опасные настройки"
},
"ssh": {
"title": "SSH ключи",
"create": "Добавить SSH ключ",
"delete": "Удалить SSH ключ",
"delete_confirm_question": "Вы уверены, что хотите удалить следующий ключ?",
"subtitle_with_keys": "Ключей: {}",
"subtitle_without_keys": "Ключей нет",
"no_key_name": "Безымянный ключ",
"root_title": "Это ключи суперпользователя",
"root_subtitle": "Владельцы указанных здесь ключей получают полный доступ к данным и настройкам сервера. Добавляйте исключительно свои ключи.",
"input_label": "Публичный ED25519 или RSA ключ"
"input_label": "Публичный ED25519, ECDSA или RSA ключ",
"ssh_disabled_warning": "SSH отключен. Его можно включить в настройках сервера."
},
"onboarding": {
"page1_title": "Цифровая независимость доступна каждому",
@ -118,35 +136,28 @@
"disk": "Диск",
"monthly_cost": "Ежемесячная стоимость",
"location": "Размещение",
"provider": "Провайдер",
"pricing_error": "Не удалось получить цены провайдера",
"core_count": {
"one": "{} ядро",
"two": "{} ядра",
"few": "{} ядра",
"many": "{} ядер",
"other": "{} ядер"
}
},
"record": {
"root": "Корневой домен",
"api": "SelfPrivacy API",
"cloud": "Файловое облако",
"git": "Git сервер",
"meet": "Видеоконференции",
"social": "Социальная сеть",
"password": "Менеджер паролей",
"vpn": "VPN",
"mx": "MX запись",
"dmarc": "DMARC запись",
"spf": "SPF запись",
"dkim": "DKIM ключ"
},
"server_provider": "Провайдер сервера",
"dns_provider": "Провайдер DNS",
"allow_password_authentication_hint": "Позволяет пользователям подключаться к серверу по SSH используя свой пароль (не применяется к суперпользователю)",
"allow_password_authentication": "Разрешить вход по SSH с использованием пароля",
"settings": "Настройки сервера",
"enable_ssh": "Включить SSH",
"enable_ssh_hint": "Разрешить доступ к серверу через SSH"
},
"domain": {
"card_title": "Домен",
"screen_title": "Домен и DNS",
"ok": "Записи в норме",
"error": "Обнаружены проблемы",
"error_subtitle": "Нажмите здесь, чтобы исправить",
"error_subtitle": "Нажмите здесь, чтобы исправить. Это также удалит все сторонние записи.",
"refreshing": "Обновление данных…",
"uninitialized": "Данные ещё не получены",
"services_title": "Сервисы",
@ -161,17 +172,116 @@
"reupload_key": "Принудительно обновить ключ",
"reuploaded_key": "Ключ на сервере обновлён",
"initialize": "Настроить",
"waiting_for_rebuild": "Через несколько минут можно будет создать первую копию.",
"restore": "Восстановить из копии",
"no_backups": "Резервных копий пока нет",
"create_new": "Создать новую копию",
"creating": "Создание копии: {}%",
"restoring": "Восстановление из копии",
"error_pending": "Сервер вернул ошибку: проверьте её ниже",
"restore_alert": "Вы собираетесь восстановить из копии созданной {}. Все текущие данные будут потеряны. Вы уверены?",
"refresh": "Обновить статус",
"refetch_backups": "Обновить список копий",
"refetching_list": "Через несколько минут список будет обновлён"
"refetching_list": "Через несколько минут список будет обновлён",
"reupload_key_subtitle": "Ещё раз проинициализирует хранилище резервных копий. Используйте, если что-то сломалось.",
"service_busy": "Сейчас создаются другие резервные копии",
"autobackup_period_never": "Автоматическое копирование отключено",
"pending_jobs": "Активные задачи резервного копирования",
"card_subtitle": "Управляйте резервными копиями",
"refetch_backups_subtitle": "Сбросить кэш и запросить данные у провайдера. Может повлечь дополнительные расходы.",
"select_all": "Копировать всё",
"create_new_select_heading": "Выбрать сервисы для копирования",
"start": "Начать создание копий",
"latest_snapshots": "Последние снимки",
"latest_snapshots_subtitle": "Последние 15 снимков",
"show_more": "Показать ещё",
"autobackup_period_title": "Период автоматического копирования",
"autobackup_period_subtitle": "Создание копий раз в {period}",
"autobackup_period_every": "Раз в {period}",
"autobackup_period_disable": "Отключить автоматические копирование",
"autobackup_set_period": "Установить период",
"backups_encryption_key": "Ключ шифрования",
"snapshots_title": "Список снимков",
"forget_snapshot_error": "Не удалось забыть снимок",
"backups_encryption_key_not_found": "Ключ шифрования пока не найден, повторите попытку позже.",
"forget_snapshot_alert": "Вы уверены что хотите удалить этот снимок? Это действие обычно нельзя отменить.",
"snapshot_modal_select_strategy": "Выберите стратегию восстановления",
"snapshot_modal_download_verify_option_description": "Меньше риск, но требуется больше свободного места. Загрузка всей резервной копии во временное хранилище, проверка целостности копии, и последующая замена текущих данных.",
"snapshot_modal_service_not_found": "Это снимок сервиса, которого больше нет на вашем сервере. Обычно этого не должно происходить, и мы не сможем выполнить автоматическое восстановление. Вы можете загрузить снимок и восстановить его вручную. Обратитесь в службу поддержки SelfPrivacy, если вам нужна помощь.",
"backups_encryption_key_subtitle": "Храните его в безопасном месте.",
"backups_encryption_key_copy": "Скопируйте ключ шифрования",
"backups_encryption_key_show": "Показать ключ шифрования",
"backups_encryption_key_description": "Этот ключ используется для шифрования резервных копий. Если вы его потеряете, то не сможете восстановить данные из резервной копии. Храните его в надежном месте. Он может пригодиться, если придётся восстанавливать данные вручную.",
"forget_snapshot": "Забудьте о моментальном снимке",
"snapshot_modal_heading": "Сведения о снимке",
"snapshot_service_title": "Сервис",
"snapshot_creation_time_title": "Время создания",
"snapshot_id_title": "ID снимка",
"snapshot_modal_download_verify_option_title": "Загрузить, проверить, и затем заменить",
"snapshot_modal_inplace_option_title": "Заменить на месте",
"snapshot_modal_inplace_option_description": "Требуется меньше свободного места, но выше риск. При загрузке данных из резервной копии заменяют текущие данные сразу.",
"restore_started": "Восстановление началось, проверьте текущий статус в списке заданий",
"quota_subtitles": {
"no_effect": "Это правило не имеет эффекта, так как перекрыто другим правилом",
"last": {
"two": "Последние {} снимка будут сохраняться вне зависимости от даты создания",
"many": "Последние {} снимков будут сохраняться вне зависимости от даты создания",
"other": "Последние {} снимков будут сохраняться вне зависимости от даты создания",
"zero": "Правило отключено",
"one": "Последний {} снимок будет сохраняться вне зависимости от даты создания",
"few": "Последние {} снимка будут сохраняться вне зависимости от даты создания"
},
"daily": {
"two": "Последние {} ежедневных снимка будут сохраняться",
"other": "Последние {} ежедневных снимков будут сохраняться",
"zero": "Правило отключено",
"one": "Последний {} ежедневный снимок будет сохраняться",
"few": "Последние {} ежедневных снимка будут сохраняться",
"many": "Последние {} ежедневных снимков будут сохраняться"
},
"weekly": {
"two": "Последние {} еженедельных снимка будут сохраняться",
"other": "Последние {} еженедельных снимков будут сохраняться",
"zero": "Правило отключено",
"one": "Последний {} еженедельный снимок будет сохраняться",
"few": "Последние {} еженедельных снимка будут сохраняться",
"many": "Последние {} еженедельных снимков будут сохраняться"
},
"monthly": {
"two": "Последние {} ежемесячных снимка будут сохраняться",
"other": "Последние {} ежемесячных снимков будут сохраняться",
"zero": "Правило отключено",
"one": "Последний {} ежемесячный снимок будет сохраняться",
"few": "Последние {} ежемесячных снимка будут сохраняться",
"many": "Последние {} ежемесячных снимков будут сохраняться"
},
"yearly": {
"two": "Последние {} ежегодных снимка будут сохраняться",
"many": "Последние {} ежегодных снимков будут сохраняться",
"zero": "Правило отключено",
"one": "Последний {} ежегодный снимок будет сохраняться",
"few": "Последние {} ежегодных снимка будут сохраняться",
"other": "Последние {} ежегодных снимков будут сохраняться"
},
"last_infinite": "Все снимки будут сохранены",
"daily_infinite": "Все ежедневные снимки будут сохраняться",
"weekly_infinite": "Все еженедельные снимки будут сохраняться",
"monthly_infinite": "Все ежемесячные снимки будут сохраняться",
"yearly_infinite": "Все ежегодные снимки будут сохраняться"
},
"snapshot_reason_title": "Причина создания",
"snapshot_reasons": {
"auto": "Создано автоматически",
"explicit": "Создано по вашему явному запросу",
"pre_restore": "Создано в качестве меры предосторожности перед рискованным восстановлением",
"unknown": "Неизвестно"
},
"rotation_quotas_title": "Настройки ротации снимков",
"set_rotation_quotas": "Задать новые квоты ротации",
"quota_titles": {
"last": "Сколько последних снимков сохранять",
"daily": "Сколько ежедневных снимков сохранять",
"weekly": "Сколько еженедельных снимков сохранять",
"monthly": "Сколько ежемесячных снимков сохранять",
"yearly": "Сколько ежегодных снимков сохранять"
},
"quotas_only_applied_to_autobackups": "Эти настройки применяются только к резервным копиям, созданным автоматически. Созданные вручную резервные копии не будут удалены этими правилами."
},
"storage": {
"card_title": "Хранилище",
@ -186,15 +296,18 @@
"extend_volume_button": "Расширить хранилище",
"extending_volume_title": "Расширение хранилища",
"extending_volume_description": "Изменение размера хранилища позволит вам держать больше данных на вашем сервере без расширения самого сервера. Объем можно только увеличить: уменьшить нельзя.",
"extending_volume_price_info": "Цена включает НДС и рассчитана на основе данных о ценах, предоставленных Hetzner. Сервер будет перезагружен во время процесса.",
"extending_volume_price_info": "Цена включает НДС и рассчитана на основе данных о ценах, предоставленных вашим провайдером. Сервер будет перезагружен во время процесса.",
"extending_volume_error": "Не удалось начать расширение хранилища.",
"size": "Размер",
"euro": "Евро",
"data_migration_title": "Миграция данных",
"data_migration_notice": "На время миграции данных все сервисы будут выключены.",
"start_migration_button": "Начать миграцию",
"migration_process": "Мигрируем…",
"migration_done": "Завершить"
"price": "Цена",
"extending_volume_modal_description": "Хранилище будет расширено до {}, новая стоимость {} в месяц.",
"extending_volume_started": "Расширение хранилища началось",
"extending_volume_provider_waiting": "Хранилище расширено со стороны провайдера, ждём 10 секунд…",
"extending_volume_server_waiting": "Хранилище расширено со стороны сервера, ждём 20 секунд…",
"extending_volume_rebooting": "Перезагружаем сервер…"
},
"not_ready_card": {
"in_menu": "Сервер ещё не настроен, воспользуйтесь мастером подключения."
@ -214,63 +327,49 @@
"activating": "Включается",
"deactivating": "Выключается",
"reloading": "Перезапускается"
}
},
"snapshots": "Снимки резервных копий",
"nothing_here": "Здесь ничего нет"
},
"mail": {
"title": "Почта",
"subtitle": "Электронная почта для семьи или компании.",
"login_info": "Используйте логин и пароль из вкладки пользователей. IMAP порт: 143, STARTTLS. SMTP порт: 587, STARTTLS."
},
"password_manager": {
"title": "Менеджер паролей",
"subtitle": "Это фундамент Вашей безопасности. Создавать, хранить, копировать пароли между устройствами и вбивать их в формы поможет Bitwarden.",
"login_info": "Аккаунт нужно создать на сайте."
},
"video": {
"title": "Видеоконференция",
"subtitle": "Jitsi meet — отличный аналог Zoom и Google meet который помимо удобства ещё и гарантирует Вам защищённые высококачественные видеоконференции.",
"login_info": "Аккаунт не требуется."
},
"cloud": {
"title": "Файловое облако",
"subtitle": "Не позволяйте облачным сервисам просматривать ваши данные. Используйте NextCloud — надёжный дом для всех Ваших данных.",
"login_info": "Логин администратора: admin, пароль такой же как у основного пользователя. Создавайте новых пользователей в интерфейсе администратора NextCloud."
},
"social_network": {
"title": "Социальная сеть",
"subtitle": "Сложно поверить, но стало возможным создать свою собственную социальную сеть, со своими правилами и аудиторией.",
"login_info": "Аккаунт нужно создать на сайте."
},
"git": {
"title": "Git-сервер",
"subtitle": "Приватная альтернатива Github, которая принадлежит вам, а не Microsoft.",
"login_info": "Аккаунт нужно создать на сайте. Первый зарегистрированный пользователь становится администратором."
},
"vpn": {
"title": "VPN сервер",
"subtitle": "Закрытый VPN сервер"
},
"users": {
"add_new_user": "Добавьте первого пользователя",
"new_user": "Новый пользователь",
"delete_user": "Удалить пользователя",
"not_ready": "Подключите сервер, домен и DNS в разделе Провайдеры чтобы добавить первого пользователя",
"nobody_here": "Здесь будут отображаться пользователи",
"nobody_here": "Здесь никого нет",
"login": "Логин",
"new_user_info_note": "Новый пользователь автоматически получит доступ ко всем сервисам",
"delete_confirm_question": "Вы действительно хотите удалить учетную запись?",
"reset_password": "Сбросить пароль",
"account": "Учетная запись",
"send_registration_data": "Поделиться реквизитами",
"could_not_fetch_users": "Не удалось получить пользователей",
"could_not_fetch_description": "Проверьте интернет соединение и попробуйте снова",
"refresh_users": "Обновить список пользователей",
"could_not_create_user": "Не удалось создать пользователя",
"could_not_delete_user": "Не удалось стереть пользователя",
"could_not_add_ssh_key": "Не удалось создать SSH ключить",
"could_not_add_ssh_key": "Не удалось создать SSH ключ",
"username_rule": "Имя может содержать только маленькие латинские буквы, цифры, подчёркивания, не может начинаться с цифр",
"email_login": "Авторизация по Email",
"no_ssh_notice": "Для этого пользователя созданы только SSH и Email аккаунты. Единая авторизация для всех сервисов ещё не реализована."
"no_ssh_notice": "Для этого пользователя созданы только SSH и Email аккаунт. Единая авторизация для всех сервисов ещё не реализована.",
"details_title": "Пользователь",
"user_already_exists": "Пользователь с таким именем уже существует"
},
"initializing": {
"connect_to_server": "Начнём с сервера.",
@ -280,6 +379,7 @@
"select_provider_countries_text_hetzner": "Германия, Финляндия, США",
"select_provider_countries_text_do": "США, Нидерланды, Сингапур, Великобритания, Германия, Канада, Индия, Австралия",
"select_provider_price_title": "Средняя цена",
"select_provider_price_free": "Бесплатно",
"select_provider_price_text_hetzner": "€8 в месяц за небольшой сервер и 50GB места на диске",
"select_provider_price_text_do": "$17 в месяц за небольшой сервер и 50GB места на диске",
"select_provider_payment_title": "Методы оплаты",
@ -304,17 +404,16 @@
"choose_server_type_ram": "{} GB у RAM",
"choose_server_type_storage": "{} GB системного хранилища",
"choose_server_type_payment_per_month": "{} в месяц",
"no_server_types_found": "Не найдено доступных типов сервера! Пожалуйста, убедитесь, что у вас есть доступ к провайдеру сервера...",
"cloudflare_bad_key_error": "Cloudflare API ключ неверен",
"choose_server_type_payment_server": "{} за сам сервер",
"choose_server_type_payment_storage": "{} за расширяемое хранилище",
"choose_server_type_payment_ip": "{} за публичный IPv4",
"dns_provider_bad_key_error": "API ключ неверен",
"backblaze_bad_key_error": "Информация о Backblaze хранилище неверна",
"manage_domain_dns": "Для управления DNS вашего домена",
"connect_to_dns": "Подключите DNS провайдера",
"use_this_domain": "Используем этот домен?",
"use_this_domain_text": "Указанный вами токен даёт контроль над этим доменом",
"cloudflare_api_token": "CloudFlare API ключ",
"connect_backblaze_storage": "Подключите облачное хранилище Backblaze",
"no_connected_domains": "На данный момент подлюченных доменов нет",
"loading_domain_list": "Загружаем список доменов",
"found_more_domains": "Найдено больше одного домена, для вашей безопастности, просим Вам удалить не нужные домены",
"save_domain": "Сохранить домен",
"final": "Последний шаг",
"create_server": "Создать сервер",
@ -327,15 +426,30 @@
"one_more_restart": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопасности.",
"create_master_account": "Создайте главную учетную запись",
"enter_username_and_password": "Введите имя пользователя и сложный пароль",
"finish": "Всё инициализировано",
"checks": "Проверок выполнено: \n{} / {}",
"select_dns": "Теперь давайте выберем DNS-провайдера"
"select_dns": "Сейчас выберите DNS провайдера",
"steps": {
"hosting": "Хостинг",
"server_type": "Тип сервера",
"nixos_installation": "Установка NixOS",
"dns_provider": "DNS провайдер",
"backups_provider": "Резервное копирование",
"domain": "Домен",
"master_account": "Главная учетная запись",
"server": "Сервер",
"dns_setup": "Установка DNS",
"server_reboot": "Перезагрузка сервера",
"final_checks": "Финальные проверки"
},
"multiple_domains_found": "Найдено несколько доменов",
"multiple_domains_found_text": "Предоставленный токен дает доступ к следующим доменам. Пожалуйста, выберите тот, который вы хотите использовать. Для обеспечения безопасности других доменов следует ограничить доступ этого токена только тем доменом, который вы хотите использовать с SelfPrivacy.",
"domain_critical_error": "Не получается подключиться к домену! Нажмите для подробностей…"
},
"recovering": {
"generic_error": "Ошибка проведения операции, попробуйте ещё раз.",
"recovery_main_header": "Подключиться к существующему серверу",
"recovery_main_header": "Подключение к существующему серверу",
"domain_recovery_description": "Введите домен, по которому вы хотите получить доступ к серверу:",
"domain_recover_placeholder": "Домен",
"domain_recover_placeholder": "Ваш домен",
"domain_recover_error": "Не удалось найти сервер с таким доменом",
"method_select_description": "Выберите способ входа:",
"method_select_other_device": "У меня есть доступ на другом устройстве",
@ -366,13 +480,9 @@
"modal_confirmation_dns_invalid": "Обратный DNS указывает на другой домен",
"modal_confirmation_ip_valid": "IP совпадает с указанным в DNS записи",
"modal_confirmation_ip_invalid": "IP не совпадает с указанным в DNS записи",
"confirm_cloudflare": "Подключение к Cloudflare",
"confirm_cloudflare_description": "Введите токен Cloudflare, который имеет права на {}:",
"confirm_backblaze_description": "Введите токен Backblaze, который имеет права на хранилище резервных копий:",
"confirm_backblaze": "Подключение к Backblaze",
"server_provider_connected": "Подключение к вашему серверному провайдеру",
"server_provider_connected_description": "Связь установлена. Введите свой токен с доступом к {}:",
"server_provider_connected_placeholder": "Токен серверного провайдера"
"provider_connected": "Подключение к вашему {}",
"provider_connected_description": "Связь установлена. Введите свой токен с доступом к {}:",
"provider_connected_placeholder": "{} Токен"
},
"devices": {
"main_screen": {
@ -433,22 +543,22 @@
"purge_all_keys_confirm": "Да, стереть все ключи",
"delete_server_volume": "Удалить сервер и хранилище?",
"reboot": "Перезагрузить",
"you_cant_use_this_api": "Нельзя использовать этот API для доменом с подобным TLD.",
"yes": "Да",
"no": "Нет"
"no": "Нет",
"volume_creation_error": "Не удалось создать хранилище."
},
"timer": {
"sec": "{} сек"
},
"jobs": {
"title": "Задачи",
"start": "Начать выполенение",
"start": "Начать выполнение",
"empty": "Задач нет",
"create_user": "Создать пользователя",
"delete_user": "Удалить пользователя",
"service_turn_off": "Остановить",
"service_turn_on": "Запустить",
"job_added": "Задача добавленна",
"job_added": "Задача добавлена",
"run_jobs": "Запустите задачи",
"reboot_success": "Сервер перезагружается",
"reboot_failed": "Не удалось перезагрузить сервер, проверьте логи.",
@ -461,16 +571,43 @@
"delete_ssh_key": "Удалить SSH ключ для {}",
"server_jobs": "Задачи на сервере",
"reset_user_password": "Сбросить пароль пользователя",
"generic_error": "Не удалось подключиться к серверу!"
"generic_error": "Не удалось подключиться к серверу!",
"job_postponed": "Задача добавлена, но вы сможете её запустить после завершения текущих задач",
"change_auto_upgrade_settings": "Изменить настройки автоматических обновлений",
"job_removed": "Задача удалена",
"rebuild_system": "Пересобрать систему",
"start_server_upgrade": "Начать обновление сервера",
"change_server_timezone": "Изменить часовой пояс сервера",
"change_ssh_settings": "Изменить настройки SSH"
},
"validations": {
"required": "Обязательное поле",
"already_exist": "Уже существует",
"invalid_format": "Неверный формат",
"invalid_format_password": "Должен не содержать пустые символы",
"invalid_format_password": "Пароль не должен содержать пробелы",
"invalid_format_ssh": "Должен следовать формату SSH ключей",
"root_name": "Имя пользователя не может быть 'root'",
"length_not_equal": "Длина строки [], должно быть равно {}",
"length_longer": "Длина строки [], должно быть меньше либо равно {}"
"length_not_equal": "Длина строки [], должна быть равна {}",
"length_longer": "Длина строки [], должна быть меньше либо равна {}"
},
"support": {
"title": "Поддержка SelfPrivacy"
},
"developer_settings": {
"title": "Настройки разработчика",
"subtitle": "Эти настройки предназначены только для отладки. Не изменяйте их, если не знаете, что делаете.",
"server_setup": "Мастер установки сервера",
"use_staging_acme": "Использование тестового ACME сервера",
"use_staging_acme_description": "Применяется при настройке нового сервера.",
"routing": "Роутинг приложения",
"reset_onboarding": "Сбросить флаг посещения приветствия",
"cubit_statuses": "Текущий статут кубитов загрузки",
"reset_onboarding_description": "Принудить показ приветственного экрана",
"ignore_tls_description": "Приложение не будет проверять сертификаты TLS при подключении к серверу.",
"ignore_tls": "Не проверять сертификаты TLS",
"add_root_ssh_key": "Добавить ключ суперпользователя",
"root_ssh_key_added": "SSH ключ суперпользователя задан и будет применён",
"allow_ssh_key_at_setup": "Разрешить задавать SSH ключи суперпользователя во время установки",
"allow_ssh_key_at_setup_description": "Кнопка для добавления ключа появится на экране подтверждения."
}
}

View File

@ -1 +1,448 @@
{}
{
"validations": {
"length_longer": "Dĺžka je [], mala by byť kratšia alebo rovná {}",
"required": "Požadované pole",
"already_exist": "Už existuje",
"invalid_format": "Nesprávny formát",
"invalid_format_ssh": "Musí dodržiavať formát kľúča SSH",
"root_name": "Používateľské meno nemôže byť 'root'",
"length_not_equal": "Dĺžka je [], mala by byť {}",
"invalid_format_password": "Nesmie obsahovať prázdne znaky"
},
"modals": {
"no": "Nie",
"are_you_sure": "Ste si istý?",
"yes": "Áno",
"dns_removal_error": "Nie je možné odstrániť zápisy DNS.",
"server_deletion_error": "Server nie je možné vymazať.",
"server_validators_error": "Nepodarilo sa získať zoznam serverov.",
"already_exists": "Takýto server už existuje.",
"unexpected_error": "Neočakávaná chyba na strane poskytovateľa.",
"destroy_server": "Zničiť server a vytvoriť nový?",
"try_again": "Skúsiť ešte raz?",
"purge_all_keys": "Vymazať všetky autorizačné kľúče?",
"purge_all_keys_confirm": "Áno, vyčistiť všetky moje tokeny",
"delete_server_volume": "Odstrániť server a úložisko?",
"reboot": "Reštartovať"
},
"jobs": {
"title": "Úlohy",
"start": "Štart",
"empty": "Žiadne úlohy",
"create_user": "Vytvoriť používateľa",
"delete_user": "Vymazať používateľa",
"reboot_success": "Server sa reštartuje",
"config_pull_failed": "Nepodarilo sa stiahnuť aktualizáciu konfigurácie. Aj tak sa začala aktualizácia softvéru.",
"service_turn_off": "Vypnúť",
"service_turn_on": "Zapnúť",
"job_added": "Úloha bola pridaná",
"run_jobs": "Spustiť úlohy",
"reboot_failed": "Server sa nepodarilo reštartovať, skontrolujte protokoly.",
"upgrade_success": "Spustila sa aktualizácia servera",
"upgrade_failed": "Aktualizácia servera zlyhala",
"upgrade_server": "Aktualizovať server",
"reboot_server": "Reštartovať server",
"create_ssh_key": "Vytvoriť kľúč SSH pre {}",
"delete_ssh_key": "Odstrániť kľúč SSH pre {}",
"server_jobs": "Úlohy na serveri",
"reset_user_password": "Obnoviť heslo používateľa",
"generic_error": "Nepodarilo sa pripojiť k serveru!"
},
"test": "sk-test",
"locale": "sk",
"basis": {
"providers": "Poskytovatelia",
"providers_title": "Vaše dátové centrum",
"select": "Vybrať",
"services": "Služby",
"users": "Užívatelia",
"more": "Viac",
"next": "Ďalší",
"got_it": "Dobre",
"settings": "Nastavenia",
"password": "Heslo",
"create": "Pridať nový",
"confirmation": "Potvrdenie",
"cancel": "Zrušiť",
"delete": "Vymazať",
"close": "Zavrieť",
"connect": "Pripojiť",
"domain": "Doména",
"saving": "Ukladanie…",
"username": "Užívateľské meno",
"later": "Preskočiť a nastaviť neskôr",
"connect_to_existing": "Pripojiť sa k existujúcemu serveru",
"reset": "Resetovať",
"details": "Podrobnosti",
"no_data": "Žiadne dáta",
"wait": "Počkajte",
"remove": "Vymazať",
"done": "Hotovo",
"continue": "Pokračovať",
"alert": "Upozornenie",
"services_title": "Vaše osobné, súkromné a nezávislé služby.",
"loading": "Načítanie…",
"apply": "Uplatniť",
"app_name": "SelfPrivacy"
},
"more_page": {
"configuration_wizard": "Sprievodca nastavením",
"onboarding": "Vitajte",
"create_ssh_key": "SSH kľúče superužívateľa"
},
"console_page": {
"title": "Konzola",
"waiting": "Čakáme na inicializáciu…",
"copy": "Kopírovať"
},
"about_application_page": {
"title": "O apke",
"application_version_text": "Verzia aplikácie",
"api_version_text": "Verzia servera",
"privacy_policy": "Zásady ochrany osobných údajov"
},
"application_settings": {
"title": "Nastavenia aplikácie",
"dark_theme_title": "Temná téma",
"dark_theme_description": "Zmeniť tému aplikácie",
"reset_config_title": "Resetovať nastavenia aplikácie",
"reset_config_description": "Resetovať kľúče API a užívateľa root.",
"delete_server_title": "Zmazať server",
"delete_server_description": "Tým sa odstráni váš server. Už nebude prístupným.",
"system_dark_theme_description": "Použitie svetlej alebo tmavej témy v závislosti od nastavení systému",
"system_dark_theme_title": "Systémová predvolená téma",
"dangerous_settings": "Nebezpečné nastavenia"
},
"ssh": {
"title": "Kľúče SSH",
"create": "Vytvoriť kľúč SSH",
"delete": "Zmazať kľúč SSH",
"delete_confirm_question": "Ste si istí že chcete vymazať kľúč SSH?",
"no_key_name": "Kľúč bez mena",
"root_title": "Toto sú kľúče superužívateľa",
"input_label": "Verejný kľúč ED25519 alebo RSA",
"root_subtitle": "Majitelia týchto kľúčov získajú plný prístup na server a môžu na ňom robiť čokoľvek. Pridávajte do servera iba svoje vlastné kľúče."
},
"onboarding": {
"page1_title": "Digitálna nezávislosť, dostupná každému z nás",
"page1_text": "Email, VPN, Messenger, sociálna sieť a o veľa viac na vašom privátnom servere, pod vašim kontrolom.",
"page2_text": "SelfPrivacy pracuje iba s poskytovateľmi, ktoré si vyberiete. Ak v nich nemáte požadované účty, pomôžeme vám ich vytvoriť.",
"page2_server_provider_title": "Poskytovateľ servera",
"page2_backup_provider_title": "Poskytovateľ zálohovania",
"page2_title": "SelfPrivacy nie je oblak, toto je váš personálny datacentrum",
"page2_server_provider_text": "Poskytovateľ servera udržiava váš server vo svojom vlastnom dátovom centre. SelfPrivacy sa automaticky pripojí k poskytovateľovi a nastaví všetky potrebné veci.",
"page2_dns_provider_title": "Poskytovateľ DNS",
"page2_dns_provider_text": "Potrebujete doménu, aby ste mali miesto na internete. A tiež potrebujete spoľahlivého poskytovateľa DNS, aby bola doména nasmerovaná na váš server. Navrhujeme, aby ste si vybrali podporovaného poskytovateľa DNS na automatické nastavenie sietí.",
"page2_backup_provider_text": "Čo ak sa niečo stane na vašom serveri? Predstavte si hackerský útok, náhodné vymazanie údajov alebo odmietnutie služby? Vaše údaje budú udržiavané v bezpečí vášho poskytovateľa záloh. Budú bezpečne šifrovaní a kedykoľvek sú prístupní na obnovenie servera."
},
"resource_chart": {
"month": "Mesiac",
"day": "Deň",
"hour": "Hodina",
"cpu_title": "Využitie procesora",
"network_title": "Využitie siete",
"out": "Von",
"in": "Dnu"
},
"server": {
"card_title": "Server",
"description": "Všetky vaši servery bývajú tu",
"general_information": "Všeobecné informácie",
"resource_usage": "Využitie zdrojov",
"allow_autoupgrade": "Povoliť automatické aktualizácie",
"allow_autoupgrade_hint": "Povoliť automatické aktualizácie balíkov na serveri",
"reboot_after_upgrade": "Reštartovať po aktualizácie",
"reboot_after_upgrade_hint": "Reštartovať server po aktualizácii bez výzvy",
"server_timezone": "Časový pás servera",
"select_timezone": "Vyberte časový pás",
"timezone_search_bar": "Názov časového pásma alebo veľkosť časového posunu",
"server_id": "ID servera",
"status": "Stav",
"cpu": "Procesor",
"ram": "Pamäť",
"disk": "Lokálny disk",
"monthly_cost": "Mesačná cena",
"location": "Lokalita",
"core_count": {
"one": "{} jadro",
"two": "{} jadrá",
"few": "{} jadier",
"many": "{} jadier",
"other": "{} jadier"
}
},
"domain": {
"screen_title": "Doména a DNS",
"ok": "Zápise sú v poriadku",
"error": "Nájdené problémy",
"error_subtitle": "Klepnutím sem ich opravíte",
"uninitialized": "Údaje ešte nie sú načítané",
"services_title": "Služby",
"services_subtitle": "Zápisy typu “A” nutne pre každú službu.",
"email_title": "Email",
"update_list": "Obnoviť zoznam",
"card_title": "Doména",
"refreshing": "Obnovovanie stavu…",
"email_subtitle": "Zápisy nutne pre bezpečnú prácu s emailami."
},
"service_page": {
"open_in_browser": "Otvoriť v prehliadači",
"restart": "Reštartovať službu",
"disable": "Vypnúť službu",
"uses": "Využíva {usage} na {volume}",
"enable": "Zapnúť službu",
"move": "Presunúť na iný disk",
"status": {
"active": "Zapnuté a funguje",
"inactive": "Vypnuté",
"failed": "Chyba pri štarte",
"off": "Vypnuté",
"activating": "Zapína sa",
"deactivating": "Vypína sa",
"reloading": "Reštartuje sa"
}
},
"backup": {
"card_title": "Záloha",
"description": "Ušetrí vám nervy v prípade incidentu: útok hackerov, vymazanie servera atď.",
"reupload_key": "Násilne aktualizovať kľúč",
"reuploaded_key": "Kľúč je aktualizovaný",
"initialize": "Nastaviť",
"restore": "Obnoviť zo zálohy",
"no_backups": "Zatiaľ nemáte žiadne záložné kópie",
"create_new": "Vytvoriť novú zálohu",
"refresh": "Obnoviť stav",
"refetch_backups": "Obnoviť zoznam záloh",
"refetching_list": "O pár minút zoznam bude aktualizovaný",
"restore_alert": "Chystáte sa obnoviť zo zálohy vytvorenej {}. Všetky aktuálne údaje sa stratia. Ste si istý?"
},
"storage": {
"card_title": "Skladovací priestor",
"status_ok": "Disk je v poriadku",
"status_error": "Málo miesta na disku",
"disk_usage": "Využité {}",
"disk_total": "{} celkove · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Bajtov",
"extend_volume_button": "Rozšíriť úložisko",
"extending_volume_price_info": "Cena je vrátane DPH a vychádza z cenových údajov poskytnutých spoločnosťou Hetzner. Server sa počas procesu reštartuje.",
"extending_volume_error": "Nepodarilo sa spustiť rozšírenie úložiska.",
"size": "Veľkosť",
"data_migration_title": "Migrácia údajov",
"data_migration_notice": "V čase migrácie údajov sa všetky služby vypnú.",
"start_migration_button": "Spustiť migráciu",
"extending_volume_title": "Rozšírenie úložiska",
"extending_volume_description": "Zmena veľkosti úložiska vám umožní uchovávať viac údajov na serveri bez rozšírenia samotného servera. Objem sa dá len zvýšiť: nemôžete znížiť."
},
"not_ready_card": {
"in_menu": "Server ešte nie je nakonfigurovaný, použite sprievodcu nastavením."
},
"initializing": {
"choose_server_type_notice": "Dôležité veci, na ktoré sa treba pozrieť, sú CPU a RAM. Dáta vašich služieb budú uložené na pripojenom disku, ktorý sa dá ľahko rozšíriť a platí sa zaň samostatne.",
"select_provider": "Vyberte si ktoréhokoľvek poskytovateľa z nasledujúceho zoznamu, všetci podporujú SelfPrivacy",
"select_provider_countries_text_do": "USA, Holandsko, Singapur, Spojené kráľovstvo, Nemecko, Kanada, India, Austrália",
"select_provider_email_notice": "E-mailový hosting nie je dostupný pre nových zákazníkov. Odomknutie bude možné po prvej platbe.",
"choose_location_type_text": "Rôzne miesta poskytujú rôzne konfigurácie serverov, ceny a rýchlosť pripojenia.",
"choose_server_type_text": "Rôzne možnosti zdrojov podporujú rôzne služby. Nebojte sa, svoj server môžete kedykoľvek rozšíriť",
"enter_username_and_password": "Zadajte používateľské meno a zložité heslo",
"use_this_domain_text": "Token, ktorý ste poskytli, poskytuje prístup k nasledujúcej doméne",
"no_connected_domains": "Momentálne nie sú pripojené žiadne domény",
"loading_domain_list": "Načítava sa zoznam domén",
"save_domain": "Uložiť doménu",
"final": "Posledný krok",
"create_server": "Vytvoriť server",
"what": "Čo to znamená?",
"server_rebooted": "Server bol reštartovaný. Čaká sa na posledné overenie…",
"server_started": "Server spustený. Teraz bude overený a reštartovaný…",
"server_created": "Server bol vytvorený. Prebieha kontrola DNS a spúšťanie servera…",
"until_the_next_check": "Do nasledujúcej kontroly: ",
"check": "Kontrola",
"one_more_restart": "Teraz dôjde k ďalšiemu reštartu na aktiváciu bezpečnostných certifikátov.",
"connect_to_server": "Začnime so serverom.",
"select_provider_notice": "Pod pojmom „malý server“ rozumieme server s dvoma procesorovými vláknami a dvoma gigabajtmi pamäte RAM.",
"select_provider_countries_title": "Dostupné krajiny",
"select_provider_countries_text_hetzner": "Nemecko, Fínsko, USA",
"select_provider_price_title": "Priemerná cena",
"select_provider_price_text_hetzner": "8€ mesačne za malý server a 50 GB miesta na disku",
"select_provider_price_text_do": "$17 mesačne za malý server a 50 GB miesta na disku",
"select_provider_payment_title": "Spôsoby platby",
"select_provider_payment_text_hetzner": "Bankové karty, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "Bankové karty, Google Pay, PayPal",
"select_provider_site_button": "Navštíviť stránku",
"connect_to_server_provider": "Prihlásiť sa v ",
"connect_to_server_provider_text": "S API tokenom si SelfPrivacy bude môcť prenajať stroj a nastaviť na ňom váš server",
"how": "Ako získať token API",
"provider_bad_key_error": "Kľúč API poskytovateľa je neplatný",
"could_not_connect": "Nepodarilo sa pripojiť k poskytovateľovi.",
"choose_location_type": "Kde objednať server?",
"locations_not_found": "Ojoj!",
"locations_not_found_text": "Nie sú k dispozícii žiadne servery na prenájom",
"back_to_locations": "Vybrať niečo iné",
"no_locations_found": "Nenašli sa žiadne dostupné miesta, skontrolujte, či je váš účet prístupný",
"choose_server_type": "Aký typ servera potrebujete?",
"choose_server_type_ram": "{} GB RAM",
"choose_server_type_storage": "{} GB systémového úložiska",
"choose_server_type_payment_per_month": "{} mesačne",
"backblaze_bad_key_error": "Informácie o úložisku Backblaze sú neplatné",
"select_dns": "Teraz vyberme poskytovateľa DNS",
"use_this_domain": "Chcete použiť túto doménu?",
"create_master_account": "Vytvorte hlavný účet",
"checks": "Kontroly boli ukončené\n{} z {}",
"steps": {
"nixos_installation": "Inštalácia NixOS",
"hosting": "Hosting",
"server_type": "Typ servera",
"dns_provider": "Poskytovateľ DNS",
"backups_provider": "Záložné kópie",
"domain": "Doména",
"master_account": "Hlavný účet",
"server": "Server",
"dns_setup": "Nastavenie DNS",
"server_reboot": "Reštartovanie servera",
"final_checks": "Záverečné previerky"
}
},
"mail": {
"login_info": "Užívateľské meno a heslo z tabu používateľov. IMAP port je 143 so STARTTLS, SMTP port je 587 so STARTTLS."
},
"password_manager": {
"login_info": "Musíte vytvoriť účet na webovej stránke."
},
"cloud": {
"login_info": "Prihlásenie správcu: admin, heslo je rovnaké ako pre hlavného používateľa. Vytvorte nových používateľov v správcovskom rozhraní NextCloud."
},
"social_network": {
"login_info": "Musíte vytvoriť účet na webovej stránke."
},
"users": {
"could_not_fetch_users": "Nepodarilo sa načítať používateľov",
"could_not_delete_user": "Nepodarilo sa vymazať účet",
"could_not_add_ssh_key": "Nepodarilo sa pridať kľúč SSH",
"username_rule": "Meno môže obsahovať len malé latinské písmená, čísla, podčiarkovníky, nemôže začínať číslicami",
"add_new_user": "Pridajte prvého používateľa",
"new_user": "Nový používateľ",
"delete_user": "Vymazať používateľa",
"nobody_here": "Tu sa zobrazia používatelia",
"login": "Užívateľské meno",
"new_user_info_note": "Nový používateľ bude mať automaticky prístup ku všetkým službám",
"delete_confirm_question": "Naozaj chcete odstrániť ten účet?",
"reset_password": "Resetovať heslo",
"account": "Účet",
"could_not_fetch_description": "Skontrolujte internetové pripojenie a skúste to znova",
"refresh_users": "Aktualizovať zoznam používateľov",
"could_not_create_user": "Nepodarilo sa vytvoriť účet",
"email_login": "Emailová autorizácia",
"no_ssh_notice": "Pre tohto používateľa sú vytvorené iba e-mailové účty a účty SSH. Čoskoro bude k dispozícii jednotné prihlásenie pre všetky služby.",
"details_title": "Detaily používateľa"
},
"recovering": {
"recovery_main_header": "Pripojiť sa k existujúcemu serveru",
"method_select_other_device": "Mám prístup na inom zariadení",
"method_device_description": "Otvorte aplikáciu na inom zariadení a otvorte obrazovku správy zariadenia. Kliknutím na „Pridať zariadenie“ získate autorizačný token.",
"provider_connected": "Pripojiť sa k poskytovateľovi {}",
"choose_server": "Vyberte si svoj server",
"domain_not_available_on_token": "Vybraná doména nie je na tomto tokene dostupná.",
"modal_confirmation_ip_valid": "IP je rovnaká ako v DNS zázname",
"generic_error": "Operácia zlyhala, skúste to znova.",
"domain_recovery_description": "Zadajte doménu servera, pre ktorú chcete získať prístup:",
"domain_recover_placeholder": "Vaša doména",
"domain_recover_error": "Server s takouto doménou sa nenašiel",
"method_select_description": "Vyberte spôsob obnovenia:",
"method_select_recovery_key": "Mám kľúč na obnovenie",
"method_select_nothing": "Nič z toho nemám",
"method_device_button": "Dostal som token",
"method_device_input_description": "Zadajte svoj autorizačný token",
"method_device_input_placeholder": "Token",
"method_recovery_input_description": "Zadajte svoj token na obnovenie",
"fallback_select_description": "Čo z toho máte? Vyberte prvý, ktorý vyhovuje:",
"fallback_select_token_copy": "Kópia autorizačného tokenu z inej verzie aplikácie.",
"fallback_select_root_ssh": "Rootový prístup k serveru cez SSH.",
"fallback_select_provider_console": "Prístup ku konzole servera môjho poskytovateľa.",
"authorization_failed": "Pomocou tohto kľúča sa nepodarilo prihlásiť",
"fallback_select_provider_console_hint": "Napríklad Hetzner.",
"provider_connected_description": "Spojenie bolo nadviazané. Zadajte svoj token s prístupom k {}:",
"provider_connected_placeholder": "{} Token",
"confirm_server": "Potvrďte server",
"confirm_server_description": "Našiel sa server! Potvrďte, že je to on:",
"confirm_server_accept": "Áno, to je on",
"confirm_server_decline": "Vybrať iný server",
"choose_server_description": "Nepodarilo sa nám zistiť, ku ktorému serveru sa pokúšate pripojiť.",
"no_servers": "Vo vašom účte nie sú dostupné žiadne servery.",
"modal_confirmation_title": "Je to naozaj váš server?",
"modal_confirmation_description": "Ak sa pripojíte k nesprávnemu serveru, môžete stratiť všetky svoje údaje.",
"modal_confirmation_dns_valid": "Reverzný DNS je platný",
"modal_confirmation_dns_invalid": "Reverzné DNS ukazuje na inú doménu",
"modal_confirmation_ip_invalid": "IP nie je rovnaká ako v DNS zázname"
},
"devices": {
"add_new_device_screen": {
"get_new_key": "Získať nový kľúč",
"header": "Autorizácia nového zariadenia",
"description": "Zadajte kľúč na zariadení, ktoré chcete autorizovať:",
"please_wait": "Prosím počkajte",
"tip": "Platnosť kľúča je 10 minút.",
"expired": "Platnosť kľúča vypršala."
},
"main_screen": {
"description": "Tieto zariadenia majú plný prístup k serveru prostredníctvom aplikácie SelfPrivacy.",
"tip": "Stlačením na zariadení zrušíte prístup.",
"header": "Zariadenia",
"this_device": "Toto zariadenie",
"other_devices": "Iné zariadenia",
"authorize_new_device": "Autorizovať nové zariadenie",
"access_granted_on": "Prístup poskytnutý {}"
},
"revoke_device_alert": {
"header": "Odobrať prístup?",
"description": "Zariadenie {} už nebude mať prístup k serveru.",
"yes": "Odobrať",
"no": "Zrušiť"
}
},
"recovery_key": {
"key_main_description": "Vyžaduje sa pre autorizáciu SelfPrivacy, keď autorizované zariadenia nie sú dostupné.",
"key_valid_for": "Môžete použiť ešte {} krát",
"key_receiving_description": "Zapíšte si tento kľúč na bezpečnom mieste. Poskytuje plný prístup k vášmu serveru:",
"key_connection_error": "Nepodarilo sa pripojiť k serveru.",
"key_synchronizing": "Synchronizácia…",
"key_main_header": "Kľúč na obnovenie",
"key_amount_toggle": "Obmedziť používanie",
"key_amount_field_title": "Maximálny počet použití",
"key_duedate_toggle": "Obmedziť časom",
"key_duedate_field_title": "Dátum splatnosti",
"key_receive_button": "Získať kľúč",
"key_valid": "Váš kľúč je platný",
"key_invalid": "Váš kľúč už nie je platný",
"key_valid_until": "Platný do {}",
"key_creation_date": "Vytvorený {}",
"key_replace_button": "Vygenerovať nový kľúč",
"key_receiving_info": "Tento kľúč sa už nebude zobrazovať, ale môžete ho nahradiť novým.",
"key_receiving_done": "Hotovo!",
"generation_error": "Nepodarilo sa vygenerovať kľúč. {}"
},
"timer": {
"sec": "{} sek"
},
"video": {
"login_info": "Účet sa nevyžaduje."
},
"git": {
"login_info": "Na stránke musí byť vytvorený účet. Prvý registrovaný užívateľ sa stáva administrátorom."
},
"support": {
"title": "Podpora SelfPrivacy"
},
"developer_settings": {
"subtitle": "Tieto nastavenia slúžia len na ladenie. Nemeňte ich, ak neviete, čo robíte.",
"reset_onboarding": "Obnovenie uvítacej vlajky pre návštevu",
"title": "Nastavenia vývojára",
"server_setup": "Nastavenie servera",
"use_staging_acme": "Používanie testovacieho servera ACME",
"use_staging_acme_description": "Ak chcete túto hodnotu zmeniť, prekompilujte aplikáciu.",
"routing": "Smerovanie aplikácie",
"reset_onboarding_description": "Resetovanie vypínača na opätovné zobrazenie obrazovky zapnutia",
"cubit_statuses": "Aktuálny stav načítavania qubitov"
}
}

210
assets/translations/sl.json Normal file
View File

@ -0,0 +1,210 @@
{
"test": "sl-test",
"locale": "sl",
"basis": {
"providers_title": "Vaš podatkovni center",
"select": "Izberite",
"services": "Storitve",
"users": "Uporabniki",
"more": "Več",
"next": "Naslednji",
"got_it": "Imam ga",
"settings": "Nastavitve",
"password": "Geslo",
"create": "Dodajte novo",
"confirmation": "Potrditev",
"cancel": "Prekliči",
"providers": "Ponudniki",
"services_title": "Vaše osebne, zasebne in neodvisne storitve.",
"app_name": "SelfPrivacy",
"delete": "Izbriši",
"close": "Zapri",
"connect": "Povežite",
"domain": "Domena",
"saving": "Varčevanje…",
"username": "Uporabniško ime",
"loading": "Nalaganje…",
"later": "Preskočite in prilagodite pozneje",
"connect_to_existing": "Preskočite in prilagodite pozneje",
"reset": "Ponastavitev",
"details": "Podrobne informacije",
"no_data": "Ni podatkov",
"wait": "Prenesi",
"remove": "Izbriši",
"apply": "Uporabi",
"done": "Končano",
"continue": "Nadaljuj",
"alert": "Opozorilo"
},
"more_page": {
"onboarding": "Pozdravi",
"create_ssh_key": "Superuporabniški ključi SSH",
"configuration_wizard": "Pomočnik za nastavitev"
},
"console_page": {
"title": "Konzole",
"waiting": "Čakanje na inicializacijo…",
"copy": "Kopiraj"
},
"about_application_page": {
"title": "O dodatku",
"api_version_text": "Različica API strežnika",
"privacy_policy": "Pravilnik o zasebnosti",
"application_version_text": "Različica aplikacije"
},
"application_settings": {
"dark_theme_title": "Temna tema",
"title": "Nastavitve aplikacije",
"system_dark_theme_title": "Privzeta tema sistema",
"system_dark_theme_description": "Uporaba svetle ali temne teme glede na sistemske nastavitve",
"dark_theme_description": "Spreminjanje barvne teme",
"dangerous_settings": "Nevarne nastavitve",
"reset_config_title": "Ponastavitev konfiguracije aplikacije",
"delete_server_title": "Brisanje strežnika",
"delete_server_description": "To dejanje povzroči izbris strežnika. Nato bo nedosegljiv."
},
"onboarding": {
"page1_title": "Digitalna neodvisnost je na voljo vsem",
"page1_text": "Pošta, VPN, messenger, družabna omrežja in še veliko več na lastnem zasebnem strežniku pod vašim popolnim nadzorom.",
"page2_title": "SelfPrivacy ni oblak, temveč vaš osebni podatkovni center",
"page2_text": "Storitev SelfPrivacy sodeluje le s ponudnikom storitev po vaši izbiri. Če nimate računov, vam jih lahko pomagamo ustvariti.",
"page2_server_provider_title": "Ponudnik strežnika",
"page2_server_provider_text": "Ponudnik strežnika bo vaš strežnik vzdrževal v svojem podatkovnem centru. SelfPrivacy se bo samodejno povezal z njim in nastavil vaš strežnik.",
"page2_dns_provider_title": "Ponudnik storitev DNS",
"page2_dns_provider_text": "To be on the Internet, you need a domain. To have a domain point to your server, you need a reliable DNS server. We will offer you to choose one of the supported DNS servers and automatically configure all entries. Want to configure them manually? You can do that too.",
"page2_backup_provider_title": "Ponudnik varnostnih kopij",
"page2_backup_provider_text": "Kaj če se kaj zgodi z vašim strežnikom? Predstavljajte si hekerski napad, nenamerno brisanje podatkov ali zavrnitev storitve? Vaši podatki bodo na varnem pri ponudniku varnostnih kopij. Te bodo varno šifrirane in kadar koli dostopne za obnovitev strežnika."
},
"resource_chart": {
"month": "Mesec",
"day": "Dan",
"hour": "Ura",
"cpu_title": "Poraba CPU",
"out": "Poslano",
"network_title": "Uporaba omrežja",
"in": "Pridobljeno iz"
},
"server": {
"card_title": "Server",
"description": "Vse vaše storitve so na voljo tukaj",
"general_information": "Splošne informacije",
"resource_usage": "Uporaba virov",
"allow_autoupgrade": "Dovolite samodejno nadgradnjo",
"allow_autoupgrade_hint": "Omogočite samodejne nadgradnje paketov na strežniku",
"reboot_after_upgrade": "Ponovni zagon po nadgradnji",
"core_count": {
"two": "{} jedra",
"few": "{} jedra",
"one": "{} jedro",
"many": "{} jedra",
"other": "{} jeder"
},
"reboot_after_upgrade_hint": "Ponovni zagon brez poziva po uporabi sprememb v strežniku",
"server_timezone": "Časovni pas strežnika",
"select_timezone": "Izberite časovni pas",
"timezone_search_bar": "Ime časovnega pasu ali vrednost časovnega zamika",
"server_id": "ID strežnika",
"status": "Status",
"cpu": "CPU",
"ram": "Glavni pomnilnik",
"disk": "Lokalni disk",
"monthly_cost": "Mesečni stroški",
"location": "Lokacija"
},
"ssh": {
"root_subtitle": "Lastniki tukaj navedenih ključev imajo popoln dostop do podatkov in nastavitev strežnika. Dodajte samo svoje ključe.",
"title": "Ključi SSH",
"create": "Dodajanje ključa SSH",
"delete": "Odstranitev ključa SSH",
"delete_confirm_question": "Ali ste prepričani, da želite izbrisati naslednjo tipko?",
"no_key_name": "Ključ brez imena",
"root_title": "To so ključi superuporabnika",
"input_label": "Javni ključ ED25519 ali RSA"
},
"domain": {
"screen_title": "Domena in DNS",
"card_title": "Domena",
"ok": "Zapisi so v redu",
"error": "Ugotovljene težave",
"error_subtitle": "Kliknite tukaj za popravek",
"refreshing": "Posodobitev podatkov…",
"uninitialized": "Podatki še niso na voljo",
"services_title": "Storitve",
"services_subtitle": "Za vsako storitev so potrebni zapisi tipa \"A\".",
"email_title": "E-pošta",
"email_subtitle": "Zapisi, potrebni za varno izmenjavo e-pošte.",
"update_list": "Seznam posodobitev"
},
"backup": {
"restore": "Obnovitev iz varnostne kopije",
"no_backups": "Varnostnih kopij še ni",
"card_title": "Varnostna kopija",
"description": "V primeru incidenta: napada hekerjev, izbrisa strežnika itd.",
"reupload_key": "Prisilna posodobitev ključa",
"reuploaded_key": "Ključ v strežniku je bil posodobljen",
"initialize": "Inicializacija",
"create_new": "Ustvarite novo varnostno kopijo",
"restore_alert": "Obnavljate iz varnostne kopije, ustvarjene dne {}. Vsi trenutni podatki bodo izgubljeni. Ste prepričani?",
"refresh": "Osvežitev stanja",
"refetch_backups": "Ponovno pridobivanje seznama varnostnih kopij",
"refetching_list": "V nekaj minutah bo seznam posodobljen"
},
"mail": {
"login_info": "Uporabite uporabniško ime in geslo iz zavihka uporabniki. Vrata IMAP: 143, STARTTLS. Vrata SMTP: 587, STARTTLS."
},
"password_manager": {
"login_info": "Na spletnem mestu boste morali ustvariti račun."
},
"video": {
"login_info": "Račun ni potreben."
},
"storage": {
"extending_volume_price_info": "Cena vključuje DDV in je izračunana na podlagi podatkov o cenah, ki jih je posredoval Hetzner. Strežnik se med postopkom ponovno zažene.",
"data_migration_notice": "Med migracijo bodo vse storitve izklopljene.",
"card_title": "Shranjevanje podatkov v strežniku",
"status_ok": "Uporaba diska je v redu",
"status_error": "Malo prostora na disku",
"disk_usage": "{} uporablja se",
"disk_total": "{} skupaj - {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "Bajti",
"extend_volume_button": "Podaljšanje glasnosti",
"extending_volume_title": "Razširitev prostora za shranjevanje",
"extending_volume_description": "Če spremenite velikost shrambe, lahko v strežniku shranite več podatkov, ne da bi pri tem povečali sam strežnik. Obseg je mogoče samo povečati: ni ga mogoče zmanjšati.",
"extending_volume_error": "Ni uspelo zagnati razširitve shrambe.",
"size": "Velikost",
"data_migration_title": "Migracija podatkov",
"start_migration_button": "Začetek migracije"
},
"service_page": {
"uses": "Uporablja {usage} na {volume}",
"status": {
"reloading": "Ponovni zagon spletne strani",
"active": "Vzpostavitev in delovanje",
"inactive": "Ustavljeno",
"failed": "Ni se uspelo zagnati",
"off": "Invalidi",
"activating": "Aktivacija spletne strani",
"deactivating": "Deaktiviranje spletne strani"
},
"open_in_browser": "Odprite v brskalniku",
"restart": "Ponovni zagon storitve",
"disable": "Onemogočite storitev",
"enable": "Omogočite storitev",
"move": "Premik na drug zvezek"
},
"social_network": {
"login_info": "Na spletišču morate ustvariti račun."
},
"not_ready_card": {
"in_menu": "Strežnik še ni bil nastavljen, uporabite čarovnika za povezavo."
},
"cloud": {
"login_info": "Prijava skrbnika: admin, geslo je enako geslu glavnega uporabnika. Ustvarite nove uporabnike v skrbniškem vmesniku NextCloud."
},
"git": {
"login_info": "Na spletnem mestu morate ustvariti račun. Prvi uporabnik bo postal administrator."
}
}

View File

@ -38,19 +38,12 @@
"more_page": {
"configuration_wizard": "การติดตั้งอย่างง่าย",
"create_ssh_key": "กุญแจ SSH ของผู้ใช้ระดับสูงสุด",
"about_project": "เกี่ยวกับพวกเรา",
"about_application": "เกี่ยวกับ",
"onboarding": "ออนบอร์ด",
"console": "คอนโซล",
"application_settings": "การตั้งค่าของแอพลิเคชั่น"
},
"about_us_page": {
"title": "เกี่ยวกับพวกเรา"
"onboarding": "ออนบอร์ด"
},
"about_application_page": {
"api_version_text": "API เซิฟเวอร์เวอร์ชั้น v.{}",
"api_version_text": "API เซิฟเวอร์เวอร์ชั้น",
"title": "เกี่ยวกับ",
"application_version_text": "แอปพลิเคชั่น เวอร์ชั่น v.{}",
"application_version_text": "แอปพลิเคชั่น เวอร์ชั่น",
"privacy_policy": "นโยบายความเป็นส่วนตัว"
},
"application_settings": {
@ -59,7 +52,7 @@
"title": "การตั้งค่าแอปพลิเคชัน",
"dark_theme_title": "ธีมมืด",
"reset_config_title": "รีเซ็ตค่าดั้งเดิมการตั้งค่าของแอปพลิเคชั่น",
"reset_config_description": "รีเซ็ต api key และผู้ใช้งาน root",
"reset_config_description": "รีเซ็ต API key และผู้ใช้งาน root",
"delete_server_title": "ลบเซิฟเวอร์"
},
"ssh": {
@ -68,8 +61,6 @@
"root_subtitle": "เจ้าของกุญแจเหล่านี้จะสามารถเข้าถึงเซิฟเวอร์และทำอะไรกับเซิฟเวอร์ก็ได้. โปรดเพิ่มกุญแจนี้ไปที่เซิฟเวอร์ของคุณเท่านั้น",
"title": "กุญแจ SSH",
"delete": "ลบกุญแจ SSH",
"subtitle_with_keys": "{} กุญแจ",
"subtitle_without_keys": "ไม่มีกุญแจ",
"no_key_name": "กุญแจไม่มีชื่อ",
"root_title": "นี่คือกุญแจของผู้ใช้สูงสุด",
"input_label": "กุญแจสาธารณะของ ED25519 หรือ RSA"
@ -94,8 +85,6 @@
},
"backup": {
"reuploaded_key": "กุญแจถูกอัปโหลดอีกครั้งเรียบร้อย",
"waiting_for_rebuild": "คุณจะสามารถสร้างข้อมูลสำรองของคุณได้ในไม่กี่นาที",
"restoring": "การกู้คืนจากการสำรองข้อมูง",
"restore_alert": "คุณกำลังที่จะคืนค่าจากข้อมูลสำรองที่สร้างใน {}. ข้อมูลทั้งหมดตอนนี้จะหายไป คุณแน่ใจไหม?",
"refetching_list": "ในไม่กี่นาทีรายการจะอัปเดต",
"card_title": "สำรอง",
@ -105,8 +94,6 @@
"restore": "คืนค่าจากการสำรอง",
"no_backups": "ยังไม่มีการสำรองข้อมูลในตอนนี้",
"create_new": "สร้างข้อมูลสำรองใหม่",
"creating": "กำลังสร้างข้อมูลสำรอง: {}%",
"error_pending": "เซิร์ฟเวอร์ส่งคืนข้อผิดพลาดตรวจสอบด้านล่าง",
"refresh": "สถานะการรีเฟรช",
"refetch_backups": "ดึงข้อมูลรายการสํารองข้อมูลอีกครั้ง"
},
@ -149,7 +136,6 @@
"ram": "หน่วยความจำ",
"monthly_cost": "รายจ่ายต่อเดือน",
"location": "สถานที่",
"provider": "ผู้ให้บริการ",
"core_count": {
"one": "{} core",
"two": "{} จำนวนคอร์",
@ -159,24 +145,104 @@
},
"disk": "ดิสก์ภายในเครื่อง"
},
"record": {
"api": "API ของ SelfPrivacy",
"cloud": "ไฟล์คลาวด์",
"git": "Git server",
"meet": "การประชุมแบบใช้วิดีโอ",
"password": "จัดการกับรหัสผ่าน",
"vpn": "VPN",
"mx": "ระเบียน MX",
"dmarc": "ระเบียน DMARC",
"spf": "ระเบียน SPF",
"root": "โดเมนหลัก",
"social": "เครือข่ายสังคมออนไลน์",
"dkim": "กุญแจ DKIM"
},
"storage": {
"card_title": "พื้นที่ของเซิฟร์เวอร์",
"status_ok": "การใช้งานดิสก์ปกติ",
"status_error": "พื้นที่ว่างดิสก์ต่ำ",
"disk_usage": "{} ใช้แล้ว"
"disk_usage": "{} ใช้แล้ว",
"extending_volume_title": "กำลังขยายความจุ",
"disk_total": "{} ทั้งหมด {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "ไบต์",
"extend_volume_button": "ขยายความจุ",
"extending_volume_description": "การเปลี่ยนความจุนั้นจะทำให้คุณสามารถเก็บข้อมูลบนเซิร์ฟเวอร์ของคุณได้มากขึ้นโดยที่ไม่ต้องเพิ่มความเร็วเซิร์ฟเวอร์แต่ถว่าความจุนั้นสามารถเพิ่มได้อย่างเดียว ไม่สามารถลดขนาดได้",
"extending_volume_price_info": "ราคารวมภาษีมูลค่าเพิ่มและประมาณการจากข้อมูลราคาที่จัดทำโดย Hetzner เซิร์ฟเวอร์จะรีบูตหลังจากปรับความจุ",
"extending_volume_error": "ไม่สามารถเริ่มต้นการขยายความจุได้",
"size": "ขนาด",
"data_migration_title": "การโยกย้ายข้อมูล",
"data_migration_notice": "ระหว่างการย้ายข้อมูล ทุกเซิร์ฟเวอร์จะถูกปิด",
"start_migration_button": "เริ่มการย้ายข้อมูล"
},
"not_ready_card": {
"in_menu": "เซิร์ฟเวอร์ยังไม่ถูกติดตั้งในตอนนี้. โปรดใช้การติดตั้งอย่างง่ายในการติดตั้ง"
},
"service_page": {
"open_in_browser": "เปิดในบราวเซอร์",
"restart": "รีสตาร์ทบริการ",
"disable": "ปิดบริการ",
"enable": "เปิดใช้บริการ",
"move": "ย้ายไปยังไดรฟ์ข้อมูลอื่น",
"uses": "ใช้ {usage} บน {volume}",
"status": {
"active": "เสร็จสิ้นและกำลังทำงาน",
"inactive": "หยุดแล้ว",
"failed": "การเริ่มต้นผิดพลาด",
"off": "ปิดการใช้แล้ว",
"activating": "กำลังเปิดใช้งาน",
"deactivating": "กำลังปิดใช้งาน",
"reloading": "กำลังรีสตาร์ท"
}
},
"users": {
"login": "เข้าสู่ระบบ",
"add_new_user": "เพิ่มผู้ใช้แรก",
"delete_confirm_question": "คุณแน่ใจใช่ไหม?",
"could_not_fetch_users": "ไม่สามารถดึงรายชื่อผู้ใช้",
"refresh_users": "รีเฟรชรายชื่อผู้ใช้",
"username_rule": "ชื่อผู้ใช้ต้องประกอบด้วยตัวอักษรละตินตัวพิมพ์เล็กตัวเลขและขีดล่างเท่านั้นไม่ควรขึ้นต้นด้วยตัวเลข",
"no_ssh_notice": "เฉพาะอีเมลและบัญชี SSH เท่านั้นที่ถูกสร้างขึ้นสําหรับผู้ใช้รายนี้ การลงชื่อเข้าระบบครั้งเดียวสําหรับบริการทั้งหมดกําลังจะมาในเร็วๆ นี้",
"new_user": "ผู้ใช้ใหม่",
"delete_user": "ลบผู้ใช้",
"nobody_here": "ไม่มีใครอยู่ในนี้",
"new_user_info_note": "ผู้ใช้ใหม่จะได้รับสิทธิ์เข้าถึงบริการทั้งหมดโดยอัตโนมัติ",
"reset_password": "รีเซ็ตรหัสผ่าน",
"account": "บัญชี",
"could_not_fetch_description": "โปรดตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณแล้วลองอีกครั้ง",
"could_not_create_user": "สร้างผู้ใช้ไม่ได้",
"could_not_delete_user": "ลบผู้ใช้ไม่ได้",
"could_not_add_ssh_key": "เพิ่มกุญแจ SSH ไม่ได้",
"email_login": "เข้าสู่ระบบอีเมล"
},
"social_network": {
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์"
},
"git": {
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์ ผู้ใช้คนแรกจะกลายเป็นผู้ดูแลระบบ"
},
"initializing": {
"select_provider_notice": "โดย 'ค่อนข้างเล็ก' เราหมายถึงเครื่องที่มีซีพียู 2 คอร์และแรม 2 กิกะไบต์",
"select_provider_countries_text_do": "สหรัฐอเมริกา, เนเธอร์แลนด์, สิงคโปร์, สหราชอาณาจักร, เยอรมนี, แคนาดา, อินเดีย, ออสเตรเลีย",
"select_provider_price_text_do": "$ 17 ต่อเดือนสําหรับเซิร์ฟเวอร์ที่ค่อนข้างเล็กและพื้นที่เก็บข้อมูล 50GB",
"select_provider_email_notice": "การโฮสต์อีเมลจะไม่พร้อมใช้งานสําหรับลูกค้าใหม่ อย่างไรก็ตามมันจะถูกปลดล็อคทันทีที่คุณชําระเงินครั้งแรกเสร็จสิ้น",
"could_not_connect": "ไม่สามารถเชื่อมต่อกับผู้ให้บริการ",
"choose_location_type": "คุณต้องการสั่งซื้อเซิร์ฟเวอร์ของคุณที่ไหน?",
"connect_to_server": "เริ่มจากเซิร์ฟเวอร์กันก่อน",
"select_provider": "เลือกผู้ให้บริการรายใดก็ได้จากรายการต่อไปนี้พวกเขาทั้งหมดสนับสนุน SelfPrivacy",
"select_provider_countries_title": "ประเทศที่ใช้ได้",
"select_provider_countries_text_hetzner": "เยอรมนี, ฟินแลนด์, สหรัฐอเมริกา",
"select_provider_price_title": "ราคาเฉลี่ย",
"select_provider_price_text_hetzner": "€ 8 ต่อเดือนสําหรับเซิร์ฟเวอร์ที่ค่อนข้างเล็กและพื้นที่เก็บข้อมูล 50GB",
"select_provider_payment_title": "ช่องทางการจ่ายเงิน",
"select_provider_payment_text_hetzner": "บัตรเครดิต, SWIFT, SEPA, PayPal",
"select_provider_payment_text_do": "บัตรเครดิต, Google Pay PayPal",
"select_provider_site_button": "เยี่ยมชมเว็บไซต์",
"connect_to_server_provider": "เข้าสู่ระบบใน ",
"connect_to_server_provider_text": "ด้วยโทเค็น API SelfPrivacy จะสามารถเช่าเครื่องและตั้งค่าเซิร์ฟเวอร์ของคุณได้",
"how": "วิธีรับโทเค็น API",
"provider_bad_key_error": "คีย์ API ของผู้ให้บริการไม่ถูกต้อง"
},
"mail": {
"login_info": "ใช้ชื่อผู้ใช้และรหัสผ่านจากแท็บผู้ใช้ พอร์ต IMAP คือ 143 พร้อม STARTTLS, พอร์ต SMTP คือ 587 พร้อม STARTTLS."
},
"password_manager": {
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์"
},
"video": {
"login_info": "ไม่จะเป็นต้องใช้บัญชี"
},
"cloud": {
"login_info": "การเข้าสู่ระบบคือผู้ดูแลระบบ รหัสผ่านเหมือนกับผู้ใช้หลักของคุณ สร้างบัญชีใหม่ในอินเทอร์เฟซ Nextcloud"
}
}

View File

@ -12,7 +12,7 @@
"username": "І'мя користовача",
"loading": "Завантаження…",
"later": "Перейти до налаштувати пізніше",
"connect_to_existing": "Підключитись до існуючого серверу",
"connect_to_existing": "У мене вже є SelfPrivacy сервер!",
"reset": "Скинути",
"details": "Подробиці",
"no_data": "Немає данних",
@ -32,7 +32,11 @@
"cancel": "Відмінити",
"delete": "Видалити",
"close": "Закрити",
"connect": "Підключіться"
"connect": "Підключіться",
"app_name": "SelfPrivacy",
"copied_to_clipboard": "Скопійовано в буфер обміну!",
"please_connect": "Будь ласка, підключіть свій сервер, домен та провайдера DNS, щоб зануритися!",
"network_error": "Помилка мережі"
},
"locale": "ua",
"application_settings": {
@ -40,9 +44,12 @@
"reset_config_title": "Скинути налаштування",
"dark_theme_title": "Темна тема",
"dark_theme_description": "Змінити тему додатка",
"reset_config_description": "Скинути API ключі та root користувача",
"reset_config_description": "Скинути API ключі та root користувача.",
"delete_server_title": "Видалити сервер",
"delete_server_description": "Це видалить ваш сервер. Він більше не буде доступний."
"delete_server_description": "Це видалить ваш сервер. Він більше не буде доступний.",
"system_dark_theme_title": "Системна тема за замовчуванням",
"system_dark_theme_description": "Використовуйте світлу або темну теми залежно від системних налаштувань",
"dangerous_settings": "Небезпечні налаштування"
},
"ssh": {
"delete_confirm_question": "Ви впевнені, що хочете видалити SSH-ключ?",
@ -50,31 +57,23 @@
"title": "SSH-ключі",
"create": "Створити SSH-ключ",
"delete": "Видалити SSH-ключ",
"subtitle_with_keys": "{} ключів",
"subtitle_without_keys": "Ключів немає",
"no_key_name": "Безіменний ключ",
"root_title": "Це ключі суперкористувача",
"input_label": "Публічний ED25519 або RSA ключ"
"input_label": "Публічний ED25519, ECDSA або RSA ключ"
},
"more_page": {
"about_project": "Про нас",
"create_ssh_key": "SSH-ключі суперкористовача",
"console": "Консоль",
"application_settings": "Налаштування додатка",
"configuration_wizard": "Майстер установки",
"about_application": "Про нас",
"onboarding": "Адаптація"
},
"console_page": {
"title": "Консоль",
"waiting": "Очікування ініціалізації…"
},
"about_us_page": {
"title": "Про нас"
"waiting": "Очікування ініціалізації…",
"copy": "Copie"
},
"about_application_page": {
"application_version_text": "Версія додатку v.{}",
"api_version_text": "Версія API сервера v.{}",
"application_version_text": "Версія додатку",
"api_version_text": "Версія API сервера",
"privacy_policy": "Політика конфіденційності",
"title": "Про нас"
},
@ -97,7 +96,6 @@
"choose_server_type_notice": "Важливими речами, на які слід дивитися, є процесор і оперативна пам'ять. Дані ваших послуг буде збережено.",
"use_this_domain_text": "Токен, який ви надали, надає доступ до наступного домену",
"loading_domain_list": "Завантаження списку доменів",
"found_more_domains": "Знайдено більше одного домену. Для власної безпеки просимо видалити непотрібні домени",
"server_created": "Сервер створений. DNS перевірений і завантаження серверу у прогресі…",
"enter_username_and_password": "Введіть ім’ я користувача і надійний пароль",
"connect_to_server": "Почнемо з сервера.",
@ -127,14 +125,9 @@
"choose_server_type_ram": "{} ГБ ОЗУ",
"choose_server_type_storage": "{} ГБ системного сховища",
"choose_server_type_payment_per_month": "{} щомісячно",
"no_server_types_found": "Не знайдено доступних типів серверів. Переконайтеся, що ваш обліковий запис доступний і спробуйте змінити розташування вашого сервера.",
"cloudflare_bad_key_error": "Некоректний ключ API CloudFlare",
"backblaze_bad_key_error": "Інформація про зберігання Backblaze є недійсною",
"select_dns": "Тепер давайте оберемо DNS-провайдера",
"manage_domain_dns": "Для управління DNS домену",
"use_this_domain": "Скористатися цим доменом?",
"cloudflare_api_token": "CloudFlare API токен",
"connect_backblaze_storage": "Підключити Backblaze сховище",
"no_connected_domains": "Наразі немає пов'язаних доменів",
"save_domain": "Зберегти домен",
"final": "Останній крок",
@ -146,8 +139,29 @@
"check": "Перевірка",
"one_more_restart": "Ще один перезапуск, щоб застосувати сертифікати безпеки.",
"create_master_account": "Створити внутрішній рахунок",
"finish": "Усе ініціалізовано",
"checks": "Перевірка була завершена\n{} з {}"
"checks": "Перевірка була завершена\n{} з {}",
"dns_provider_bad_key_error": "Невірний ключ API",
"steps": {
"dns_provider": "DNS провайдер",
"dns_setup": "Налаштування DNS",
"server_type": "Тип сервера",
"hosting": "Хостинг",
"domain": "Домен",
"server": "Сервер",
"nixos_installation": "Встановлення NixOS",
"server_reboot": "Перезапуск сервера",
"final_checks": "Фінальні перевірки",
"backups_provider": "Резервне копіювання",
"master_account": "Головний обліковий запис"
},
"select_provider_price_free": "Безкоштовно",
"multiple_domains_found_text": "Даний токен надає доступ до наступних доменних імен. Будь ласка виберіть той, який ви хочете використовувати. Для безпеки інших доменних імен варто обмежити доступ даного токену лише до домена, який ви хочете використовувати з SelfPrivacy.",
"domain_critical_error": "Домен недоступний! Натисніть щоб дізнатися більше…",
"choose_server_type_payment_storage": "{} за додаткове сховище",
"choose_server_type_payment_ip": "{} за публічну IPv4 адресу",
"connect_to_dns": "Підключіть DNS провайдера",
"choose_server_type_payment_server": "{} за сам сервер",
"multiple_domains_found": "Знайдено декілька доменів"
},
"recovering": {
"recovery_main_header": "З єднатися з існуючим сервером",
@ -167,12 +181,12 @@
"fallback_select_description": "Що у вас є? Виберіть перший доступний варіант:",
"fallback_select_token_copy": "Копія токена автентифікації з іншої версії застосунку.",
"fallback_select_root_ssh": "Root SSH доступ до сервера.",
"fallback_select_provider_console": "Доступ до серверної консолі мого продера.",
"fallback_select_provider_console": "Доступ до серверної консолі мого провайдера.",
"authorization_failed": "Не можу авторизуватись за цим ключем",
"fallback_select_provider_console_hint": "Наприклад: Hetzner.",
"server_provider_connected": "Підключіться до провайдера сервера",
"server_provider_connected_description": "Зв'язок встановлений. Введіть свій токен з доступом до {}:",
"server_provider_connected_placeholder": "Токен провайдера сервера",
"provider_connected": "Підключіться до {}",
"provider_connected_description": "Зв'язок встановлений. Введіть свій токен з доступом до {}:",
"provider_connected_placeholder": "{} Токен",
"confirm_server": "Підтвердити сервер",
"confirm_server_description": "Знайдено ваш сервер! Підтвердіть, що він правильний:",
"confirm_server_accept": "Так! Це воно",
@ -186,11 +200,7 @@
"modal_confirmation_dns_valid": "Зворотна DNS дійсна",
"modal_confirmation_dns_invalid": "Зворотна DNS вказує на інший домен",
"modal_confirmation_ip_valid": "IP той же, що і в записі DNS",
"modal_confirmation_ip_invalid": "IP не такий, як в DNS-записі",
"confirm_cloudflare": "Підключення до CloudFlare",
"confirm_cloudflare_description": "Введіть токен CloudFlare з доступом до {}:",
"confirm_backblaze": "Підкючитися до Backblaze",
"confirm_backblaze_description": "Введіть токен Backblaze із доступом до сховища резервних копій:"
"modal_confirmation_ip_invalid": "IP не такий, як в DNS-записі"
},
"resource_chart": {
"month": "Місяць",
@ -213,7 +223,6 @@
"server_id": "Сервер ID",
"cpu": "Процессор",
"ram": "Пам'ять",
"provider": "Провайдер",
"core_count": {
"one": "{} ядро",
"few": "{} ядра",
@ -227,21 +236,10 @@
"server_timezone": "Часовий пояс сервера",
"timezone_search_bar": "Ім'я часового поясу або значення зсуву часу",
"monthly_cost": "Щомісячна вартість",
"location": "Місцезнаходження"
},
"record": {
"api": "SelfPrivacy API",
"cloud": "Файлове сховище",
"git": "Git-сервер",
"social": "Соціальна мережа",
"password": "Менеджер паролів",
"vpn": "VPN",
"mx": "MX-запис",
"dmarc": "DMARC-запис",
"spf": "SPF-запис",
"meet": "Відео конференція",
"dkim": "DKIM ключі",
"root": "Кореневий домен"
"location": "Місцезнаходження",
"server_provider": "Провайдер сервера",
"dns_provider": "Провайдер DNS",
"pricing_error": "Не вдалося отримати ціни постачальника"
},
"domain": {
"card_title": "Домен",
@ -254,7 +252,7 @@
"email_title": "Електронна пошта",
"email_subtitle": "Записи, необхідні для безпечного обміну електронною поштою.",
"update_list": "Лист оновлень",
"error_subtitle": "Нажміть сюди, щоб виправити їх",
"error_subtitle": "Натисніть тут, щоб виправити їх. При цьому також буде видалено користувацькі записи.",
"services_subtitle": "Введіть \"А\" записи, необхідні для кожної служби."
},
"backup": {
@ -265,15 +263,114 @@
"restore": "Відновити з резервної копії",
"no_backups": "Ще немає резервних копій",
"create_new": "Створити нову резервну копію",
"creating": "Створення нової резервної копії: {}%",
"error_pending": "Помилка відновлення сервера, перевірте це нижче",
"refresh": "Оновити статус",
"refetch_backups": "Повторно отримати список резервних копій",
"refetching_list": "За кілька хвилин список буде оновлений",
"description": "Врятує ваш день у разі аварії: хакерська атака, видаленя серверу, тощо.",
"waiting_for_rebuild": "Ви зможете створити свою першу резервну копію через кілька хвилин.",
"restoring": "Відновлення з резервної копії",
"restore_alert": "Ви збираєтеся відновити з резервної копії. створеної на {}. Усі поточні дані будуть втрачені. Ви згодні?"
"restore_alert": "Ви збираєтеся відновити з резервної копії. створеної на {}. Усі поточні дані будуть втрачені. Ви згодні?",
"refetch_backups_subtitle": "Скинути кеш і запросити дані у провайдера. Може спричинити додаткові витрати.",
"reupload_key_subtitle": "Ще раз проініціалізує сховище резервних копій. Використовуйте, якщо щось зламалося.",
"create_new_select_heading": "Вибрати сервіси для копіювання",
"start": "Почати створення копій",
"service_busy": "Зараз створюються інші резервні копії",
"latest_snapshots": "Останні знімки",
"latest_snapshots_subtitle": "Останні 15 знімків",
"show_more": "Показати ще",
"autobackup_period_title": "Період автоматичного копіювання",
"autobackup_period_subtitle": "Створення копій раз на {period}",
"autobackup_period_never": "Автоматичне копіювання вимкнено",
"autobackup_period_every": "Раз у {period}",
"autobackup_period_disable": "Вимкнути автоматичні копіювання",
"autobackup_set_period": "Встановити період",
"backups_encryption_key": "Ключ шифрування",
"backups_encryption_key_subtitle": "Зберігайте його в безпечному місці.",
"backups_encryption_key_copy": "Скопіюйте ключ шифрування",
"card_subtitle": "Керуйте резервними копіями",
"select_all": "Копіювати все",
"backups_encryption_key_show": "Показати ключ шифрування",
"backups_encryption_key_description": "Цей ключ використовується для шифрування ваших резервних копій. Якщо ви його втратите, ви не зможете відновити резервні копії. Зберігайте його в безпечному місці, оскільки він стане в нагоді, якщо вам коли-небудь знадобиться відновити з резервних копій вручну.",
"backups_encryption_key_not_found": "Ключ шифрування ще не знайдено, спробуйте пізніше.",
"snapshot_service_title": "Сервіс",
"snapshot_creation_time_title": "Час створення",
"snapshot_modal_download_verify_option_title": "Завантажте, перевірте та замініть",
"pending_jobs": "Зараз виконуються завдання резервного копіювання",
"snapshots_title": "Список знімків",
"snapshot_modal_inplace_option_title": "Замініть на місце",
"snapshot_reason_title": "Причина створення",
"snapshot_reasons": {
"auto": "Створено автоматично",
"explicit": "Створено за вашим явним запитом",
"unknown": "Невідомий",
"pre_restore": "Створено як запобіжний захід перед ризикованим відновленням"
},
"set_rotation_quotas": "Встановити нові квоти ротації",
"quota_subtitles": {
"last": {
"zero": "Правило вимкнено",
"one": "Останній {} знімок буде зберігатися незалежно від дати створення",
"two": "Останні {} знімка будуть зберігатися незалежно від дати створення",
"few": "Останні {} знімка будуть зберігатися незалежно від дати створення",
"many": "Останні {} знімків будуть зберігатися незалежно від дати створення",
"other": "Останні {} знімків будуть зберігатися незалежно від дати створення"
},
"daily": {
"zero": "Правило вимкнено",
"other": "Останні {} щоденних знімків будуть зберігатися",
"few": "Останні {} щоденних знімки будуть зберігатися",
"one": "Останній {} щоденний знімок буде зберігатися",
"two": "Останні {} щоденних знімки будуть зберігатися",
"many": "Останні {} щоденних знімків будуть зберігатися"
},
"no_effect": "Це правило не має ефекту, оскільки перекрите іншим правилом",
"monthly": {
"other": "Останні {} щомісячних знімків будуть зберігатися",
"zero": "Правило відключено",
"one": "Останній {} щомісячний знімок буде зберігатися",
"few": "Останні {} щомісячні знімки будуть зберігатися",
"two": "Останні {} щомісячні знімки будуть зберігатися",
"many": "Останні {} щомісячних знімків будуть зберігатися"
},
"last_infinite": "Всі знімки будуть збережені",
"monthly_infinite": "Всі щомісячні знімки будуть зберігатися",
"daily_infinite": "Всі щоденні знімки будуть зберігатися",
"weekly": {
"zero": "Правило відключено",
"one": "Останній {} щотижневий знімок буде зберігатися",
"two": "Останні {} щотижневих знімки будуть зберігатися",
"few": "Останні {} щотижневих знімки будуть зберігатися",
"many": "Останні {} щотижневих знімків будуть зберігатися",
"other": "Останні {} щотижневих знімків будуть зберігатися"
},
"weekly_infinite": "Всі щотижневі знімки будуть зберігатися",
"yearly_infinite": "Всі щорічні знімки будуть зберігатися",
"yearly": {
"two": "Останні {} щорічних знімки будуть зберігатися",
"many": "Останні {} щорічних знімків будуть зберігатися",
"other": "Останні {} щорічних знімків будуть зберігатися",
"zero": "Правило відключено",
"one": "Останній {} щорічний знімок буде зберігатися",
"few": "Останні {} щорічних знімки будуть зберігатися"
}
},
"snapshot_modal_service_not_found": "Це знімок сервісу, якого більше немає на вашому сервері. Зазвичай цього не повинно відбуватися, і ми не зможемо виконати автоматичне відновлення. Ви можете завантажити знімок і відновити його вручну. Зверніться до служби підтримки SelfPrivacy, якщо вам потрібна допомога.",
"rotation_quotas_title": "Налаштування ротації знімків",
"quotas_only_applied_to_autobackups": "Ці налаштування застосовуються тільки до резервних копій, створених автоматично. Створені вручну резервні копії не будуть видалені цими правилами.",
"quota_titles": {
"last": "Скільки останніх знімків зберігати",
"daily": "Скільки щоденних знімків зберігати",
"weekly": "Скільки щотижневих знімків зберігати",
"monthly": "Скільки щомісячних знімків зберігати",
"yearly": "Скільки щорічних знімків зберігати"
},
"forget_snapshot": "Забудьте про моментальний знімок",
"forget_snapshot_alert": "Ви впевнені що хочете видалити цей знімок? Цю дію зазвичай не можна скасувати.",
"forget_snapshot_error": "Не вдалося забути знімок",
"snapshot_modal_heading": "Відомості про знімок",
"snapshot_id_title": "ID знімка",
"snapshot_modal_select_strategy": "Виберіть стратегію відновлення",
"snapshot_modal_download_verify_option_description": "Менший ризик, але потрібно більше вільного місця. Завантаження всієї резервної копії в тимчасове сховище, перевірка цілісності копії, і подальша заміна поточних даних.",
"snapshot_modal_inplace_option_description": "Потрібно менше вільного місця, але вищий ризик. Під час завантаження даних із резервної копії замінюють поточні дані відразу.",
"restore_started": "Відновлення почалося, перевірте поточний статус у списку завдань"
},
"storage": {
"card_title": "Серверне сховище",
@ -285,18 +382,21 @@
"kb": "{} КБ",
"bytes": "Байти",
"extend_volume_button": "Збільшити обсяг",
"extending_volume_price_info": "Ціна включає ПДВ і оцінюється з даних ціноутворення, наданих Hetzner. Сервер буде перезавантажений після зміни розміру.",
"extending_volume_price_info": "Ціна включає ПДВ і оцінюється з даних ціноутворення, наданих сервіс-провайдером. Сервер буде перезавантажений після зміни розміру.",
"extending_volume_error": "Не вдалося ініціалізувати розширення обсягу.",
"size": "Розмір",
"euro": "Євро",
"data_migration_title": "Перенесення даних",
"start_migration_button": "Почати перенос",
"migration_process": "Перенос…",
"migration_done": "Закінчити",
"status_ok": "Використання диска нормальне",
"extending_volume_title": "Збільшення обсягу",
"extending_volume_description": "Зміна обсягу дозволить зберігати більше даних на вашому сервері без розширення сервера. Обсяг може бути тільки збільшеним: зменшення неможливе.",
"data_migration_notice": "Під час переносу всі послуги будуть вимкнені."
"data_migration_notice": "Під час переносу всі послуги будуть вимкнені.",
"price": "Ціна",
"extending_volume_rebooting": "Перезапуск сервера…",
"extending_volume_modal_description": "Сховище буде розширено до {}, нова вартість {} в місяць.",
"extending_volume_provider_waiting": "Сховище розширено зі сторони провайдера, очікуємо 10 секунд…",
"extending_volume_started": "Розширення сховища розпочато",
"extending_volume_server_waiting": "Сховище розширено зі сторони сервера, очікуємо 20 секунд…"
},
"not_ready_card": {
"in_menu": "Сервер ще не налаштовано. Будь ласка, завершіть налаштування за допомогою майстра налаштування для подальшої роботи."
@ -316,42 +416,28 @@
"deactivating": "Деактивація",
"reloading": "Перезапуск"
},
"uses": "Використовує {usage} на {volume}"
"uses": "Використовує {usage} на {volume}",
"nothing_here": "Тут нічого немає",
"snapshots": "Знімки резервних копій"
},
"mail": {
"subtitle": "E-Mail для компанії та сім'ї.",
"title": "E-Mail",
"login_info": "Використовувати ім’ я користувача і пароль з вкладки « користувач ». Порт IMAP — 143 з STARTTLS, порт SMTP — 587."
},
"password_manager": {
"title": "Менеджер паролів",
"login_info": "Вам доведеться створити обліковий запис на веб-сайті.",
"subtitle": "Основа вашої безпеки. Bitwarden допоможе вам створювати, зберігати і переміщати паролі між пристроями, а також вводити їх за запитом за допомогою автозаповнення."
"login_info": "Вам доведеться створити обліковий запис на веб-сайті."
},
"video": {
"title": "Відеозустріч",
"subtitle": "Zoom і Google Meet хороші, але Jitsi meet є вартою альтернативи, яка також дає вам впевненість, що вас не слухають.",
"login_info": "Обліковий запис не потрібен."
},
"cloud": {
"title": "Хмарне сховище",
"subtitle": "Не дозволяйте хмарним службам читати ваші дані, за допомогою NextCloud.",
"login_info": "Вхід адміністратора, пароль такий самий, як і у вашого головного користувача. Створити нові аккаунти у Nextcloud."
},
"social_network": {
"title": "Соціальна мережа",
"login_info": "Вам доведеться створити обліковий запис на веб-сайті.",
"subtitle": "Важко повірити, але стало можливим створити власну соціальну мережу, з твоїми власними правилами та цільовою аудиторією."
"login_info": "Вам доведеться створити обліковий запис на веб-сайті."
},
"git": {
"title": "Git-сервер",
"subtitle": "Приватна альтернатива Github, яка належить вам, а не Microsoft.",
"login_info": "Вам доведеться створити обліковий запис на веб-сайті. Першим користувачем стане адміністратор."
},
"vpn": {
"title": "VPN-сервер",
"subtitle": "Приватний VPN-сервер"
},
"users": {
"add_new_user": "Додати першого користувача",
"new_user": "Новий користувач",
@ -362,17 +448,17 @@
"delete_confirm_question": "Ви згодні?",
"reset_password": "Скинути пароль",
"account": "Аккаунт",
"send_registration_data": "Поділитися реєстраційними даними",
"could_not_fetch_users": "Не вдалося отримати список користувачів",
"refresh_users": "Оновити список користувачів",
"could_not_create_user": "Не зміг створити користувача",
"could_not_delete_user": "Не зміг видалити користувача",
"could_not_add_ssh_key": "Не зміг додати SSH-ключ",
"email_login": "Увійти через Email",
"not_ready": "Будь ласка, підключіть сервер, домен і DNS на вкладці \"Сервери\", щоб мати можливість додати першого користувача",
"could_not_fetch_description": "Перевірте підключення до Інтернету і спробуйте ще раз",
"username_rule": "Ім'я користувача має містити лише малі латинські літери, цифри і підкреслення, не слід починати з цифри",
"no_ssh_notice": "Для цього користувача створюються тільки поштові та SSH-акаунти. Єдина реєстрація для всіх сервісів незабаром."
"no_ssh_notice": "Для цього користувача створюються тільки поштові та SSH-акаунти. Єдина реєстрація для всіх сервісів незабаром.",
"user_already_exists": "Користувач з таким іменем уже існує",
"details_title": "Користувач"
},
"devices": {
"main_screen": {
@ -433,9 +519,9 @@
"purge_all_keys_confirm": "Так, очистити всі мої токени",
"delete_server_volume": "Видалити сервер і сховище?",
"reboot": "Перезавантажити",
"you_cant_use_this_api": "Не можна використовувати цей API для доменів з таким TLD.",
"yes": "Так",
"no": "Ні"
"no": "Ні",
"volume_creation_error": "Не вдалося створити сховище."
},
"timer": {
"sec": "{} сек"
@ -461,16 +547,42 @@
"delete_ssh_key": "Видалити SSH-ключ для {}",
"server_jobs": "Задачі на сервері",
"reset_user_password": "Скинути пароль користувача",
"generic_error": "Не вдалося підключитись до сервера!"
"generic_error": "Не вдалося підключитись до сервера!",
"start_server_upgrade": "Запуск оновлення сервера",
"job_removed": "Завдання видалено",
"change_server_timezone": "Змінити часовий пояс сервера",
"change_auto_upgrade_settings": "Зміна налаштувань автооновлення",
"job_postponed": "Завдання додано, але ви не зможете його запустити після завершення поточних завдань",
"rebuild_system": "Перезібрати систему"
},
"validations": {
"required": "Потрібно",
"already_exist": "Вже існує",
"invalid_format": "Неприпустимий формат",
"invalid_format_password": "Не повинен містити порожніх символів",
"invalid_format_password": "Пароль не має містити пробілів",
"length_longer": "Довжина [] повинна бути коротшою або дорівнює {}",
"invalid_format_ssh": "Повинен відповідати формату ключа SSH",
"root_name": "Не може бути 'root'",
"length_not_equal": "Довжина [], має бути {}"
},
"developer_settings": {
"allow_ssh_key_at_setup": "Дозволити налаштовувати ключі SSH користувача root під час установки",
"allow_ssh_key_at_setup_description": "Кнопка для додання ключа з'явиться на екрані підтвердження.",
"add_root_ssh_key": "Додати ключ SSH для root",
"root_ssh_key_added": "Ключ SSH для root встановлено і буде застосовано",
"ignore_tls": "Не перевіряти TLS сертифікати",
"title": "Налаштування розробника",
"subtitle": "Дані налаштування призначені лише для налагодження. Не змінюйте їх, якщо ви точно не знаєте, що робите.",
"server_setup": "Майстер встановлення сервера",
"use_staging_acme": "Використання тестового ACME сервера",
"use_staging_acme_description": "Використовується при налаштуванні нового сервера.",
"ignore_tls_description": "Програма не буде перевіряти TLS сертифікати при підключенні до сервера.",
"routing": "Роутинг програми",
"reset_onboarding_description": "Повторно показати екран привітання",
"reset_onboarding": "Скинути прапорець перегляду привітання",
"cubit_statuses": "Поточний стан кубітів завантаження"
},
"support": {
"title": "Підтримка SelfPrivacy"
}
}

View File

@ -0,0 +1,606 @@
{
"backup": {
"quota_subtitles": {
"yearly": {
"other": "所有年度备份将被保留",
"zero": "规则已禁用",
"one": "所有年度备份将被保留",
"few": "所有年度备份将被保留",
"many": "所有年度备份将被保留",
"two": "所有年度备份将被保留"
},
"yearly_infinite": "所有年度备份将被保留",
"no_effect": "此规则无效,因为另一个规则将保留更多的备份",
"last": {
"zero": "规则已禁用",
"one": "最后的 {} 个备份将被保留,不受其年龄的影响",
"few": "最近的{}个备份将被保留,不受它们的创建时间的影响",
"many": "最近的{}个备份将被保留,不受它们的年龄影响",
"other": "最近的{}个备份将被保留,无论它们的年龄如何",
"two": "最后的 {} 个备份将被保留,不考虑它们的年龄"
},
"last_infinite": "所有备份将被保留",
"daily": {
"zero": "规则已禁用",
"two": "最后 {} 个每日备份将被保留",
"few": "最后 {} 个每日备份将被保留",
"many": "最后 {} 个每日备份将被保留",
"other": "最后 {} 个每日备份将被保留",
"one": "最后 {} 日备份将被保留"
},
"weekly": {
"zero": "规则已禁用",
"one": "最近的 {} 周备份将被保留",
"two": "最近的 {} 周备份将被保留",
"few": "最近的 {} 周备份将被保留",
"many": "最近的 {} 周备份将被保留",
"other": "最近的 {} 周备份将被保留"
},
"weekly_infinite": "所有周备份将被保留",
"monthly": {
"zero": "规则已禁用",
"one": "最近的{}个月备份将被保留",
"few": "最近的{}个月备份将被保留",
"many": "最近的{}个月备份将被保留",
"other": "最近的{}个月备份将被保留",
"two": "最近的{}个月备份将被保留"
},
"monthly_infinite": "所有月度备份将被保留",
"daily_infinite": "所有每日备份都将被保留"
},
"card_title": "备份",
"card_subtitle": "管理你的备份",
"reupload_key": "强制重新上传密钥",
"reuploaded_key": "密钥已重新上传",
"initialize": "初始化",
"restore": "从备份中恢复",
"no_backups": "还没有任何备份",
"create_new": "创建一个新的备份",
"restore_alert": "您即将恢复备份,该备份创建于{}。所有当前数据将会丢失。您确定吗?",
"refresh": "刷新状态",
"refetch_backups": "刷新备份列表",
"reupload_key_subtitle": "将指示服务器重新初始化备份存储。如果出现故障,请使用。",
"refetching_list": "列表将在几分钟内更新",
"select_all": "备份所有内容",
"create_new_select_heading": "选择需要备份的内容",
"start": "开始备份",
"service_busy": "另一个备份操作正在进行中",
"latest_snapshots": "最新快照",
"latest_snapshots_subtitle": "显示最近的15个快照",
"show_more": "显示更多",
"autobackup_period_title": "自动备份周期",
"autobackup_period_subtitle": "每{period}创建一次备份",
"autobackup_period_never": "自动备份已禁用",
"autobackup_period_every": "每{period}",
"autobackup_period_disable": "禁用自动备份",
"autobackup_set_period": "设置周期",
"backups_encryption_key": "加密密钥",
"backups_encryption_key_subtitle": "请保管好。",
"backups_encryption_key_copy": "复制加密密钥",
"backups_encryption_key_show": "显示加密密钥",
"backups_encryption_key_not_found": "加密密钥尚未找到,请稍后再试。",
"pending_jobs": "当前正在运行的备份任务",
"snapshots_title": "快照列表",
"forget_snapshot_alert": "您即将删除此快照。您确定吗?此操作通常无法撤销。",
"forget_snapshot": "删除快照",
"forget_snapshot_error": "不能删除快照",
"snapshot_modal_heading": "快照详情",
"snapshot_service_title": "服务",
"snapshot_creation_time_title": "创建时间",
"snapshot_modal_select_strategy": "选择恢复策略",
"snapshot_modal_download_verify_option_title": "下载、验证,然后替换",
"snapshot_modal_inplace_option_title": "原地替换",
"snapshot_modal_inplace_option_description": "需要更少的可用空间,但风险更高。在下载期间用快照数据替换当前数据。",
"restore_started": "恢复已启动,请检查作业列表以获取当前状态",
"snapshot_reason_title": "创建原因",
"snapshot_reasons": {
"explicit": "由您明确的请求创建",
"pre_restore": "在风险恢复前作为预防措施创建",
"unknown": "未知",
"auto": "已自动生成"
},
"set_rotation_quotas": "设置新的轮换配额",
"rotation_quotas_title": "快照轮换设置",
"quotas_only_applied_to_autobackups": "这些设置仅适用于自动备份。手动备份不会被删除。",
"quota_titles": {
"last": "保留最新备份数量",
"daily": "保留多少个每日备份",
"weekly": "保留多少个每周备份",
"monthly": "保留多少个每月备份",
"yearly": "保留多少个每年备份"
},
"snapshot_id_title": "快照ID",
"refetch_backups_subtitle": "使缓存失效并从您的存储提供商重新获取数据。可能会产生额外费用。",
"description": "在发生意外的时候将节省你的时间:黑客攻击,服务器被删除等。",
"backups_encryption_key_description": "这个密钥用于加密您的备份。如果丢失了它,您将无法恢复您的备份。请将其放在安全的地方,因为如果您需要手动从备份中恢复时,它将会很有用。",
"snapshot_modal_download_verify_option_description": "风险较低,但需要更多的空间。将整个快照下载到临时存储中,验证后再替换当前数据。",
"snapshot_modal_service_not_found": "这是一个您的服务器上不再拥有的服务的快照。通常情况下这不应该发生我们无法进行自动恢复。您仍然可以下载快照并手动进行恢复。如果需要帮助请联系SelfPrivacy支持团队。"
},
"service_page": {
"status": {
"reloading": "正在重启中",
"active": "运行正常",
"inactive": "已停止",
"failed": "启动失败",
"off": "已禁用",
"activating": "正在启动中",
"deactivating": "正在停用中"
},
"nothing_here": "空白",
"open_in_browser": "在浏览器中打开",
"restart": "重新启动服务",
"disable": "禁用服务",
"enable": "启用服务",
"move": "移动到另一个卷",
"uses": "在{volume}上使用了 {usage}",
"snapshots": "备份快照"
},
"storage": {
"extending_volume_description": "调整卷大小将允许您在服务器上存储更多数据,而无需扩展服务器本身。卷只能扩展:无法收缩。",
"extending_volume_modal_description": "升级到{},每月{}的套餐。",
"card_title": "服务器存储",
"status_ok": "磁盘使用情况正常",
"status_error": "磁盘空间不足",
"disk_usage": "已使用 {}",
"disk_total": "{} 总共 · {}",
"gb": "{} GB",
"mb": "{} MB",
"kb": "{} KB",
"bytes": "字节",
"extending_volume_title": "正在扩展卷大小",
"extend_volume_button": "扩展卷",
"extending_volume_price_info": "价格包含增值税,并根据您的服务器提供商提供的定价数据估算。在调整大小后,服务器将重新启动。",
"extending_volume_error": "无法初始化卷扩展。",
"extending_volume_started": "卷扩展已启动",
"extending_volume_provider_waiting": "提供商已调整卷大小等待10秒钟…",
"extending_volume_server_waiting": "服务器卷已调整大小等待20秒钟…",
"extending_volume_rebooting": "正在重新启动服务器…",
"size": "大小",
"price": "价格",
"data_migration_title": "数据迁移",
"data_migration_notice": "在迁移期间,所有服务将被关闭。",
"start_migration_button": "开始迁移"
},
"cloud": {
"login_info": "登录名为 admin密码与您的主用户相同。在 Nextcloud 界面中创建新账户。"
},
"initializing": {
"select_provider_countries_text_hetzner": "德国、芬兰、美国",
"steps": {
"nixos_installation": "NixOS 安装",
"hosting": "托管",
"server_type": "服务器类型",
"dns_provider": "DNS 提供商",
"backups_provider": "备份",
"domain": "域名",
"master_account": "主账户",
"server": "服务器",
"dns_setup": "DNS 设置",
"server_reboot": "服务器重启",
"final_checks": "最终检查"
},
"choose_location_type_text": "不同的位置提供不同的服务器配置、价格和连接速度。",
"select_provider_price_text_hetzner": "每月 €8提供一个相对较小的服务器和50GB的磁盘存储空间",
"select_provider_email_notice": "新客户将无法使用电子邮件托管。然而,一旦完成首次付款,将解锁该功能。",
"what": "这意味着什么?",
"choose_server_type_text": "不同的资源大小支持不同的服务。别担心,您可以随时扩展您的服务器",
"server_started": "服务器已启动。现在将进行验证并重新启动…",
"one_more_restart": "还需一次重启以应用您的安全证书。",
"connect_to_server": "让我们从一个服务器开始。",
"select_provider": "从以下列表中选择任何提供商,它们都支持 SelfPrivacy",
"select_provider_notice": "我们所说的“相对较小”是指一个拥有 2 个 CPU 核心和 2GB RAM 的机器。",
"select_provider_countries_title": "可用国家",
"select_provider_countries_text_do": "美国、荷兰、新加坡、英国、德国、加拿大、印度、澳大利亚",
"select_provider_price_title": "平均价格",
"select_provider_price_free": "免费",
"select_provider_price_text_do": "每月 $17提供一个相对较小的服务器和50GB的磁盘存储空间",
"select_provider_payment_title": "付款方式",
"select_provider_payment_text_hetzner": "信用卡、SWIFT、SEPA、PayPal",
"select_provider_payment_text_do": "信用卡、Google Pay、PayPal",
"select_provider_site_button": "访问网站",
"connect_to_server_provider": "现在登录 ",
"connect_to_server_provider_text": "使用 API 令牌SelfPrivacy 将能够租用一台机器并在其上设置您的服务器",
"how": "如何获取 API 令牌",
"provider_bad_key_error": "提供商 API 密钥无效",
"could_not_connect": "无法连接到提供商。",
"choose_location_type": "您想在哪里订购您的服务器?",
"locations_not_found": "抱歉!",
"locations_not_found_text": "没有可用的服务器可供租用",
"back_to_locations": "选择其他内容",
"no_locations_found": "找不到可用的位置,确保您的帐户可访问",
"choose_server_type": "您需要什么类型的服务器?",
"choose_server_type_notice": "重要的是要注意 CPU 和 RAM。您的服务数据将存储在一个可扩展的挂载卷上需要单独付费。",
"choose_server_type_ram": "{}GB 内存",
"choose_server_type_storage": "{}GB 系统存储",
"choose_server_type_payment_per_month": "每月 {}",
"choose_server_type_payment_server": "服务器费用 {}",
"choose_server_type_payment_storage": "附加存储费用 {}",
"choose_server_type_payment_ip": "公共 IPv4 地址费用 {}",
"dns_provider_bad_key_error": "API 密钥无效",
"backblaze_bad_key_error": "Backblaze 存储信息无效",
"connect_to_dns": "连接 DNS 提供商",
"select_dns": "现在让我们选择一个 DNS 提供商",
"use_this_domain": "使用此域名?",
"use_this_domain_text": "您提供的令牌可以访问以下域名",
"multiple_domains_found": "找到多个域名",
"multiple_domains_found_text": "您提供的令牌可以访问以下域名。请选择要使用的域名。出于对其他域名安全性的考虑,您应该将此令牌的访问权限限制为仅限于您想要与 SelfPrivacy 使用的域名。",
"no_connected_domains": "目前没有连接的域名",
"loading_domain_list": "加载域名列表中",
"save_domain": "保存域名",
"final": "最后一步",
"create_server": "创建服务器",
"server_rebooted": "服务器已重新启动。等待最后的验证…",
"server_created": "服务器已创建。DNS 检查和服务器引导正在进行中…",
"domain_critical_error": "我们无法访问此域名!点击以了解更多…",
"until_the_next_check": "直到下次检查: ",
"check": "检查",
"create_master_account": "创建主账户",
"enter_username_and_password": "输入用户名和强密码",
"checks": "检查已完成\n{} 个中的 {} 个"
},
"recovering": {
"method_device_input_description": "输入您的授权令牌",
"method_device_button": "我已收到我的令牌",
"confirm_server_accept": "是的!就是这个",
"choose_server_description": "我们无法确定您要连接的是哪个服务器。",
"fallback_select_root_ssh": "对服务器的根 SSH 访问。",
"no_servers": "您的帐户中没有可用的服务器。",
"modal_confirmation_description": "如果连接到错误的服务器,您可能会丢失所有数据。",
"provider_connected_description": "请输入您访问 {} 的令牌:",
"generic_error": "操作失败,请重试。",
"recovery_main_header": "连接到现有服务器",
"domain_recovery_description": "输入您想要访问的服务器域名:",
"domain_recover_placeholder": "您的域名",
"domain_recover_error": "找不到具有此域名的服务器",
"method_select_description": "选择恢复方法:",
"method_select_other_device": "我可以在另一台设备上访问",
"method_select_recovery_key": "我有一个恢复密钥",
"method_select_nothing": "我没有这些东西",
"method_device_description": "在另一台设备上打开应用程序,然后转到设备页面。按“添加设备”以接收您的令牌。",
"method_device_input_placeholder": "令牌",
"method_recovery_input_description": "输入您的恢复密钥",
"fallback_select_description": "您具体有什么?选择第一个可用的选项:",
"fallback_select_token_copy": "从其他版本的应用程序复制授权令牌的副本。",
"fallback_select_provider_console": "访问提供商提供的服务器控制台。",
"authorization_failed": "无法使用此密钥登录",
"fallback_select_provider_console_hint": "例如Hetzner。",
"provider_connected": "连接到{}",
"provider_connected_placeholder": "{} 令牌",
"confirm_server": "确认服务器",
"confirm_server_description": "找到您的服务器!确认它是你想找的服务器:",
"confirm_server_decline": "选择其他服务器",
"choose_server": "选择您的服务器",
"domain_not_available_on_token": "所选域在此令牌上不可用。",
"modal_confirmation_title": "这真的是您的服务器吗?",
"modal_confirmation_dns_valid": "反向 DNS 有效",
"modal_confirmation_dns_invalid": "反向 DNS 指向另一个域名",
"modal_confirmation_ip_valid": "IP 与 DNS 记录中的相同",
"modal_confirmation_ip_invalid": "IP 与 DNS 记录中的不同"
},
"not_ready_card": {
"in_menu": "服务器尚未设置。请使用设置向导完成设置以进行进一步的工作。"
},
"mail": {
"login_info": "使用用户选项卡中的用户名和密码。IMAP端口为143启用STARTTLSSMTP端口为587启用STARTTLS。"
},
"password_manager": {
"login_info": "您将需要在网站上创建一个账户。"
},
"users": {
"details_title": "用户详情",
"add_new_user": "添加第一个用户",
"new_user": "新用户",
"delete_user": "删除用户",
"nobody_here": "暂无用户",
"login": "登录",
"new_user_info_note": "新用户将自动获得对所有服务的访问权限",
"delete_confirm_question": "您确定吗?",
"reset_password": "重置密码",
"account": "账户",
"could_not_fetch_users": "无法获取用户列表",
"could_not_fetch_description": "请检查您的互联网连接并重试",
"refresh_users": "刷新用户列表",
"could_not_create_user": "无法创建用户",
"could_not_delete_user": "无法删除用户",
"could_not_add_ssh_key": "无法添加 SSH 密钥",
"username_rule": "用户名必须仅包含小写拉丁字母、数字和下划线,不能以数字开头",
"email_login": "电子邮件登录",
"no_ssh_notice": "仅为该用户创建电子邮件和 SSH 帐户。即将推出所有服务的单一登录。",
"user_already_exists": "已存在此用户名的用户"
},
"social_network": {
"login_info": "你需要在网站上创建一个账户。"
},
"recovery_key": {
"key_main_description": "当您的所有其他已授权设备不可用时SelfPrivacy 授权将需要此密钥。",
"key_receive_button": "接收密钥",
"key_receiving_description": "记下此密钥并放到安全的地方。用于恢复对服务器的完全访问:",
"key_connection_error": "无法连接到服务器。",
"key_synchronizing": "正在同步…",
"key_main_header": "恢复密钥",
"key_amount_field_title": "最大使用次数",
"key_amount_toggle": "通过使用次数来限制",
"key_duedate_toggle": "通过时间来限制",
"key_duedate_field_title": "到期日期",
"key_valid": "您的密钥有效",
"key_invalid": "您的密钥已失效",
"key_valid_until": "有效至 {}",
"key_valid_for": "还可以使用 {} 次",
"key_creation_date": "创建于 {}",
"key_replace_button": "生成新密钥",
"key_receiving_info": "密钥永远不会再次显示,但您可以将其替换为另一个密钥。",
"key_receiving_done": "完成!",
"generation_error": "无法生成恢复密钥。{}"
},
"modals": {
"volume_creation_error": "无法创建卷。",
"unexpected_error": "提供商端在安置过程中出现意外错误。",
"dns_removal_error": "无法移除 DNS 记录。",
"server_deletion_error": "无法删除活动服务器。",
"server_validators_error": "无法获取可用服务器。",
"already_exists": "已存在此服务器。",
"destroy_server": "销毁服务器并创建新服务器?",
"try_again": "重试?",
"are_you_sure": "您确定吗?",
"purge_all_keys": "清除所有身份验证密钥?",
"purge_all_keys_confirm": "是的,清除我的所有令牌",
"delete_server_volume": "删除服务器和卷?",
"reboot": "重启",
"yes": "是",
"no": "否"
},
"validations": {
"invalid_format_password": "密码不能包含空格",
"required": "必填",
"already_exist": "已存在",
"invalid_format": "格式无效",
"invalid_format_ssh": "必须遵循 SSH 密钥格式",
"root_name": "不能是 'root'",
"length_not_equal": "长度为 [],应为 {}",
"length_longer": "长度为 [],应小于或等于 {}"
},
"devices": {
"main_screen": {
"header": "设备",
"description": "这些设备通过 SelfPrivacy 应用程序完全访问服务器。",
"this_device": "此设备",
"other_devices": "其他设备",
"authorize_new_device": "授权新设备",
"access_granted_on": "已在 {} 上授权访问",
"tip": "点击设备以撤销访问权限。"
},
"add_new_device_screen": {
"tip": "该密钥有效期为 10 分钟。",
"header": "授权新设备",
"description": "在您想要授权的设备上输入密钥:",
"please_wait": "请稍候",
"expired": "密钥已过期。",
"get_new_key": "获取新密钥"
},
"revoke_device_alert": {
"header": "撤销访问权限?",
"description": "设备 {} 将不再访问服务器。",
"yes": "撤销",
"no": "取消"
}
},
"developer_settings": {
"allow_ssh_key_at_setup_description": "在确认屏幕上会出现一个添加密钥的按钮。",
"subtitle": "这些设置仅用于调试。除非您知道自己在做什么,否则不要更改。",
"title": "开发者设置",
"server_setup": "服务器设置",
"use_staging_acme": "使用暂存 ACME 服务器",
"use_staging_acme_description": "在设置新服务器时适用。",
"ignore_tls": "不验证 TLS 证书",
"ignore_tls_description": "连接到服务器时,应用程序不会验证 TLS 证书。",
"allow_ssh_key_at_setup": "允许在设置期间设置根 SSH 密钥",
"add_root_ssh_key": "添加根 SSH 密钥",
"root_ssh_key_added": "根 SSH 密钥已设置并将被应用",
"routing": "应用程序路由",
"reset_onboarding_description": "重置新手引导开关以再次显示新手引导界面",
"reset_onboarding": "重置新手引导开关",
"cubit_statuses": "Cubit 加载状态"
},
"test": "zh-test",
"basis": {
"users": "用户",
"settings": "设置",
"password": "密码",
"create": "创建",
"confirmation": "确认",
"cancel": "取消",
"delete": "删除",
"close": "关闭",
"connect": "连接",
"select": "选择",
"services": "服务",
"providers": "提供商",
"providers_title": "您的数据中心",
"more": "更多",
"next": "下一个",
"got_it": "知道了",
"saving": "正在保存…",
"username": "用户名",
"loading": "加载中…",
"connect_to_existing": "我已有SelfPrivacy服务器",
"domain": "域名",
"reset": "重置",
"no_data": "没有数据",
"details": "详细信息",
"wait": "稍等",
"remove": "移除",
"apply": "应用",
"done": "完成",
"alert": "提醒",
"copied_to_clipboard": "已复制到粘贴板!",
"network_error": "网络错误",
"app_name": "SelfPrivacy",
"please_connect": "请连接您的服务器、域名和 DNS 供应商,以深入了解!",
"later": "稍后进行设置",
"continue": "继续",
"services_title": "您的个人、私密和独立服务。"
},
"more_page": {
"configuration_wizard": "安装向导",
"onboarding": "新手引导",
"create_ssh_key": "超级用户 SSH 密钥"
},
"console_page": {
"title": "控制台",
"copy": "复制",
"waiting": "等待初始化…"
},
"about_application_page": {
"title": "关于与支持",
"versions": "版本",
"application_version_text": "应用版本",
"api_version_text": "服务器API版本",
"open_source_licenses": "开源协议",
"links": "链接",
"website": "关于我们",
"documentation": "文档",
"telegram_channel": "Telegram频道",
"get_support": "获取支持",
"email_support": "邮件支持",
"matrix_support_chat": "Matrix支持",
"contribute": "贡献",
"source_code": "源代码",
"help_translate": "帮助我们翻译",
"matrix_contributors_chat": "贡献者Matrix交流群",
"telegram_contributors_chat": "贡献者Telegram交流群",
"privacy_policy": "隐私政策",
"matrix_channel": "Matrix频道",
"telegram_support_chat": "Telegram支持",
"bug_report_subtitle": "由于垃圾邮件的原因,需要手动确认账户。请在支持聊天中联系我们以激活您的账户。",
"bug_report": "缺陷报告"
},
"application_settings": {
"title": "应用设置",
"system_dark_theme_title": "系统默认主题",
"dark_theme_title": "暗色主题",
"system_dark_theme_description": "根据系统设置自动使用明亮或暗色主题",
"dark_theme_description": "切换应用主题",
"dangerous_settings": "危险设置",
"reset_config_title": "重置应用配置",
"delete_server_title": "删除服务器",
"delete_server_description": "这将移除您的服务器。它将不再可以访问。",
"reset_config_description": "重置API密钥和root用户。"
},
"ssh": {
"title": "SSH密钥",
"delete": "删除SSH密钥",
"delete_confirm_question": "确定是否要删除SSH密钥",
"no_key_name": "未命名密钥",
"root_title": "这些是超级用户密钥",
"root_subtitle": "这些密钥的所有者拥有对服务器的完全访问权限,并可以在其上执行任何操作。请只添加您自己的密钥到服务器上。",
"input_label": "ED25519、ECDSA或者RSA公钥",
"create": "创建SSH密钥"
},
"onboarding": {
"page1_text": "邮件、VPN、即时通讯、社交网络等多项功能全部在您掌控的私有服务器上。",
"page2_title": "SelfPrivacy不是云而是你的私人数据中心",
"page2_server_provider_title": "服务提供商",
"page2_server_provider_text": "服务器提供商在其自己的数据中心维护您的服务器。SelfPrivacy 将自动连接到提供商并设置所有必要的内容。",
"page2_dns_provider_title": "DNS提供商",
"page2_backup_provider_title": "备份提供商",
"page2_dns_provider_text": "您需要一个域名才能在互联网上拥有位置。而且您还需要一个可靠的 DNS 提供商来将域名指向您的服务器。我们建议您选择一个支持的 DNS 提供商来自动设置网络。",
"page2_text": "SelfPrivacy 只与您选择的服务提供商配合使用。如果您在这些服务提供商中没有所需的账户,我们将帮助您创建。",
"page1_title": "我们每个人都应该享受数字自由",
"page2_backup_provider_text": "如果您的服务器出现了问题怎么办?想象一下黑客攻击、意外数据删除或服务拒绝等情况?您的数据将安全存储在备份提供商那里。它们将被安全加密,并随时可用于恢复您的服务器。"
},
"resource_chart": {
"month": "月",
"day": "日",
"hour": "时",
"cpu_title": "CPU使用率",
"in": "接收",
"out": "发送",
"network_title": "网络使用情况"
},
"server": {
"allow_autoupgrade_hint": "允许服务器自动升级软件包",
"card_title": "服务器",
"description": "你所有可用的服务都在这里",
"general_information": "通用信息",
"resource_usage": "资源使用情况",
"allow_autoupgrade": "允许自动升级",
"reboot_after_upgrade": "升级后重启",
"select_timezone": "选择时区",
"timezone_search_bar": "时区名称或时差值",
"server_id": "服务器ID",
"status": "状态",
"cpu": "CPU",
"ram": "内存",
"disk": "本地存储",
"monthly_cost": "每月费用",
"location": "位置",
"pricing_error": "无法获取服务提供商的价格",
"server_provider": "服务器提供商",
"dns_provider": "DNS提供商",
"core_count": {
"one": "{} 核心",
"two": "{} 核心",
"few": "{} 核心",
"many": "{} 核心",
"other": "{} 核心"
},
"reboot_after_upgrade_hint": "在服务器应用更改后无需提示重新启动",
"server_timezone": "服务器时区"
},
"domain": {
"card_title": "域名",
"ok": "DNS记录全部正常",
"error": "发现问题",
"refreshing": "刷新状态中…",
"uninitialized": "数据尚未检索到",
"services_title": "服务",
"services_subtitle": "每个服务都需要“A”记录。",
"email_title": "邮件",
"email_subtitle": "安全交换电子邮件所需的记录。",
"update_list": "升级列表",
"screen_title": "域名和DNS",
"error_subtitle": "点击此处以修复它们。这也将删除自定义记录。"
},
"video": {
"login_info": "无需账户。"
},
"git": {
"login_info": "你需要在网站上创建一个账户。第一个用户将成为管理员。"
},
"timer": {
"sec": "{} 秒"
},
"jobs": {
"title": "作业列表",
"start": "开始",
"empty": "空白",
"create_user": "创建用户",
"delete_user": "删除用户",
"service_turn_off": "关闭",
"service_turn_on": "开启",
"job_added": "已添加作业",
"job_postponed": "已添加作业,但您只能够在当前作业完成后启动它",
"job_removed": "已移除作业",
"run_jobs": "运行作业",
"reboot_success": "服务器正在重启",
"reboot_failed": "无法重启服务器。请检查应用程序日志。",
"config_pull_failed": "拉取升级配置失败。忽略此错误,继续启动软件升级。",
"upgrade_success": "服务器升级已启动",
"upgrade_failed": "服务器升级失败",
"upgrade_server": "升级服务器",
"reboot_server": "重启服务器",
"create_ssh_key": "为 {} 创建 SSH 密钥",
"delete_ssh_key": "删除 {} 的 SSH 密钥",
"server_jobs": "服务器上的作业",
"reset_user_password": "重置用户密码",
"generic_error": "无法连接到服务器!",
"rebuild_system": "重建系统",
"start_server_upgrade": "开始服务器升级",
"change_auto_upgrade_settings": "更改自动升级设置",
"change_server_timezone": "更改服务器时区"
},
"support": {
"title": "SelfPrivacy 支持"
},
"locale": "zh_CN"
}

View File

@ -0,0 +1 @@
{}

17
ci.py
View File

@ -155,6 +155,13 @@ def deploy_gitea_release():
gitea_upload_attachment(f"{HOST_MOUNTED_VOLUME}/{APP_NAME}-{APP_SEMVER}.flatpak")
gitea_upload_attachment(f"{HOST_MOUNTED_VOLUME}/{APP_NAME}-{APP_SEMVER}.tar.zstd")
def package_windows_archive():
import shutil
shutil.make_archive(f"selfprivacy-{APP_SEMVER}-win32", 'zip', "build/windows/runner/Release")
def deploy_windows_archive():
gitea_upload_attachment(f"selfprivacy-{APP_SEMVER}-win32.zip")
def deploy_fdroid_repo():
subprocess.run([f"""eval $(ssh-agent -s) &&
echo \"$SSH_PRIVATE_KEY\" | tr -d '\r' | ssh-add - &&
@ -172,7 +179,8 @@ def ci_build_apk():
"&& flutter build apk --flavor nightly")
def ci_run_tests():
podman_online(f"{CONTAINER_HOME}/src", "flutter test",
podman_online(f"{CONTAINER_HOME}/src", "chown -R $(id -u):$(id -g) /tmp/gradle /tmp/flutter_pub_cache",
"&& flutter test",
"&& flutter test --machine --coverage > tests.output")
# Arguments
@ -190,8 +198,10 @@ if __name__ == "__main__":
group.add_argument("--package-linux-appimage", action="store_true")
group.add_argument("--package-linux-flatpak", action="store_true")
group.add_argument("--package-linux-archive", action="store_true")
group.add_argument("--package-windows-archive", action="store_true")
group.add_argument("--deploy-gitea-release", action="store_true", help="depends on $GITEA_RELEASE_TOKEN")
group.add_argument("--deploy-fdroid-repo", action="store_true", help="depends on $SSH_PRIVATE_KEY")
group.add_argument("--deploy-windows-archive", action="store_true")
group.add_argument("--ci-build-linux", action="store_true")
group.add_argument("--ci-build-apk", action="store_true")
group.add_argument("--ci-run-tests", action="store_true")
@ -219,10 +229,14 @@ elif args.package_linux_flatpak:
package_linux_flatpak()
elif args.package_linux_archive:
package_linux_archive()
elif args.package_windows_archive:
package_windows_archive()
elif args.deploy_gitea_release:
deploy_gitea_release()
elif args.deploy_fdroid_repo:
deploy_fdroid_repo()
elif args.deploy_windows_archive:
deploy_windows_archive()
elif args.ci_build_linux:
ci_build_linux()
elif args.ci_build_apk:
@ -233,3 +247,4 @@ elif args.gitea_create_release:
gitea_create_release()
elif args.gitea_upload_attachment:
gitea_upload_attachment(args.gitea_upload_attachment)

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