Merge branch 'master' into add_copy_link_to_service_page
|
@ -10,7 +10,7 @@ AppDir:
|
|||
id: org.selfprivacy.app
|
||||
name: SelfPrivacy
|
||||
icon: org.selfprivacy.app
|
||||
version: 0.10.1
|
||||
version: 0.11.0
|
||||
exec: selfprivacy
|
||||
exec_args: $@
|
||||
apt:
|
||||
|
@ -51,3 +51,4 @@ AppDir:
|
|||
AppImage:
|
||||
arch: x86_64
|
||||
update-information: guess
|
||||
comp: xz
|
||||
|
|
|
@ -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. Після цього буде показано токен. Зберігайте його в будь-якому надійному місці, бажано в менеджері паролів.
|
606
assets/translations/ar.json
Normal 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"
|
||||
}
|
|
@ -39,11 +39,7 @@
|
|||
"more_page": {
|
||||
"configuration_wizard": "Quraşdırma Sihirbazı",
|
||||
"onboarding": "Salamlar",
|
||||
"create_ssh_key": "SSH admin açarları",
|
||||
"console": "Konsol",
|
||||
"application_settings": "Tətbiq parametrləri",
|
||||
"about_project": "SelfPrivacy haqqında",
|
||||
"about_application": "Proqram haqqında"
|
||||
"create_ssh_key": "SSH admin açarları"
|
||||
},
|
||||
"console_page": {
|
||||
"title": "Konsol",
|
||||
|
@ -51,8 +47,8 @@
|
|||
"copy": "Kopyalayın"
|
||||
},
|
||||
"about_application_page": {
|
||||
"application_version_text": "Tətbiq versiyası {}",
|
||||
"api_version_text": "Server API versiyası {}",
|
||||
"application_version_text": "Tətbiq versiyası",
|
||||
"api_version_text": "Server API versiyası",
|
||||
"privacy_policy": "Gizlilik Siyasəti",
|
||||
"title": "Tətbiq haqqında"
|
||||
},
|
||||
|
@ -73,8 +69,6 @@
|
|||
"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?",
|
||||
"subtitle_with_keys": "{} açarlar",
|
||||
"subtitle_without_keys": "Açar yoxdur",
|
||||
"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ı",
|
||||
|
@ -92,9 +86,6 @@
|
|||
"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."
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "SelfPrivacy haqqında"
|
||||
},
|
||||
"resource_chart": {
|
||||
"month": "Ay",
|
||||
"day": "Gün",
|
||||
|
@ -131,20 +122,6 @@
|
|||
"many": "{} nüvələr"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"root": "Kök domen",
|
||||
"api": "SelfPrivacy APİ",
|
||||
"cloud": "Fayl buludu",
|
||||
"git": "Git Server",
|
||||
"meet": "Video konfrans",
|
||||
"social": "Sosial Mediya",
|
||||
"password": "Parol meneceri",
|
||||
"vpn": "VPN",
|
||||
"mx": "MX rekordu",
|
||||
"spf": "SPF rekordu",
|
||||
"dkim": "DKIM açarı",
|
||||
"dmarc": "DMARC rekordu"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Domen",
|
||||
"screen_title": "Domain və DNS",
|
||||
|
@ -164,13 +141,9 @@
|
|||
"reupload_key": "Açar yeniləməsini məcbur edin",
|
||||
"reuploaded_key": "Server açarı yeniləndi",
|
||||
"initialize": "Qurunmaq",
|
||||
"waiting_for_rebuild": "Bir neçə dəqiqədən sonra ilk nüsxəni yarada biləcəksiniz.",
|
||||
"restore": "Kopyadan bərpa edin",
|
||||
"no_backups": "Yedəkləmə hələ yoxdur",
|
||||
"create_new": "Yeni nüsxə yaradın",
|
||||
"creating": "Surəti çıxarmaq: {}%",
|
||||
"restoring": "Kopyadan bərpa edilir",
|
||||
"error_pending": "Server xəta verdi: aşağıda yoxlayı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",
|
||||
|
@ -195,9 +168,7 @@
|
|||
"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",
|
||||
"migration_process": "Köçür…",
|
||||
"migration_done": "Tamamlayın"
|
||||
"start_migration_button": "Miqrasiyaya başlayın"
|
||||
},
|
||||
"service_page": {
|
||||
"move": "Başqa sürücüyə keçin",
|
||||
|
@ -217,24 +188,16 @@
|
|||
}
|
||||
},
|
||||
"mail": {
|
||||
"login_info": "İstifadəçilər sekmesinden istifadəçi adı və paroldan istifadə edin. IMAP portu: 143, STARTTLS. SMTP portu: 587, STARTTLS.",
|
||||
"title": "E-poçt",
|
||||
"subtitle": "Ailə və ya şirkət üçün e-poçt."
|
||||
"login_info": "İstifadəçilər sekmesinden istifadəçi adı və paroldan istifadə edin. IMAP portu: 143, STARTTLS. SMTP portu: 587, STARTTLS."
|
||||
},
|
||||
"video": {
|
||||
"subtitle": "Jitsi meet Zoom və Google meet-in əla analoqudur və bu, rahatlıqla yanaşı, yüksək keyfiyyətli video konfransların təhlükəsizliyini təmin edir.",
|
||||
"title": "video konfrans",
|
||||
"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.",
|
||||
"title": "Fayl bulud",
|
||||
"subtitle": "Bulud xidmətlərinin məlumatlarınıza baxmasının qarşısını alın. NextCloud istifadə edin - bütün məlumatlarınız üçün təhlükəsiz ev."
|
||||
"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.",
|
||||
"title": "Git Server",
|
||||
"subtitle": "Microsoft-a deyil, sizə məxsus şəxsi Github alternativi."
|
||||
"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",
|
||||
|
@ -248,7 +211,6 @@
|
|||
"delete_confirm_question": "Hesabınızı silmək istədiyinizə əminsiniz?",
|
||||
"reset_password": "Parolu sıfırlayın",
|
||||
"account": "Hesab",
|
||||
"send_registration_data": "Detalları paylaşın",
|
||||
"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ı",
|
||||
|
@ -264,7 +226,6 @@
|
|||
"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",
|
||||
"no_server_types_found": "Heç bir mövcud server növləri tapılmadı! Lütfən, server provayderinə girişinizin olduğundan əmin olun...",
|
||||
"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.",
|
||||
|
@ -295,13 +256,10 @@
|
|||
"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",
|
||||
"manage_domain_dns": "Domeninizin DNS-ni idarə etmək üçün",
|
||||
"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",
|
||||
"connect_backblaze_storage": "Backblaze bulud yaddaşınızı birləşdirin",
|
||||
"no_connected_domains": "Hazırda heç bir bağlı domen yoxdur",
|
||||
"loading_domain_list": "Domenlərin siyahısı yüklənir",
|
||||
"found_more_domains": "Birdən çox domen tapıldı, təhlükəsizliyiniz üçün lazımsız domenləri silin",
|
||||
"save_domain": "Domeni yadda saxla",
|
||||
"final": "Son addım",
|
||||
"create_server": "Server yaradın",
|
||||
|
@ -312,7 +270,6 @@
|
|||
"check": "Yoxlanış",
|
||||
"create_master_account": "Əsas hesab yaradın",
|
||||
"enter_username_and_password": "İstifadəçi adı və mürəkkəb parol daxil edin",
|
||||
"finish": "Hər şey işə salınıb",
|
||||
"checks": "Yoxlamalar aparıldı:. \n{} / {}",
|
||||
"steps": {
|
||||
"hosting": "Hostinq",
|
||||
|
@ -426,7 +383,6 @@
|
|||
"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",
|
||||
"you_cant_use_this_api": "Siz oxşar TLD ilə domen üçün bu API istifadə edə bilməzsiniz.",
|
||||
"yes": "Bəli",
|
||||
"no": "Yox"
|
||||
},
|
||||
|
@ -467,19 +423,11 @@
|
|||
"in_menu": "Server hələ konfiqurasiya edilməyib, əlaqə sihirbazından istifadə edin."
|
||||
},
|
||||
"password_manager": {
|
||||
"title": "Parol Meneceri",
|
||||
"subtitle": "Bu, təhlükəsizliyinizin əsasıdır. Bitwarden sizə cihazlar arasında parollar yaratmağa, saxlamağa, köçürməyə və onları formalara çevirməyə kömək edəcək.",
|
||||
"login_info": "Saytda hesab yaradılmalıdır."
|
||||
},
|
||||
"social_network": {
|
||||
"title": "sosial Mediya",
|
||||
"subtitle": "İnanmaq çətindir, lakin öz qaydaları və auditoriyası olan öz sosial şəbəkənizi yaratmaq mümkün oldu.",
|
||||
"login_info": "Аккаунт нужно создать на сайте."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "VPN server",
|
||||
"subtitle": "Bağlı VPN serveri"
|
||||
},
|
||||
"timer": {
|
||||
"sec": "{} san"
|
||||
},
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
"choose_server_type": "Які тып сервера выбраць?",
|
||||
"choose_server_type_ram": "{} GB RAM",
|
||||
"choose_server_type_payment_per_month": "{} у месяц",
|
||||
"no_server_types_found": "Не знойдзена даступных тыпаў сервера! Калі ласка, пераканайцеся, што ў вас ёсць доступ да правайдэра сервера...",
|
||||
"backblaze_bad_key_error": "Інфармацыя аб Backblaze сховішча няслушная",
|
||||
"select_dns": "Цяпер давайце выберам DNS-правайдэра",
|
||||
"what": "Што гэта значыць?",
|
||||
|
@ -21,7 +20,6 @@
|
|||
"check": "Праверка",
|
||||
"create_master_account": "Стварыце галоўны ўліковы запіс",
|
||||
"enter_username_and_password": "Увядзіце імя карыстальніка і складаны пароль",
|
||||
"finish": "Усё ініцыялізавана",
|
||||
"checks": "Праверак выканана: \n{} / {}",
|
||||
"choose_server_type_storage": "{} GB сістэмнага сховішча",
|
||||
"locations_not_found_text": "У гэтым месцы не аказалася даступных сервераў для арэнды",
|
||||
|
@ -29,13 +27,10 @@
|
|||
"choose_server_type_notice": "Галоўнае, на што варта звярнуць увагу - колькасць патокаў працэсара і аб'ём аператыўнай памяці. Дадзеныя сэрвісаў будуць размешчаны на асобным дыску, які аплачваецца асобна і лёгка пашыраем.",
|
||||
"server_started": "Сервер запушчаны. Цяпер ён будзе правераны і перагружаны…",
|
||||
"one_more_restart": "Цяпер будзе дадатковая перазагрузка для актывацыі сертыфікатаў бяспекі.",
|
||||
"manage_domain_dns": "Для кіравання DNS вашага дамена",
|
||||
"use_this_domain": "Ужываем гэты дамен?",
|
||||
"use_this_domain_text": "Указаны вамі токен дае кантроль над гэтым даменам",
|
||||
"connect_backblaze_storage": "Падлучыце хмарнае сховішча Backblaze",
|
||||
"no_connected_domains": "У дадзены момант падлучаных даменаў няма",
|
||||
"loading_domain_list": "Загружаем спіс даменаў",
|
||||
"found_more_domains": "Знойдзена больш аднаго дамена, для вашай бяспекі, просім Вам выдаліць не патрэбныя дамены",
|
||||
"save_domain": "Захаваць дамен",
|
||||
"final": "Апошні крок",
|
||||
"create_server": "Стварыць сервер",
|
||||
|
@ -68,13 +63,9 @@
|
|||
"server_reboot": "Перазагрузка сервера",
|
||||
"final_checks": "Фінальныя праверкі"
|
||||
},
|
||||
"server_provider_description": "Месца, дзе будуць знаходзіцца вашыя дадзеныя і службы SelfPrivacy:",
|
||||
"dns_provider_description": "Гэта дазволіць звязаць ваш дамен з IP адрасам:",
|
||||
"connect_to_dns": "Падлучыце DNS правайдэра",
|
||||
"select_provider_payment_text_cloudflare": "Банкаўскія карты",
|
||||
"dns_provider_bad_key_error": "API ключ няслушны",
|
||||
"select_provider_price_free": "Бясплатна",
|
||||
"connect_to_dns_provider_text": "З дапамогай API токена прыкладанне SelfPrivacy наладзіць DNS запісы"
|
||||
"select_provider_price_free": "Бясплатна"
|
||||
},
|
||||
"recovering": {
|
||||
"generic_error": "Памылка правядзення аперацыі, паспрабуйце яшчэ раз.",
|
||||
|
@ -207,7 +198,6 @@
|
|||
"purge_all_keys": "Сцерці ўсе ключы аўтарызацыі?",
|
||||
"purge_all_keys_confirm": "Так, сцерці ўсе ключы",
|
||||
"reboot": "Перазагрузіць",
|
||||
"you_cant_use_this_api": "Нельга выкарыстоўваць гэты API для дамен з падобным TLD.",
|
||||
"yes": "Да",
|
||||
"no": "Не",
|
||||
"dns_removal_error": "Немагчыма выдаліць запісы DNS.",
|
||||
|
@ -244,17 +234,13 @@
|
|||
},
|
||||
"more_page": {
|
||||
"configuration_wizard": "Майстар наладкі",
|
||||
"application_settings": "Налады праграмы",
|
||||
"about_project": "Аб праекце SelfPrivacy",
|
||||
"about_application": "Аб праграме",
|
||||
"onboarding": "Прівітанне",
|
||||
"create_ssh_key": "SSH ключы адміністратара",
|
||||
"console": "Кансоль"
|
||||
"create_ssh_key": "SSH ключы адміністратара"
|
||||
},
|
||||
"about_application_page": {
|
||||
"application_version_text": "Версія праграмы {}",
|
||||
"application_version_text": "Версія праграмы",
|
||||
"title": "Аб праграме",
|
||||
"api_version_text": "Версія API сервера {}",
|
||||
"api_version_text": "Версія API сервера",
|
||||
"privacy_policy": "Палітыка прыватнасці"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -275,8 +261,6 @@
|
|||
"create": "Дадаць SSH ключ",
|
||||
"delete": "Выдаліць SSH ключ",
|
||||
"delete_confirm_question": "Вы ўпэўненыя, што хочаце выдаліць наступны ключ?",
|
||||
"subtitle_with_keys": "Ключэй: {}",
|
||||
"subtitle_without_keys": "Ключэй няма",
|
||||
"no_key_name": "Безназоўны ключ",
|
||||
"root_title": "Гэта ключы суперкарыстальніка",
|
||||
"input_label": "Публічны ED25519 або RSA ключ"
|
||||
|
@ -293,20 +277,6 @@
|
|||
"page2_dns_provider_title": "DNS-правайдэр",
|
||||
"page2_backup_provider_title": "Бэкап-правайдэр"
|
||||
},
|
||||
"record": {
|
||||
"api": "SelfPrivacy API",
|
||||
"social": "Сацыяльная сетка",
|
||||
"password": "Менеджэр пароляў",
|
||||
"root": "Каранёвы дамен",
|
||||
"cloud": "Файлавае воблака",
|
||||
"git": "Git сервер",
|
||||
"meet": "Відэаканферэнцыі",
|
||||
"vpn": "VPN",
|
||||
"mx": "Запіс MX",
|
||||
"dmarc": "Запіс DMARC",
|
||||
"spf": "Запіс SPF",
|
||||
"dkim": "DKIM ключ"
|
||||
},
|
||||
"domain": {
|
||||
"error": "Праблемы знойдзены",
|
||||
"uninitialized": "Дадзеныя яшчэ не атрыманы",
|
||||
|
@ -324,17 +294,13 @@
|
|||
"backup": {
|
||||
"description": "Выручыць Вас у любой сітуацыі: хакерская атака, выдаленне сервера і г.д.",
|
||||
"no_backups": "Рэзервовых копій пакуль няма",
|
||||
"error_pending": "Сервер вярнуў памылку, праверце яе ніжэй",
|
||||
"restore_alert": "Вы збіраецеся аднавіць з рэзервовай копіі, створанай {}. Усе бягучыя даныя будуць страчаны. Вы ўпэўнены?",
|
||||
"card_title": "Рэзервовае капіраванне",
|
||||
"reupload_key": "Прымусова абнавіць ключ",
|
||||
"reuploaded_key": "Ключ на серверы абноўлены",
|
||||
"initialize": "Ініцыялізаваць",
|
||||
"waiting_for_rebuild": "Вы зможаце стварыць першую рэзервовую копію праз некалькі хвілін.",
|
||||
"restore": "Аднавіць з рэзервовай копіі",
|
||||
"create_new": "Стварыць новую рэзервовую копію",
|
||||
"creating": "Стварэнне новай рэзервовай копіі: {}%",
|
||||
"restoring": "Аднаўленне з рэзервовай копіі",
|
||||
"refresh": "Абнавіць статус",
|
||||
"refetch_backups": "Абнавіць спіс копій",
|
||||
"refetching_list": "Праз некалькі хвілін спіс будзе абноўлены"
|
||||
|
@ -367,9 +333,7 @@
|
|||
"data_migration_title": "Міграцыя дадзеных",
|
||||
"card_title": "Сховішча",
|
||||
"data_migration_notice": "Падчас міграцыі ўсе службы будуць адключаны.",
|
||||
"start_migration_button": "Пачаць міграцыю",
|
||||
"migration_process": "Мігруем…",
|
||||
"migration_done": "Скончыць"
|
||||
"start_migration_button": "Пачаць міграцыю"
|
||||
},
|
||||
"service_page": {
|
||||
"status": {
|
||||
|
@ -393,9 +357,6 @@
|
|||
"waiting": "Чакаем ініцыялізацыі…",
|
||||
"copy": "Капіяваць"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "Аб праекце SelfPrivacy"
|
||||
},
|
||||
"resource_chart": {
|
||||
"month": "Месяц",
|
||||
"day": "Дзень",
|
||||
|
@ -436,39 +397,23 @@
|
|||
"in_menu": "Сервер яшчэ не наладжаны. Калі ласка, завяршыце наладку з дапамогай майстра наладкі для далейшай працы."
|
||||
},
|
||||
"mail": {
|
||||
"login_info": "Выкарыстоўвайце лагін і пароль з укладкі ўжытоўнікаў. IMAP порт: 143, STARTTLS. SMTP порт: 587, STARTTLS.",
|
||||
"title": "Пошта",
|
||||
"subtitle": "Электронная пошта для сям'і або кампаніі."
|
||||
"login_info": "Выкарыстоўвайце лагін і пароль з укладкі ўжытоўнікаў. IMAP порт: 143, STARTTLS. SMTP порт: 587, STARTTLS."
|
||||
},
|
||||
"password_manager": {
|
||||
"subtitle": "Гэта база вашай бяспекі. Bitwarden дапаможа вам ствараць, захоўваць і перамяшчаць паролі паміж прыладамі, а таксама ўводзіць іх па запыце з дапамогай аўтазапаўнення.",
|
||||
"title": "Менеджэр пароляў",
|
||||
"login_info": "Акаўнт трэба стварыць на сайце."
|
||||
},
|
||||
"cloud": {
|
||||
"subtitle": "Не дазваляйце хмарным сэрвісам праглядаць вашыя дадзеныя. Выкарыстоўвайце NextCloud - надзейны дом для ўсіх Вашых дадзеных.",
|
||||
"title": "Файлавае воблака",
|
||||
"login_info": "Лагін адміністратара: admin, пароль такі ж як у асноўнага карыстальніка. Стварайце новых карыстальнікаў у інтэрфейсе адміністратара NextCloud."
|
||||
},
|
||||
"social_network": {
|
||||
"subtitle": "Складана паверыць, але стала магчымым стварыць сваю ўласную сацыяльную сетку, са сваімі правіламі і аўдыторыяй.",
|
||||
"title": "Сацыяльная сетка",
|
||||
"login_info": "Акаўнт трэба стварыць на сайце."
|
||||
},
|
||||
"video": {
|
||||
"title": "Відэаканферэнцыя",
|
||||
"subtitle": "Zoom і Google Meet - гэта добра, але Jitsi Meet - вартая альтэрнатыва, якая таксама дае вам упэўненасць, што вас не слухаюць.",
|
||||
"login_info": "Акаўнт не патрабуецца."
|
||||
},
|
||||
"git": {
|
||||
"title": "Git-сервер",
|
||||
"subtitle": "Прыватная альтэрнатыва Github, якая належыць вам, а не Microsoft.",
|
||||
"login_info": "Акаўнт трэба стварыць на сайце. Першы зарэгістраваны карыстач становіцца адміністратарам."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "VPN сервер",
|
||||
"subtitle": "Закрыты VPN сервер"
|
||||
},
|
||||
"users": {
|
||||
"add_new_user": "Дадайце першага карыстальніка",
|
||||
"new_user": "Новы карыстальнік",
|
||||
|
@ -479,7 +424,6 @@
|
|||
"delete_confirm_question": "Вы напраўда хочаце выдаліць уліковы запіс?",
|
||||
"reset_password": "Скінуць пароль",
|
||||
"account": "Уліковы запіс",
|
||||
"send_registration_data": "Падзяліцца рэквізітамі",
|
||||
"could_not_fetch_users": "Не ўдалося атрымаць карыстальнікаў",
|
||||
"could_not_fetch_description": "Праверце інтэрнэт злучэнне і паспрабуйце зноў",
|
||||
"refresh_users": "Абнавіць спіс карыстальнікаў",
|
||||
|
|
|
@ -39,15 +39,11 @@
|
|||
"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 {}"
|
||||
"api_version_text": "Verze API serveru",
|
||||
"application_version_text": "Verze aplikace"
|
||||
},
|
||||
"more_page": {
|
||||
"about_project": "O nás",
|
||||
"about_application": "O příloze",
|
||||
"onboarding": "Pozdravy",
|
||||
"console": "Konzole",
|
||||
"application_settings": "Nastavení aplikace",
|
||||
"configuration_wizard": "Průvodce nastavením",
|
||||
"create_ssh_key": "Superuživatelské klíče SSH"
|
||||
},
|
||||
|
@ -73,8 +69,6 @@
|
|||
"create": "Vytvoření klíče SSH",
|
||||
"delete": "Odstranění klíče SSH",
|
||||
"delete_confirm_question": "Jste si jisti, že chcete odstranit klíč SSH?",
|
||||
"subtitle_with_keys": "{} klíče",
|
||||
"subtitle_without_keys": "Žádné klíče",
|
||||
"no_key_name": "Nejmenovaný klíč",
|
||||
"root_title": "Jedná se o klíče superuživatele",
|
||||
"input_label": "Veřejný klíč ED25519 nebo RSA",
|
||||
|
@ -137,13 +131,10 @@
|
|||
"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",
|
||||
"manage_domain_dns": "Správa domény DNS",
|
||||
"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",
|
||||
"found_more_domains": "Nalezeno více než jedna doména. V zájmu vlastní bezpečnosti vás prosíme o odstranění nepotřebných domén",
|
||||
"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ášť.",
|
||||
"connect_backblaze_storage": "Připojení úložiště Backblaze",
|
||||
"save_domain": "Uložit doménu",
|
||||
"final": "Závěrečný krok",
|
||||
"create_server": "Vytvořit server",
|
||||
|
@ -171,7 +162,6 @@
|
|||
"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ě",
|
||||
"no_server_types_found": "Nebyly nalezeny žádné dostupné typy serverů. Ujistěte se, že je váš účet přístupný, a zkuste změnit umístění serveru.",
|
||||
"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?",
|
||||
|
@ -182,7 +172,6 @@
|
|||
"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",
|
||||
"finish": "Vše je inicializováno",
|
||||
"checks": "Kontroly byly dokončeny\n{} z {}",
|
||||
"steps": {
|
||||
"server": "Server",
|
||||
|
@ -197,16 +186,9 @@
|
|||
"server_reboot": "Restartování serveru",
|
||||
"final_checks": "Závěrečné kontroly"
|
||||
},
|
||||
"server_provider_description": "Místo, kde budou umístěna vaše data a služby SelfPrivacy:",
|
||||
"dns_provider_description": "Toto propojí vaši doménu s IP adresou:",
|
||||
"dns_provider_bad_key_error": "Klíč API je neplatný",
|
||||
"connect_to_dns": "Připojte poskytovatele DNS",
|
||||
"select_provider_price_free": "Zdarma",
|
||||
"select_provider_payment_text_cloudflare": "Bankovní karty",
|
||||
"connect_to_dns_provider_text": "Pomocí rozhraní token API nakonfiguruje aplikace SelfPrivacy záznamy DNS"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "O nás"
|
||||
"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.",
|
||||
|
@ -218,7 +200,6 @@
|
|||
"delete_confirm_question": "Jste si jistý?",
|
||||
"reset_password": "Obnovení hesla",
|
||||
"account": "Účet",
|
||||
"send_registration_data": "Sdílení přihlašovacích údajů",
|
||||
"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ů",
|
||||
|
@ -230,20 +211,6 @@
|
|||
"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"
|
||||
},
|
||||
"record": {
|
||||
"root": "Kořenová doména",
|
||||
"api": "API SelfPrivacy",
|
||||
"cloud": "Oblak souborů",
|
||||
"git": "Server Git",
|
||||
"social": "Sociální síť",
|
||||
"password": "Správce hesel",
|
||||
"vpn": "VPN",
|
||||
"mx": "Záznam MX",
|
||||
"dmarc": "Záznam DMARC",
|
||||
"spf": "Záznam SPF",
|
||||
"dkim": "Klíč DKIM",
|
||||
"meet": "Videokonference"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Doména",
|
||||
"ok": "Záznamy jsou v pořádku",
|
||||
|
@ -263,12 +230,8 @@
|
|||
"reupload_key": "Vynutit klíč k opětovnému nahrání",
|
||||
"reuploaded_key": "Znovu nahraný klíč",
|
||||
"initialize": "Inicializace",
|
||||
"waiting_for_rebuild": "První zálohu budete moci vytvořit během několika minut.",
|
||||
"restore": "Obnovení ze zálohy",
|
||||
"no_backups": "Zatím nejsou k dispozici žádné zálohy",
|
||||
"creating": "Vytvoření nové zálohy: {}%",
|
||||
"restoring": "Obnovení ze zálohy",
|
||||
"error_pending": "Server vrátil chybu, zkontrolujte ji níže",
|
||||
"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.",
|
||||
|
@ -294,8 +257,6 @@
|
|||
"data_migration_title": "Migrace dat",
|
||||
"data_migration_notice": "Během migrace budou všechny služby vypnuty.",
|
||||
"start_migration_button": "Zahájení migrace",
|
||||
"migration_process": "Migrace…",
|
||||
"migration_done": "Dokončení",
|
||||
"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": {
|
||||
|
@ -316,39 +277,23 @@
|
|||
"uses": "Používá {usage} na {volume}"
|
||||
},
|
||||
"mail": {
|
||||
"title": "E-mail",
|
||||
"subtitle": "E-mail pro společnost a rodinu.",
|
||||
"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": {
|
||||
"title": "Cloudové úložiště",
|
||||
"subtitle": "Nedovolte cloudovým službám číst vaše data pomocí služby NextCloud.",
|
||||
"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": {
|
||||
"title": "Správce hesel",
|
||||
"login_info": "Na webových stránkách si musíte vytvořit účet.",
|
||||
"subtitle": "Základna vašeho zabezpečení. Bitwarden vám pomůže vytvářet, ukládat a přesouvat hesla mezi zařízeními a také je zadávat na vyžádání pomocí automatického doplňování."
|
||||
"login_info": "Na webových stránkách si musíte vytvořit účet."
|
||||
},
|
||||
"video": {
|
||||
"title": "Video konference",
|
||||
"subtitle": "Zoom a Google Meet jsou dobré, ale Jitsi Meet je hodnotná alternativa, která vám navíc dává jistotu, že vás nikdo neposlouchá.",
|
||||
"login_info": "Není potřeba žádný účet."
|
||||
},
|
||||
"social_network": {
|
||||
"title": "Sociální síť",
|
||||
"login_info": "Na webových stránkách si musíte vytvořit účet.",
|
||||
"subtitle": "Je těžké tomu uvěřit, ale je možné vytvořit si vlastní sociální síť s vlastními pravidly a cílovou skupinou."
|
||||
"login_info": "Na webových stránkách si musíte vytvořit účet."
|
||||
},
|
||||
"git": {
|
||||
"title": "Server Git",
|
||||
"subtitle": "Soukromá alternativa ke Githubu, která patří vám, ale ne Microsoftu.",
|
||||
"login_info": "Na webových stránkách si musíte vytvořit účet. První uživatel se stane administrátorem."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "Server VPN",
|
||||
"subtitle": "Soukromý server VPN"
|
||||
},
|
||||
"recovering": {
|
||||
"recovery_main_header": "Připojení k existujícímu serveru",
|
||||
"domain_recover_placeholder": "Vaše doména",
|
||||
|
@ -486,7 +431,6 @@
|
|||
"purge_all_keys_confirm": "Ano, vyčistěte všechny mé žetony",
|
||||
"delete_server_volume": "Smazat server a svazek?",
|
||||
"reboot": "Restartovat",
|
||||
"you_cant_use_this_api": "Toto rozhraní API nelze použít pro doménu s podobnou TLD.",
|
||||
"yes": "Ano",
|
||||
"no": "Ne",
|
||||
"volume_creation_error": "Svazek se nepodařilo vytvořit."
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
"username": "Benutzername",
|
||||
"loading": "Laden…",
|
||||
"later": "Überspringen und später einstellen",
|
||||
"connect_to_existing": "Verbinde mit einem existierenden SelfPrivacy Server",
|
||||
"connect_to_existing": "Verbinde mit einem existierenden SelfPrivacy Server!",
|
||||
"reset": "Zurücksetzen",
|
||||
"details": "Einzelheiten",
|
||||
"no_data": "Keine Daten",
|
||||
|
@ -36,29 +36,23 @@
|
|||
"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!"
|
||||
"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…",
|
||||
"copy": "Kopieren"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "Über uns"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "Über",
|
||||
"application_version_text": "Anwendungsversion {}",
|
||||
"api_version_text": "Server API Version {}",
|
||||
"application_version_text": "Anwendungsversion",
|
||||
"api_version_text": "Server API Version",
|
||||
"privacy_policy": "Datenschutzerklärung"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -78,8 +72,6 @@
|
|||
"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_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.",
|
||||
|
@ -136,23 +128,9 @@
|
|||
"dns_provider": "DNS-Provider",
|
||||
"pricing_error": "Konnte Providerpreise nicht abrufen"
|
||||
},
|
||||
"record": {
|
||||
"root": "Root Domain",
|
||||
"api": "SelfPrivacy API",
|
||||
"git": "Git Server",
|
||||
"meet": "Videokonferenz",
|
||||
"social": "Soziales Netzwerk",
|
||||
"password": "Passwortmanager",
|
||||
"vpn": "VPN",
|
||||
"dkim": "DKIM Shlüssel",
|
||||
"mx": "MX Eintrag",
|
||||
"dmarc": "DMARC Eintrag",
|
||||
"spf": "SPF Eintrag",
|
||||
"cloud": "Datencloud"
|
||||
},
|
||||
"domain": {
|
||||
"screen_title": "Domäne und DNS",
|
||||
"ok": "Aufnahmen sind in Ordnung",
|
||||
"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",
|
||||
|
@ -161,29 +139,25 @@
|
|||
"email_subtitle": "Für sicheren E-Mail-Austauch benötigte Einträge.",
|
||||
"update_list": "Liste aktualisieren",
|
||||
"card_title": "Domäne",
|
||||
"refreshing": "Statusaktualisierung…",
|
||||
"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": "Erneute Hochladung des Schlüssels erzwingen",
|
||||
"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",
|
||||
"creating": "Erstellung eines neuen Backups: {}%",
|
||||
"restoring": "Wiederherstellung aus Backups",
|
||||
"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",
|
||||
"waiting_for_rebuild": "In wenigen Minuten können Sie Ihren ersten Backup erstellen.",
|
||||
"error_pending": "Server hat einen Fehler zurückgegeben, überprüfen Sie es unten",
|
||||
"refetching_list": "In wenigen Minuten wird die Liste neugeladen",
|
||||
"card_subtitle": "Verwalte deine Backups",
|
||||
"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, Backupseicher zu initialisieren. Benutze diese Option, wenn etwas kaputt ist.",
|
||||
"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",
|
||||
|
@ -192,14 +166,11 @@
|
|||
"latest_snapshots": "Neuster Snapshot",
|
||||
"latest_snapshots_subtitle": "Zeige die letzten 15 Snapshots",
|
||||
"autobackup_period_title": "Automatische Backup-Zeitspanne",
|
||||
"autobackup_period_subtitle": "Backups werden erstellt, jede {period}",
|
||||
"autobackup_period_subtitle": "Backups werden jede {period} angelegt",
|
||||
"autobackup_period_never": "Automatische Backups sind deaktiviert",
|
||||
"autobackup_period_every": "Jede {period}",
|
||||
"autobackup_period_disable": "Deaktiviere automatische Backups",
|
||||
"autobackup_custom": "Eigene",
|
||||
"autobackup_custom_hint": "Eigenen Zeitraum in Minuten eingeben",
|
||||
"autobackup_period_disable": "Automatische Backups deaktivieren",
|
||||
"autobackup_set_period": "Setze Zeitraum",
|
||||
"autobackup_period_set": "Zeitraum setzen",
|
||||
"backups_encryption_key": "Verschlüsselungsschlüssel",
|
||||
"backups_encryption_key_subtitle": "Bewahre es gut auf.",
|
||||
"backups_encryption_key_copy": "Kopiere den Verschlüselungsschlüssel",
|
||||
|
@ -212,7 +183,7 @@
|
|||
"snapshot_service_title": "Service",
|
||||
"snapshot_creation_time_title": "Zeit der Erstellung",
|
||||
"snapshot_id_title": "Snapshot ID",
|
||||
"snapshot_modal_select_strategy": "Wählen sie die Art der Wiederherstellung",
|
||||
"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",
|
||||
|
@ -220,7 +191,13 @@
|
|||
"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_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",
|
||||
|
@ -240,8 +217,6 @@
|
|||
"data_migration_title": "Datenmigration",
|
||||
"data_migration_notice": "Während der Migration werden alle Dienste ausgeschaltet.",
|
||||
"start_migration_button": "Migration starten",
|
||||
"migration_process": "Migrieren…",
|
||||
"migration_done": "Beenden",
|
||||
"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": {
|
||||
|
@ -265,13 +240,9 @@
|
|||
"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.",
|
||||
"title": "E-Mail",
|
||||
"subtitle": "E-Mail für Familie und Unternehmen."
|
||||
"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": {
|
||||
"title": "Passwortmanager",
|
||||
"subtitle": "Basis Ihrer Sicherheit. Bitwarden hilft Ihnen beim Erstellen, Speichern und Übertragung von Passwörtern zwischen Geräten sowie bei der Eingabe mithilfe der automatischen Vervollständigung.",
|
||||
"login_info": "Ihr Konto müssen Sie auf der Webseite erstellen."
|
||||
},
|
||||
"modals": {
|
||||
|
@ -287,7 +258,6 @@
|
|||
"purge_all_keys": "Alle Authentifizierungsschlüssel löschen?",
|
||||
"purge_all_keys_confirm": "Ja, alle meine Token löschen",
|
||||
"reboot": "Neustarten",
|
||||
"you_cant_use_this_api": "Sie können diese API nicht für Domains mit einer solchen TLD verwenden.",
|
||||
"yes": "Ja",
|
||||
"no": "Nein",
|
||||
"volume_creation_error": "Volume konnte nicht erstellt werden."
|
||||
|
@ -319,13 +289,10 @@
|
|||
"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",
|
||||
"manage_domain_dns": "Zum Verwalten des DNS Ihrer Domain",
|
||||
"use_this_domain": "Diese Domäne verwenden?",
|
||||
"use_this_domain_text": "Das von Ihnen bereitgestellte Token gewährt Zugriff auf die folgende Domäne",
|
||||
"connect_backblaze_storage": "Backblaze-Speicher verbinden",
|
||||
"no_connected_domains": "Derzeit keine verbundenen Domains",
|
||||
"loading_domain_list": "Domänenliste wird geladen",
|
||||
"found_more_domains": "Mehr als eine Domain gefunden. Zu Ihrer eigenen Sicherheit bitten wir Sie, nicht benötigte Domains zu löschen",
|
||||
"save_domain": "Domäne speichern",
|
||||
"final": "Letzter Schritt",
|
||||
"create_server": "Server erstellen",
|
||||
|
@ -334,7 +301,6 @@
|
|||
"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",
|
||||
"no_server_types_found": "Keine verfügbaren Servertypen gefunden. Stellen Sie sicher, dass auf Ihr Konto zugegriffen werden kann und versuchen Sie Ihren Serverstandort zu ändern.",
|
||||
"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.",
|
||||
|
@ -370,7 +336,6 @@
|
|||
"check": "Überprüfung",
|
||||
"create_master_account": "Hauptkonto erstellen",
|
||||
"enter_username_and_password": "Geben Sie den Benutzernamen und ein gutes Passwort ein",
|
||||
"finish": "Alles initialisiert",
|
||||
"steps": {
|
||||
"hosting": "Hosting",
|
||||
"server_type": "Server-Typ",
|
||||
|
@ -386,11 +351,7 @@
|
|||
},
|
||||
"dns_provider_bad_key_error": "Der API-Schlüssel ist ungültig",
|
||||
"connect_to_dns": "Verbinden Sie den DNS-Anbieter",
|
||||
"connect_to_dns_provider_text": "Mithilfe der Token-API konfiguriert die SelfPrivacy-Anwendung DNS-Einträge",
|
||||
"server_provider_description": "Der Ort, an dem sich Ihre Daten und SelfPrivacy-Dienste befinden:",
|
||||
"dns_provider_description": "Dadurch wird Ihre Domain mit einer IP-Adresse verknüpft:",
|
||||
"select_provider_price_free": "Kostenlos",
|
||||
"select_provider_payment_text_cloudflare": "Bankkarten"
|
||||
"select_provider_price_free": "Kostenlos"
|
||||
},
|
||||
"validations": {
|
||||
"length_not_equal": "Länge ist [], sollte {} sein",
|
||||
|
@ -417,7 +378,6 @@
|
|||
"delete_confirm_question": "Sind Sie sicher?",
|
||||
"reset_password": "Passwort zurücksetzen",
|
||||
"account": "Konto",
|
||||
"send_registration_data": "Anmeldedaten teilen",
|
||||
"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",
|
||||
|
@ -510,29 +470,17 @@
|
|||
"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": {
|
||||
"title": "Videokonferenz",
|
||||
"subtitle": "Zoom und Google Meet sind gut, aber Jitsi Meet ist eine wertvolle Alternative, ber der Sie sicher sein können, das Ihre Gespräche nicht abgehört werden.",
|
||||
"login_info": "Kein Konto erforderlich."
|
||||
},
|
||||
"cloud": {
|
||||
"title": "Cloud-Speicher",
|
||||
"subtitle": "Erlauben Sie Cloud-Diensten nicht, Ihre Daten zu lesen, indem Sie NextCloud verwenden.",
|
||||
"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": {
|
||||
"title": "Soziales Netzwerk",
|
||||
"subtitle": "Es ist schwer zu glauben, aber jetzt ist es möglich ein eigenes soziales Netzwerk mit Ihren eigenen Regeln und einer eigenen Zielgruppe zu erstellen.",
|
||||
"login_info": "Sie müssen ein Konto auf der Website erstellen."
|
||||
},
|
||||
"git": {
|
||||
"title": "Git-Server",
|
||||
"subtitle": "Private Alternative zum Github, die Ihnen und nicht Microsoft gehört.",
|
||||
"login_info": "Sie müssen ein Konto auf der Website erstellen. Der erste Benutzer wird zum Administrator."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "VPN-Server",
|
||||
"subtitle": "Privater VPN-Server"
|
||||
},
|
||||
"timer": {
|
||||
"sec": "{} Sek"
|
||||
},
|
||||
|
|
|
@ -81,21 +81,18 @@
|
|||
"dark_theme_description": "Switch your application theme",
|
||||
"dangerous_settings": "Dangerous settings",
|
||||
"reset_config_title": "Reset application config",
|
||||
"reset_config_description": "Resets 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, ECDSA 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",
|
||||
|
@ -123,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",
|
||||
|
@ -148,20 +150,6 @@
|
|||
"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",
|
||||
|
@ -174,8 +162,7 @@
|
|||
"services_subtitle": "Type “A” records required for each service.",
|
||||
"email_title": "Email",
|
||||
"email_subtitle": "Records necessary for secure email exchange.",
|
||||
"update_list": "Update list",
|
||||
"domain_validation_failure": "We can't reach your domain!"
|
||||
"update_list": "Update list"
|
||||
},
|
||||
"backup": {
|
||||
"card_title": "Backup",
|
||||
|
@ -183,19 +170,15 @@
|
|||
"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",
|
||||
"refetch_backups_subtitle": "Invalidate cache and refetch data from your storage provider. May cause additional charges.",
|
||||
"reupload_key_subtitle": "Will instruct the server to initialize backup storage again. Use if something is broken.",
|
||||
"refetching_list": "In a few minutes list will be updated",
|
||||
"select_all": "Backup everything",
|
||||
"create_new_select_heading": "Select what to backup",
|
||||
|
@ -209,10 +192,7 @@
|
|||
"autobackup_period_never": "Automatic backups are disabled",
|
||||
"autobackup_period_every": "Every {period}",
|
||||
"autobackup_period_disable": "Disable automatic backups",
|
||||
"autobackup_custom": "Custom",
|
||||
"autobackup_custom_hint": "Enter custom period in minutes",
|
||||
"autobackup_set_period": "Set period",
|
||||
"autobackup_period_set": "Period set",
|
||||
"backups_encryption_key": "Encryption key",
|
||||
"backups_encryption_key_subtitle": "Keep it in a safe place.",
|
||||
"backups_encryption_key_copy": "Copy the encryption key",
|
||||
|
@ -244,7 +224,6 @@
|
|||
},
|
||||
"rotation_quotas_title": "Snapshot rotation settings",
|
||||
"set_rotation_quotas": "Set new rotation quotas",
|
||||
"quotas_set": "New backup rotation quotas set",
|
||||
"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",
|
||||
|
@ -326,9 +305,7 @@
|
|||
"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."
|
||||
|
@ -353,39 +330,23 @@
|
|||
}
|
||||
},
|
||||
"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",
|
||||
|
@ -397,7 +358,6 @@
|
|||
"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",
|
||||
|
@ -410,8 +370,6 @@
|
|||
"user_already_exists": "User with such username already exists"
|
||||
},
|
||||
"initializing": {
|
||||
"server_provider_description": "A place where your data and SelfPrivacy services will reside:",
|
||||
"dns_provider_description": "A service which lets your IP point towards domain names:",
|
||||
"connect_to_server": "Let's start with a server.",
|
||||
"select_provider": "Pick any provider from the following list, they all support SelfPrivacy",
|
||||
"select_provider_notice": "By 'Relatively small' we mean a machine with 2 cores of CPU and 2 gigabytes of RAM.",
|
||||
|
@ -425,7 +383,6 @@
|
|||
"select_provider_payment_title": "Payment methods",
|
||||
"select_provider_payment_text_hetzner": "Credit cards, SWIFT, SEPA, PayPal",
|
||||
"select_provider_payment_text_do": "Credit cards, Google Pay, PayPal",
|
||||
"select_provider_payment_text_cloudflare": "Credit cards",
|
||||
"select_provider_email_notice": "E-mail hosting won't be available for new clients. Nevertheless it will be unlocked as soon as you complete your first payment.",
|
||||
"select_provider_site_button": "Visit site",
|
||||
"connect_to_server_provider": "Now log in ",
|
||||
|
@ -448,21 +405,16 @@
|
|||
"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",
|
||||
"no_server_types_found": "No available server types found. Make sure your account is accessible and try to change your server location.",
|
||||
"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",
|
||||
"connect_to_dns_provider_text": "With API token SelfPrivacy will manage all DNS entries",
|
||||
"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",
|
||||
"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.",
|
||||
"connect_backblaze_storage": "Connect Backblaze storage",
|
||||
"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",
|
||||
|
@ -476,7 +428,6 @@
|
|||
"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 {}",
|
||||
"steps": {
|
||||
"hosting": "Hosting",
|
||||
|
@ -589,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"
|
||||
},
|
||||
|
@ -625,7 +574,8 @@
|
|||
"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_server_timezone": "Change server timezone",
|
||||
"change_ssh_settings": "Change SSH settings"
|
||||
},
|
||||
"validations": {
|
||||
"required": "Required",
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
"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!"
|
||||
"copied_to_clipboard": "Copiado al portapapeles!"
|
||||
},
|
||||
"test": "es-test",
|
||||
"locale": "es",
|
||||
|
@ -56,16 +56,14 @@
|
|||
"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, ECDSA o RSA"
|
||||
},
|
||||
"about_application_page": {
|
||||
"application_version_text": "Versión de la aplicación {}",
|
||||
"application_version_text": "Versión de la aplicación",
|
||||
"title": "Sobre",
|
||||
"api_version_text": "Versión API del servidor {}",
|
||||
"api_version_text": "Versión API del servidor",
|
||||
"privacy_policy": "Política de privacidad"
|
||||
},
|
||||
"onboarding": {
|
||||
|
@ -81,21 +79,14 @@
|
|||
},
|
||||
"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…",
|
||||
"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",
|
||||
|
|
|
@ -1 +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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,12 +39,8 @@
|
|||
"copied_to_clipboard": "Copié dans le presse-papier !"
|
||||
},
|
||||
"more_page": {
|
||||
"about_application": "À propos",
|
||||
"create_ssh_key": "Clés SSH du super utilisateur",
|
||||
"console": "Console",
|
||||
"application_settings": "Paramètres de l'application",
|
||||
"configuration_wizard": "Assistant de configuration",
|
||||
"about_project": "À propos de nous",
|
||||
"onboarding": "Embarquement"
|
||||
},
|
||||
"console_page": {
|
||||
|
@ -52,13 +48,11 @@
|
|||
"waiting": "En attente de l'initialisation…",
|
||||
"copy": "Copier"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "À propos de nous"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "À propos",
|
||||
"privacy_policy": "Politique de confidentialité",
|
||||
"application_version_text": "Version de l'application {}"
|
||||
"application_version_text": "Version de l'application",
|
||||
"api_version_text": "Version de l'API du serveur {}"
|
||||
},
|
||||
"application_settings": {
|
||||
"title": "Paramètres de l'application",
|
||||
|
@ -67,15 +61,16 @@
|
|||
"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."
|
||||
"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 ?",
|
||||
"subtitle_with_keys": "{} clés",
|
||||
"subtitle_without_keys": "Pas de clés SSH",
|
||||
"no_key_name": "Clé sans nom",
|
||||
"input_label": "Clé RSA ou ED25519 publique",
|
||||
"root_title": "Ce sont les clés SSH du superutilisateur",
|
||||
|
@ -128,19 +123,6 @@
|
|||
"select_timezone": "Sélectionner le fuseau horaire",
|
||||
"description": "Tous vos services en direct ici"
|
||||
},
|
||||
"record": {
|
||||
"root": "Domaine racine",
|
||||
"api": "API de SelfPrivacy",
|
||||
"git": "Serveur Git",
|
||||
"meet": "Conférence vidéo",
|
||||
"social": "Réseau social",
|
||||
"password": "Gestionnaire de mot de passe",
|
||||
"vpn": "VPN",
|
||||
"dmarc": "Enregistrement DMARC",
|
||||
"spf": "Enregistrement SPF",
|
||||
"dkim": "Clé DKIM",
|
||||
"mx": "Enregistrement MX"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Domaine",
|
||||
"screen_title": "Domaines et DNS",
|
||||
|
@ -159,17 +141,13 @@
|
|||
"card_title": "Sauvegarde",
|
||||
"reuploaded_key": "Clés republiées",
|
||||
"initialize": "Initialise",
|
||||
"waiting_for_rebuild": "Vous serez capable de créer votre première sauvegarde dans quelques instants.",
|
||||
"restore": "Restaurer depuis la sauvegarde",
|
||||
"create_new": "Créer une nouvelle sauvegarde",
|
||||
"creating": "Création d'une nouvelle sauvegarde: {}%",
|
||||
"restoring": "Restauration depuis la 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",
|
||||
"error_pending": "Le serveur a retourné une erreur, vérifier plus bas",
|
||||
"refetch_backups": "Récupérer la liste des mise à jour"
|
||||
},
|
||||
"storage": {
|
||||
|
@ -188,8 +166,6 @@
|
|||
"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",
|
||||
"migration_process": "Migration en cours…",
|
||||
"migration_done": "Terminé",
|
||||
"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."
|
||||
},
|
||||
|
@ -211,9 +187,7 @@
|
|||
"uses": "Utilise {usage} du {volume}"
|
||||
},
|
||||
"mail": {
|
||||
"title": "E-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.",
|
||||
"subtitle": "E-Mail pour des entreprises et la famille."
|
||||
"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."
|
||||
|
@ -249,7 +223,6 @@
|
|||
"title": "Liste des jobs"
|
||||
},
|
||||
"modals": {
|
||||
"you_cant_use_this_api": "Vous ne pouvez pas utiliser cette API pour un domaine avec cette extension.",
|
||||
"destroy_server": "Effacer le serveur et en créer un nouveau?",
|
||||
"no": "Non",
|
||||
"yes": "Oui",
|
||||
|
@ -261,35 +234,21 @@
|
|||
"try_again": "Essayer à nouveau?"
|
||||
},
|
||||
"password_manager": {
|
||||
"title": "Gestionnaire de mot de passe",
|
||||
"subtitle": "La base de votre sécurité. Bitwarden vous aidera à créer, stocker et déplacer les mots de passe entre appareils, ainsi qu'à les saisir, lorsque cela est demandé, en utilisant l'autocomplétion.",
|
||||
"login_info": "Vous devrez créer un compte sur le site web."
|
||||
},
|
||||
"timer": {
|
||||
"sec": "{} secondes"
|
||||
},
|
||||
"cloud": {
|
||||
"title": "Stockage cloud",
|
||||
"subtitle": "Ne permettez pas aux services cloud de lire vos données en utilisant NextCloud.",
|
||||
"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": {
|
||||
"title": "Vidéoconférence",
|
||||
"subtitle": "Zoom et Google Meet sont biens, mais Jitsi Meet est une alternative valable qui vous donne également l'assurance que vous n'êtes pas écouter.",
|
||||
"login_info": "Pas de compte nécessaire."
|
||||
},
|
||||
"social_network": {
|
||||
"title": "Réseaux sociaux",
|
||||
"subtitle": "C'est difficile à croire mais il devient possible de créer votre propre réseau social, avec vos propres règles et votre propre public cible.",
|
||||
"login_info": "Vous devrez créer un compte sur le site web."
|
||||
},
|
||||
"git": {
|
||||
"title": "Serveur Git",
|
||||
"subtitle": "Une alternative privée à Github, qui vous appartient et qui n'appartient pas à Microsoft.",
|
||||
"login_info": "Vous devrez créer un compte sur le site web. Le premier utilisateur deviendra admin."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "Serveur VPN",
|
||||
"subtitle": "Serveur VPN privé"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,12 +2,8 @@
|
|||
"test": "he-test",
|
||||
"locale": "he",
|
||||
"more_page": {
|
||||
"application_settings": "הגדרות יישום",
|
||||
"configuration_wizard": "אשף הקמה",
|
||||
"about_project": "עלינו",
|
||||
"about_application": "על אודות",
|
||||
"create_ssh_key": "מפתחות SSH למשתמשי על",
|
||||
"console": "מסוף",
|
||||
"onboarding": "קבלת פנים"
|
||||
},
|
||||
"basis": {
|
||||
|
@ -45,13 +41,14 @@
|
|||
"continue": "להמשיך",
|
||||
"alert": "התראה",
|
||||
"copied_to_clipboard": "הועתק ללוח הגזירים!",
|
||||
"please_connect": "נא לחבר את השרת, שם התחום וספק ה־DNS שלך לפני שצוללים פנימה!"
|
||||
"please_connect": "נא לחבר את השרת, שם התחום וספק ה־DNS שלך לפני שצוללים פנימה!",
|
||||
"network_error": "שגיאת רשת"
|
||||
},
|
||||
"about_application_page": {
|
||||
"privacy_policy": "מדיניות פרטיות",
|
||||
"title": "על אודות",
|
||||
"application_version_text": "היישום בגרסה {}",
|
||||
"api_version_text": "גרסת ה־API של השרת היא {}"
|
||||
"application_version_text": "היישום בגרסה",
|
||||
"api_version_text": "גרסת ה־API של השרת היא"
|
||||
},
|
||||
"ssh": {
|
||||
"root_subtitle": "בעלי המפתחות האלו יקבלו גישה מלאה לשרת ויוכלו לעשות איתו כל העולה על רוחם. יש להוסיף רק את המפתחות שלך לשרת.",
|
||||
|
@ -59,8 +56,6 @@
|
|||
"create": "יצירת מפתח SSH",
|
||||
"delete": "מחיקת מפתח SSH",
|
||||
"delete_confirm_question": "למחוק את מפתח ה־SSH?",
|
||||
"subtitle_with_keys": "{} מפתחות",
|
||||
"subtitle_without_keys": "אין מפתחות",
|
||||
"no_key_name": "מפתח ללא שם",
|
||||
"root_title": "אלו מפתחות משתמש על",
|
||||
"input_label": "מפתח ED25519, ECDSA או RSA ציבורי"
|
||||
|
@ -84,9 +79,6 @@
|
|||
"waiting": "בהמתנה לאתחול…",
|
||||
"copy": "העתקה"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "עלינו"
|
||||
},
|
||||
"application_settings": {
|
||||
"title": "הגדרות יישום",
|
||||
"system_dark_theme_title": "ערכת העיצוב כברירת המחדל של המערכת",
|
||||
|
@ -100,8 +92,6 @@
|
|||
"delete_server_description": "מסיר את השרת שלך. הוא לא יהיה זמין עוד."
|
||||
},
|
||||
"backup": {
|
||||
"waiting_for_rebuild": "אפשר ליצור את הגיבוי הראשון שלך בעוד כמה דקות.",
|
||||
"error_pending": "השרת החזיר שגיאה, היא מופיעה להלן",
|
||||
"create_new_select_heading": "לבחור מה לגבות",
|
||||
"autobackup_period_subtitle": "גיבויים נוצרים כל {period}",
|
||||
"autobackup_set_period": "הגדרת הפרש",
|
||||
|
@ -114,8 +104,6 @@
|
|||
"restore": "שחזור מגיבוי",
|
||||
"no_backups": "אין גיבויים עדיין",
|
||||
"create_new": "יצירת גיבוי חדש",
|
||||
"creating": "גיבוי חדש נוצר: {}%",
|
||||
"restoring": "גיבוי משוחזר",
|
||||
"refresh": "רענון מצב",
|
||||
"refetch_backups": "משיכת רשימת הגיבויים מחדש",
|
||||
"reupload_key": "אילוץ העלאת מפתח מחדש",
|
||||
|
@ -128,10 +116,7 @@
|
|||
"autobackup_period_never": "גיבויים אוטומטיים מושבתים",
|
||||
"autobackup_period_every": "כל {period}",
|
||||
"autobackup_period_disable": "השבתת גיבויים אוטומטיים",
|
||||
"autobackup_custom": "התאמה אישית",
|
||||
"autobackup_custom_hint": "נא למלא הפרשים מותאמים אישית בדקות",
|
||||
"backups_encryption_key": "מפתח הצפנה",
|
||||
"autobackup_period_set": "הפרש הוגדר",
|
||||
"backups_encryption_key_subtitle": "יש לשמור עליו במקום בטוח.",
|
||||
"backups_encryption_key_copy": "העתקת מפתח ההצפנה",
|
||||
"reupload_key_subtitle": "ינחה את השרת להתחיל את אחסון הגיבוי שוב. כדאי להשתמש אם משהו לא תקין.",
|
||||
|
@ -215,7 +200,6 @@
|
|||
},
|
||||
"rotation_quotas_title": "הגדרות מחזוריות תמונות מצב",
|
||||
"set_rotation_quotas": "הגדרת מכסות מחזוריות חדשות",
|
||||
"quotas_set": "הוגדרו מכסות מחזוריות גיבוי חדשות",
|
||||
"backups_encryption_key_description": "המפתח הזה משמש להצפנת הגיבויים שלך. אם יאבד, לא יהיה לך איך לשחזר את הגיבויים שלך. רצוי לשמור אותו במקום בטוח כיוון שהוא יועיל לך מאוד במקרה שצריך לשחזר גיבויים ידנית.",
|
||||
"backups_encryption_key_not_found": "מפתח ההצפנה לא נמצא, נא לנסות שוב מאוחר יותר.",
|
||||
"snapshot_modal_download_verify_option_title": "להוריד, לאמת ואז להחליף",
|
||||
|
@ -275,20 +259,6 @@
|
|||
"other": "{} ליבות"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"root": "שם תחום על",
|
||||
"api": "ה־API של SelfPrivacy",
|
||||
"cloud": "ענן קבצים",
|
||||
"git": "שרת Git",
|
||||
"meet": "ועידת וידאו",
|
||||
"social": "רשת חברתית",
|
||||
"password": "מנהל סיסמאות",
|
||||
"vpn": "VPN",
|
||||
"mx": "רשומת MX",
|
||||
"dmarc": "רשומת DMARC",
|
||||
"spf": "רשומת SPF",
|
||||
"dkim": "מפתח DKIM"
|
||||
},
|
||||
"storage": {
|
||||
"card_title": "אחסון בשרת",
|
||||
"status_ok": "ניצולת הכונן תקינה",
|
||||
|
@ -309,9 +279,11 @@
|
|||
"size": "גודל",
|
||||
"data_migration_notice": "במהלך ההסבה כל השירותים ייכבו.",
|
||||
"start_migration_button": "התחלת הסבה",
|
||||
"migration_process": "הסבה מתבצעת…",
|
||||
"migration_done": "הסתיימה",
|
||||
"extending_volume_modal_description": "לשדרג ל־{} בתוכנית של {} לחודש."
|
||||
"extending_volume_modal_description": "לשדרג ל־{} בתוכנית של {} לחודש.",
|
||||
"extending_volume_started": "הרחבת כרך החלה",
|
||||
"extending_volume_provider_waiting": "גודל כרך הספק השתנה, נמתין 10 שניות…",
|
||||
"extending_volume_server_waiting": "גודל כרך השרת השתנה, נמתין 20 שניות…",
|
||||
"extending_volume_rebooting": "השרת מופעל מחדש…"
|
||||
},
|
||||
"service_page": {
|
||||
"enable": "הפעלת שירות",
|
||||
|
@ -336,28 +308,16 @@
|
|||
"in_menu": "השרת לא מוגדר עדיין. נא לסיים את ההגדרה באמצעות אשף ההקמה כדי להמשיך בהקמה."
|
||||
},
|
||||
"mail": {
|
||||
"login_info": "להשתמש בשם המשתמש והסיסמה מלשונית המשתמשים. פתחת ה־IMAP היא 143 עם STARTTLS, פתחת ה־SMTP היא 587 עם STARTTLS.",
|
||||
"subtitle": "דוא״ל לחברה ולמשפחה.",
|
||||
"title": "דוא״ל"
|
||||
"login_info": "להשתמש בשם המשתמש והסיסמה מלשונית המשתמשים. פתחת ה־IMAP היא 143 עם STARTTLS, פתחת ה־SMTP היא 587 עם STARTTLS."
|
||||
},
|
||||
"password_manager": {
|
||||
"title": "מנהל סיסמאות",
|
||||
"subtitle": "בסיס האטבחה שלך. Bitwarden יסייע לך ליצור, לאחסן ולעביר סיסמאות בין מכשירים ואף למלא אותן כשיש צורך בזה עם השלמה אוטומטית.",
|
||||
"login_info": "צריך ליצור חשבון באתר."
|
||||
},
|
||||
"video": {
|
||||
"title": "ועידת וידאו",
|
||||
"subtitle": "Zoom ו־Google Meet הם אחלה שירותים אבל Jitsi Meet הוא חלופה ראויה שגם מבטיחה שלא מאזינים לך.",
|
||||
"login_info": "לא צריך חשבון."
|
||||
},
|
||||
"vpn": {
|
||||
"subtitle": "שרת VPN פרטי",
|
||||
"title": "שרת VPN"
|
||||
},
|
||||
"git": {
|
||||
"subtitle": "חלופה פרטית ל־GitHub ששייכת לך, אך לא ל־Microsoft.",
|
||||
"login_info": "צריך ליצור חשבון באתר. המשתמש הראשון יהיה המנהל.",
|
||||
"title": "שרת Git"
|
||||
"login_info": "צריך ליצור חשבון באתר. המשתמש הראשון יהיה המנהל."
|
||||
},
|
||||
"users": {
|
||||
"login": "כניסה",
|
||||
|
@ -365,7 +325,6 @@
|
|||
"delete_confirm_question": "להמשיך?",
|
||||
"reset_password": "איפוס סיסמה",
|
||||
"account": "חשבון",
|
||||
"send_registration_data": "שיתוף פרטי גישה",
|
||||
"no_ssh_notice": "למשתמש זה נוצרים רק חשבונות דוא״ל ו־SSH. כניסה אחודה לכל השירותים מגיעה בקרוב.",
|
||||
"details_title": "פרטי משתמש",
|
||||
"add_new_user": "הוספת המשתמש הראשון",
|
||||
|
@ -379,10 +338,10 @@
|
|||
"could_not_delete_user": "לא ניתן למחוק משתמש",
|
||||
"could_not_add_ssh_key": "לא ניתן להוסיף מפתח SSH",
|
||||
"email_login": "כניסה עם דוא״ל",
|
||||
"username_rule": "שם המשתמש חייב להכיל אותיות לטיניות קטנות, ספרות וקווים תחתיים ואסור לו להתחיל בספרה"
|
||||
"username_rule": "שם המשתמש חייב להכיל אותיות לטיניות קטנות, ספרות וקווים תחתיים ואסור לו להתחיל בספרה",
|
||||
"user_already_exists": "כבר קיים משתמש עם שם המשתמש הזה"
|
||||
},
|
||||
"initializing": {
|
||||
"dns_provider_description": "שירות שמאפשר ל־IP שלך להצביע על שמות תחום:",
|
||||
"select_provider_countries_text_hetzner": "גרמניה, פינלנד, ארה״ב",
|
||||
"select_provider_countries_text_do": "ארה״ב, הולנד, סינגפור, אנגליה, גרמניה, קנדה, הודו, אוסטרליה",
|
||||
"select_provider": "יש לבחור ספק מהרשימה שלהלן, כולם תומכים ב־SelfPrivacy",
|
||||
|
@ -390,7 +349,6 @@
|
|||
"select_provider_countries_title": "מדינות זמינות",
|
||||
"select_provider_price_text_hetzner": "€8 לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון",
|
||||
"select_provider_payment_text_hetzner": "כרטיסי אשראי, העברה בנקאית, SEPA, PayPal",
|
||||
"select_provider_payment_text_cloudflare": "כרטיסי אשראי",
|
||||
"select_provider_price_text_do": "17$ לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון",
|
||||
"select_provider_payment_title": "שיטות תשלום",
|
||||
"select_provider_payment_text_do": "כרטיסי אשראי, Google Pay, PayPal",
|
||||
|
@ -400,11 +358,9 @@
|
|||
"locations_not_found": "אופס!",
|
||||
"choose_location_type": "איפה להזמין את השרת שלך?",
|
||||
"connect_to_server_provider_text": "עם אסימון API יכול SelfPrivacy לשכור מכונה ולהקים את השרת שלך עליה",
|
||||
"no_server_types_found": "לא נמצאו סוגי שרתים. נא לוודא שהחשבון שלך נגיש ולנסות לשנות את מקום השרת שלך.",
|
||||
"multiple_domains_found_text": "האסימון שסיפקת מעניק גישה לשמות התחום הבאים. נא לבחור את האחד לשימוש. כדי לשמור על אבטחת שאר שמות התחום שלך, כדאי להגביל את הגישה של האסימון הזה רק לשם התחום שמיועד לשימוש עם SelfPrivacy.",
|
||||
"use_this_domain_text": "האסימון שסיפקת מעניק גישה לשם התחום הבא",
|
||||
"multiple_domains_found": "נמצאו מגוון שמות תחום",
|
||||
"connect_backblaze_storage": "חיבור אחסון של Backblaze",
|
||||
"no_connected_domains": "אין שמות תחום מחוברים כרגע",
|
||||
"one_more_restart": "הפעלה נוספת מחדש כדי להחיל את אישורי האבטחה שלך.",
|
||||
"what": "מה זה אומר?",
|
||||
|
@ -424,12 +380,10 @@
|
|||
"dns_setup": "הגדרת DNS",
|
||||
"nixos_installation": "התקנת NixOS",
|
||||
"final_checks": "בדיקות אחרונות",
|
||||
"server_reboot": "השרת מופעל מחדש"
|
||||
"server_reboot": "הפעלת השרת מחדש"
|
||||
},
|
||||
"select_provider_email_notice": "אירוח דוא״ל לא יהיה זמין ללקוחות חדשים. עם זאת, אפשרות זו תיפתח לאחר השלמת התשלום הראשון שלך.",
|
||||
"choose_server_type_text": "קיבולות משאבים שונות תומכות בשירותים שונים. אל חשש, אפשר להגדיל את השרת שלך בכל עת",
|
||||
"found_more_domains": "נמצא יותר משם תחום אחד. מטעמי אבטחה, נבקש ממך למחוק שמות תחום שאינם נחוצים",
|
||||
"server_provider_description": "מקום בו הנתונים ושירותי ה־SelfPrivacy שלך יאוחסנו:",
|
||||
"connect_to_server": "הבה נתחיל עם שרת.",
|
||||
"select_provider_price_title": "מחיר ממוצע",
|
||||
"select_provider_price_free": "חינם",
|
||||
|
@ -444,7 +398,6 @@
|
|||
"dns_provider_bad_key_error": "מפתח ה־API שגוי",
|
||||
"connect_to_dns": "חיבור לספק ה־DNS",
|
||||
"select_dns": "עכשיו נבחר ספק DNS",
|
||||
"manage_domain_dns": "כדי לנהל את ה־DNS של שם התחום שלך",
|
||||
"use_this_domain": "להשתמש בשם התחום הזה?",
|
||||
"loading_domain_list": "רשימת שמות התחום נטענת",
|
||||
"choose_server_type": "איזה סוג של שרת נחוץ לך?",
|
||||
|
@ -454,12 +407,10 @@
|
|||
"choose_server_type_payment_server": "{} לשרת",
|
||||
"backblaze_bad_key_error": "פרטי האחסון שלך ב־Backblaze שגויים",
|
||||
"choose_server_type_notice": "הדברים החשובים לעקוב אחריהם הם המעבד והזיכרון. הנתונים של השירותים שלך יאוחסנו בכונן מעוגן שאפשר להגדיל בקלות והתשלום עליו נפרד.",
|
||||
"connect_to_dns_provider_text": "עם מפתח API ינהל SelfPrivacy את כל רשומות ה־DNS שלו",
|
||||
"save_domain": "שמירת שם התחום",
|
||||
"final": "צעד אחרון",
|
||||
"create_server": "יצירת שרת",
|
||||
"enter_username_and_password": "נא למלא שם משתמש וסיסמה חזקה",
|
||||
"finish": "הכול מאותחל",
|
||||
"create_master_account": "יצירת חשבון ראשי",
|
||||
"checks": "בדיקות הושלמו \n{} מתוך {}",
|
||||
"domain_critical_error": "לא הצלחנו להגיע לשם התחום הזה! נגיעה למידע נוסף…"
|
||||
|
@ -514,12 +465,12 @@
|
|||
"access_granted_on": "הוענקה גישה דרך {}"
|
||||
},
|
||||
"add_new_device_screen": {
|
||||
"header": "אימות מכשיר חדש",
|
||||
"header": "מכשיר חדש מאומת",
|
||||
"description": "נא לספק את המפתח במכשיר לאישור:",
|
||||
"please_wait": "נא להמתין",
|
||||
"tip": "המפתח תקף ל־10 דקות.",
|
||||
"expired": "תוקף המפתח פג.",
|
||||
"get_new_key": "הנפקת מפתח חדש"
|
||||
"get_new_key": "משיכת מפתח חדש"
|
||||
},
|
||||
"revoke_device_alert": {
|
||||
"header": "לשלול גישה?",
|
||||
|
@ -553,7 +504,7 @@
|
|||
"purge_all_keys": "למחוק לחלוטין את כל מפתחות האימות?",
|
||||
"try_again": "לנסות שוב?",
|
||||
"unexpected_error": "שגיאת פתע במהלך הצבה מצד הספק.",
|
||||
"are_you_sure": "לנסות שוב?",
|
||||
"are_you_sure": "להמשיך?",
|
||||
"destroy_server": "להשמיד את השרת וליצור אחד חדש?",
|
||||
"purge_all_keys_confirm": "כן, למחוק לחלוטין את כל האסימונים שלי",
|
||||
"delete_server_volume": "למחוק את השרת והכרך?",
|
||||
|
@ -564,11 +515,10 @@
|
|||
"volume_creation_error": "לא ניתן ליצור כרך.",
|
||||
"server_validators_error": "לא ניתן למשוך את השרתים הזמינים.",
|
||||
"already_exists": "כבר קיים שרת כזה.",
|
||||
"you_cant_use_this_api": "אי אפשר להשתמש ב־API הזה לשמות תחום עם TLD (סיומת על) שכזאת.",
|
||||
"no": "לא"
|
||||
},
|
||||
"jobs": {
|
||||
"service_turn_off": "גיבוי",
|
||||
"service_turn_off": "כיבוי",
|
||||
"service_turn_on": "הפעלה",
|
||||
"job_added": "נוספה משימה",
|
||||
"run_jobs": "הפעלת משימות",
|
||||
|
@ -588,7 +538,13 @@
|
|||
"server_jobs": "משימות בשרת",
|
||||
"reset_user_password": "איפוס סיסמת משתמש",
|
||||
"reboot_failed": "לא ניתן להפעיל את השרת מחדש. נא לעיין ביומני היישום.",
|
||||
"config_pull_failed": "משיכת שדרוג ההגדרות נכשלה. שדרוג התוכנה החל בכל זאת."
|
||||
"config_pull_failed": "משיכת שדרוג ההגדרות נכשלה. שדרוג התוכנה החל בכל זאת.",
|
||||
"job_postponed": "נוספה משימה, אך לא תהיה לך אפשרות להפעיל אותה לאחר סיום המשימות הנוכחיות",
|
||||
"job_removed": "משימה הוסרה",
|
||||
"rebuild_system": "בניית המערכת מחדש",
|
||||
"start_server_upgrade": "התחלת שדרוג השרת",
|
||||
"change_auto_upgrade_settings": "שינוי הגדרות השדרוג האוטומטי",
|
||||
"change_server_timezone": "שינוי אזור הזמן של השרת"
|
||||
},
|
||||
"validations": {
|
||||
"required": "נחוץ",
|
||||
|
@ -618,14 +574,10 @@
|
|||
"root_ssh_key_added": "מפתח SSH למשתמש העל (root) הוגדר והוחל"
|
||||
},
|
||||
"cloud": {
|
||||
"title": "אחסון בענן",
|
||||
"subtitle": "לא לאפשר לשירותי ענן לקרוא את הנתונים שלך באמצעות Nextcloud.",
|
||||
"login_info": "שם המשתמש הוא admin, הסיסמה זהה לזאת של המשתמש הראשי שלך. אפשר ליצור חשבונות חדשים דרך המנשק של ה־Nextcloud שלך."
|
||||
},
|
||||
"social_network": {
|
||||
"title": "רשת חברתית",
|
||||
"login_info": "צריך ליצור חשבון באתר.",
|
||||
"subtitle": "אומנם קשה להאמין אבל אפשר ליצור רשת חברתית משלך, עם כללים וקהל יעד משלך."
|
||||
"login_info": "צריך ליצור חשבון באתר."
|
||||
},
|
||||
"timer": {
|
||||
"sec": "{} שנ׳"
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
{}
|
||||
{
|
||||
"basis": {
|
||||
"copied_to_clipboard": "\n"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
{
|
||||
"test": "jp-test",
|
||||
"locale": "jp"
|
||||
"locale": "jp",
|
||||
"basis": {
|
||||
"app_name": "SelfPrivacy"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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": "Көшіру"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,11 +37,7 @@
|
|||
},
|
||||
"more_page": {
|
||||
"configuration_wizard": "Iestatīšanas vednis",
|
||||
"about_project": "Par mums",
|
||||
"about_application": "Par",
|
||||
"onboarding": "Pievienošanās",
|
||||
"console": "Konsole",
|
||||
"application_settings": "Aplikācijas iestatījumi",
|
||||
"create_ssh_key": "Superlietotāja SSH atslēgas"
|
||||
},
|
||||
"console_page": {
|
||||
|
@ -49,13 +45,10 @@
|
|||
"copy": "Kopēt",
|
||||
"waiting": "Gaida inicializatīnu…"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "Par mums"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "Par",
|
||||
"application_version_text": "Aplikācijas versija {}",
|
||||
"api_version_text": "Servera API versija {}",
|
||||
"application_version_text": "Aplikācijas versija",
|
||||
"api_version_text": "Servera API versija",
|
||||
"privacy_policy": "Privātuma politika"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -75,8 +68,6 @@
|
|||
"title": "SSH atslēgas",
|
||||
"create": "Izveidot SSH atslēgu",
|
||||
"delete": "Izdzēst SSH atslēgu",
|
||||
"subtitle_with_keys": "{} atslēgas",
|
||||
"subtitle_without_keys": "Nav atslēgu",
|
||||
"no_key_name": "Nenosaukta atslēga",
|
||||
"root_title": "Šīs ir superlietotāja atslēgas",
|
||||
"input_label": "Publiska ED25519 vai RSA atslēga",
|
||||
|
@ -131,20 +122,6 @@
|
|||
"server_timezone": "Servera laika josla",
|
||||
"ram": "Atmiņa"
|
||||
},
|
||||
"record": {
|
||||
"root": "Saknes domēns",
|
||||
"api": "SelfPrivacy API",
|
||||
"cloud": "Failu mākonis",
|
||||
"git": "Git serveris",
|
||||
"meet": "Video konference",
|
||||
"social": "Sociālais tīkls",
|
||||
"password": "Paroļu pārvaldnieks",
|
||||
"vpn": "VPN",
|
||||
"mx": "MX ieraksts",
|
||||
"spf": "SPF ieraksts",
|
||||
"dkim": "DKIM atslēga",
|
||||
"dmarc": "DMARC ieraksts"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Domēns",
|
||||
"screen_title": "Domēns un DNS",
|
||||
|
@ -167,13 +144,9 @@
|
|||
"restore": "Atjaunono dublējuma",
|
||||
"no_backups": "Vēl nav dublējumu",
|
||||
"create_new": "Jauna dublējuma izveide",
|
||||
"creating": "Veido jaunu dublējumu: {}%",
|
||||
"error_pending": "Servera atgrieztā kļūda, pārbaudiet to zemāk",
|
||||
"refresh": "Atsvaidzināšanas statuss",
|
||||
"reuploaded_key": "Atslēga atkārtoti ielādēta",
|
||||
"waiting_for_rebuild": "Pirmo dublējumu varēsit izveidot dažu minūšu laikā.",
|
||||
"restore_alert": "Jūs gatavojaties atjaunot no dublējuma, kas izveidots {}. Visi pašreizējie dati tiks zaudēti. Vai esi pārliecināts?",
|
||||
"restoring": "Atjaunošana no dublējuma",
|
||||
"refetch_backups": "Atkārtoti ielādēt dublējumkopiju sarakstu",
|
||||
"refetching_list": "Pēc dažām minūtēm saraksts tiks atjaunināts"
|
||||
},
|
||||
|
@ -207,11 +180,9 @@
|
|||
"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.",
|
||||
"migration_process": "Notiek migrēšana…",
|
||||
"migration_done": "Pabeigt"
|
||||
"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."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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",
|
||||
|
@ -32,17 +32,15 @@
|
|||
"done": "Gotowe",
|
||||
"continue": "Kontynuować",
|
||||
"alert": "Powiadomienie",
|
||||
"app_name": "SelfPrivacy"
|
||||
"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": {
|
||||
|
@ -50,13 +48,10 @@
|
|||
"waiting": "Oczekiwanie na inicjalizację…",
|
||||
"copy": "Kopia"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "O projekcie \"SelfPrivacy\""
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "O aplikacji",
|
||||
"application_version_text": "Wersja aplikacji {}",
|
||||
"api_version_text": "Wersja API serwera {}",
|
||||
"application_version_text": "Wersja aplikacji",
|
||||
"api_version_text": "Wersja API serwera",
|
||||
"privacy_policy": "Polityka prywatności"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -74,11 +69,9 @@
|
|||
"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."
|
||||
|
@ -129,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 znaczenie przesunięcia czasowego"
|
||||
},
|
||||
"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",
|
||||
|
@ -156,7 +138,7 @@
|
|||
"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": {
|
||||
|
@ -168,14 +150,56 @@
|
|||
"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ę.",
|
||||
"error_pending": "Serwer zwrócił błąd, sprawdź go poniżej",
|
||||
"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?"
|
||||
"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",
|
||||
|
@ -195,8 +219,6 @@
|
|||
"data_migration_title": "Migracja danych",
|
||||
"data_migration_notice": "Na czas migracji danych wszystkie usługi zostaną wyłączone.",
|
||||
"start_migration_button": "Rozpocznij migrację",
|
||||
"migration_process": "Migracja…",
|
||||
"migration_done": "Zakończyć",
|
||||
"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": {
|
||||
|
@ -217,38 +239,22 @@
|
|||
"uses": "Używa {usage} na {volume}"
|
||||
},
|
||||
"mail": {
|
||||
"title": "E-mail",
|
||||
"subtitle": "E-Mail dla firmy i rodziny.",
|
||||
"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": {
|
||||
"title": "Menedżer haseł",
|
||||
"subtitle": "To podstawa Twojego bezpieczeństwa. Bitwarden pomoże Ci tworzyć, przechowywać, kopiować hasła między urządzeniami i umieszczać je w formularzach.",
|
||||
"login_info": "Konto należy założyć na stronie internetowej."
|
||||
},
|
||||
"video": {
|
||||
"title": "Wideokonferencja",
|
||||
"subtitle": "Zoom i Google Meet są świetne, ale Jitsi Meet to dobra alternatywa, która daje pewność, że nie jesteś słuchany.",
|
||||
"login_info": "Konto nie jest potrzebne."
|
||||
},
|
||||
"cloud": {
|
||||
"title": "Przechowywanie w chmurze",
|
||||
"subtitle": "Nie zezwalaj usługom w chmurze na odczyt twoich danych, dla tego korzystaj z NextCloud.",
|
||||
"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": {
|
||||
"title": "Serwis społecznościowy",
|
||||
"subtitle": "Trudno w to uwierzyć, ale stało możliwe stworzenie własnego serwisu społecznościowego, z własnymi zasadami i publicznością.",
|
||||
"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.",
|
||||
"title": "Git Serwer",
|
||||
"subtitle": "Prywatna alternatywa dla Githuba, która należy do Ciebie, ale nie do Microsoftu."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "VPN Serwer",
|
||||
"subtitle": "Prywatny serwer VPN"
|
||||
"login_info": "Konto należy założyć na stronie. Pierwszy zarejestrowany użytkownik zostaje administratorem."
|
||||
},
|
||||
"users": {
|
||||
"add_new_user": "Dodaj pierwszego użytkownika",
|
||||
|
@ -260,7 +266,6 @@
|
|||
"delete_confirm_question": "Czy naprawdę chcesz usunąć konto?",
|
||||
"reset_password": "Zresetuj hasło",
|
||||
"account": "Konto",
|
||||
"send_registration_data": "Udostępnij dane logowania",
|
||||
"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",
|
||||
|
@ -317,18 +322,14 @@
|
|||
"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",
|
||||
"no_server_types_found": "Nie znaleziono dostępnych typów serwerów! Proszę upewnić się, że masz dostęp do dostawcy serwera...",
|
||||
"use_this_domain": "Kto używa ten domen?",
|
||||
"connect_backblaze_storage": "Dodajcie Blackblaze",
|
||||
"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",
|
||||
"manage_domain_dns": "Aby zarządzać DNS domeny",
|
||||
"create_master_account": "Dodać konto administratora",
|
||||
"use_this_domain_text": "Podany token zapewnia kontrolę nad tą domeną",
|
||||
"loading_domain_list": "Ładowanie listy domen",
|
||||
"found_more_domains": "Znaleziono więcej niż jedną domenę, dla własnego bezpieczeństwa usuń niepotrzebne domeny",
|
||||
"save_domain": "Zapisz domenę",
|
||||
"final": "Ostatni krok",
|
||||
"create_server": "Utwórz serwer",
|
||||
|
@ -339,7 +340,6 @@
|
|||
"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",
|
||||
"finish": "Wszystko jest inicjalizowane",
|
||||
"checks": "Kontrole wykonane:\n{} / {}",
|
||||
"steps": {
|
||||
"hosting": "Hosting",
|
||||
|
@ -355,11 +355,7 @@
|
|||
"final_checks": "Kontrole końcowe"
|
||||
},
|
||||
"dns_provider_bad_key_error": "Klucz API jest nieprawidłowy",
|
||||
"connect_to_dns_provider_text": "Za pomocą interfejsu API tokena aplikacja SelfPrivacy skonfiguruje rekordy DNS",
|
||||
"server_provider_description": "Lokalizacja, w której będą znajdować się Twoje dane i usługi SelfPrivacy:",
|
||||
"dns_provider_description": "Spowoduje to połączenie Twojej domeny z adresem IP:",
|
||||
"select_provider_price_free": "Za darmo",
|
||||
"select_provider_payment_text_cloudflare": "Karty bankowe",
|
||||
"connect_to_dns": "Połącz dostawcę DNS"
|
||||
},
|
||||
"jobs": {
|
||||
|
@ -400,7 +396,6 @@
|
|||
"try_again": "Mam spróbować jeszcze raz?",
|
||||
"purge_all_keys_confirm": "Tak, wymazać wszystkie klucze",
|
||||
"delete_server_volume": "Usunąć serwer i pamięć masową?",
|
||||
"you_cant_use_this_api": "Nie możesz użyć tego API dla domeny z podobnym TLD.",
|
||||
"volume_creation_error": "Nie udało się utworzyć woluminu."
|
||||
},
|
||||
"recovery_key": {
|
||||
|
|
|
@ -36,30 +36,42 @@
|
|||
"alert": "Уведомление",
|
||||
"copied_to_clipboard": "Скопировано в буфер обмена!",
|
||||
"app_name": "SelfPrivacy",
|
||||
"please_connect": "Настройте ваш сервер и подключите домен для полного погружения!"
|
||||
"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": "Ждём инициализации…",
|
||||
"copy": "Копировать"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "О проекте SelfPrivacy"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "О приложении",
|
||||
"application_version_text": "Версия приложения {}",
|
||||
"api_version_text": "Версия API сервера {}",
|
||||
"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": "Настройки приложения",
|
||||
|
@ -78,12 +90,11 @@
|
|||
"create": "Добавить SSH ключ",
|
||||
"delete": "Удалить SSH ключ",
|
||||
"delete_confirm_question": "Вы уверены, что хотите удалить следующий ключ?",
|
||||
"subtitle_with_keys": "Ключей: {}",
|
||||
"subtitle_without_keys": "Ключей нет",
|
||||
"no_key_name": "Безымянный ключ",
|
||||
"root_title": "Это ключи суперпользователя",
|
||||
"root_subtitle": "Владельцы указанных здесь ключей получают полный доступ к данным и настройкам сервера. Добавляйте исключительно свои ключи.",
|
||||
"input_label": "Публичный ED25519, ECDSA или RSA ключ"
|
||||
"input_label": "Публичный ED25519, ECDSA или RSA ключ",
|
||||
"ssh_disabled_warning": "SSH отключен. Его можно включить в настройках сервера."
|
||||
},
|
||||
"onboarding": {
|
||||
"page1_title": "Цифровая независимость доступна каждому",
|
||||
|
@ -134,21 +145,12 @@
|
|||
"other": "{} ядер"
|
||||
},
|
||||
"server_provider": "Провайдер сервера",
|
||||
"dns_provider": "Провайдер DNS"
|
||||
},
|
||||
"record": {
|
||||
"root": "Корневой домен",
|
||||
"api": "SelfPrivacy API",
|
||||
"cloud": "Файловое облако",
|
||||
"git": "Git сервер",
|
||||
"meet": "Видеоконференции",
|
||||
"social": "Социальная сеть",
|
||||
"password": "Менеджер паролей",
|
||||
"vpn": "VPN",
|
||||
"mx": "MX запись",
|
||||
"dmarc": "DMARC запись",
|
||||
"spf": "SPF запись",
|
||||
"dkim": "DKIM ключ"
|
||||
"dns_provider": "Провайдер DNS",
|
||||
"allow_password_authentication_hint": "Позволяет пользователям подключаться к серверу по SSH используя свой пароль (не применяется к суперпользователю)",
|
||||
"allow_password_authentication": "Разрешить вход по SSH с использованием пароля",
|
||||
"settings": "Настройки сервера",
|
||||
"enable_ssh": "Включить SSH",
|
||||
"enable_ssh_hint": "Разрешить доступ к серверу через SSH"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Домен",
|
||||
|
@ -170,13 +172,9 @@
|
|||
"reupload_key": "Принудительно обновить ключ",
|
||||
"reuploaded_key": "Ключ на сервере обновлён",
|
||||
"initialize": "Настроить",
|
||||
"waiting_for_rebuild": "Через несколько минут можно будет создать первую копию.",
|
||||
"restore": "Восстановить из копии",
|
||||
"no_backups": "Резервных копий пока нет",
|
||||
"create_new": "Создать новую копию",
|
||||
"creating": "Создание копии: {}%",
|
||||
"restoring": "Восстановление из копии",
|
||||
"error_pending": "Сервер вернул ошибку: проверьте её ниже",
|
||||
"restore_alert": "Вы собираетесь восстановить из копии созданной {}. Все текущие данные будут потеряны. Вы уверены?",
|
||||
"refresh": "Обновить статус",
|
||||
"refetch_backups": "Обновить список копий",
|
||||
|
@ -197,10 +195,7 @@
|
|||
"autobackup_period_subtitle": "Создание копий раз в {period}",
|
||||
"autobackup_period_every": "Раз в {period}",
|
||||
"autobackup_period_disable": "Отключить автоматические копирование",
|
||||
"autobackup_custom": "Другое",
|
||||
"autobackup_custom_hint": "Введите период в минутах",
|
||||
"autobackup_set_period": "Установить период",
|
||||
"autobackup_period_set": "Период установлен",
|
||||
"backups_encryption_key": "Ключ шифрования",
|
||||
"snapshots_title": "Список снимков",
|
||||
"forget_snapshot_error": "Не удалось забыть снимок",
|
||||
|
@ -279,7 +274,6 @@
|
|||
},
|
||||
"rotation_quotas_title": "Настройки ротации снимков",
|
||||
"set_rotation_quotas": "Задать новые квоты ротации",
|
||||
"quotas_set": "Новые квоты ротации резервных копий заданы",
|
||||
"quota_titles": {
|
||||
"last": "Сколько последних снимков сохранять",
|
||||
"daily": "Сколько ежедневных снимков сохранять",
|
||||
|
@ -308,10 +302,12 @@
|
|||
"data_migration_title": "Миграция данных",
|
||||
"data_migration_notice": "На время миграции данных все сервисы будут выключены.",
|
||||
"start_migration_button": "Начать миграцию",
|
||||
"migration_process": "Мигрируем…",
|
||||
"migration_done": "Завершить",
|
||||
"price": "Цена",
|
||||
"extending_volume_modal_description": "Хранилище будет расширено до {}, новая стоимость {} в месяц."
|
||||
"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": "Сервер ещё не настроен, воспользуйтесь мастером подключения."
|
||||
|
@ -336,39 +332,23 @@
|
|||
"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": "Новый пользователь",
|
||||
|
@ -379,7 +359,6 @@
|
|||
"delete_confirm_question": "Вы действительно хотите удалить учетную запись?",
|
||||
"reset_password": "Сбросить пароль",
|
||||
"account": "Учетная запись",
|
||||
"send_registration_data": "Поделиться реквизитами",
|
||||
"could_not_fetch_users": "Не удалось получить пользователей",
|
||||
"could_not_fetch_description": "Проверьте интернет соединение и попробуйте снова",
|
||||
"refresh_users": "Обновить список пользователей",
|
||||
|
@ -389,10 +368,10 @@
|
|||
"username_rule": "Имя может содержать только маленькие латинские буквы, цифры, подчёркивания, не может начинаться с цифр",
|
||||
"email_login": "Авторизация по Email",
|
||||
"no_ssh_notice": "Для этого пользователя созданы только SSH и Email аккаунт. Единая авторизация для всех сервисов ещё не реализована.",
|
||||
"details_title": "Пользователь"
|
||||
"details_title": "Пользователь",
|
||||
"user_already_exists": "Пользователь с таким именем уже существует"
|
||||
},
|
||||
"initializing": {
|
||||
"dns_provider_description": "Это позволит связать ваш домен с IP адресом:",
|
||||
"connect_to_server": "Начнём с сервера.",
|
||||
"select_provider": "Ниже подборка провайдеров, которых поддерживает SelfPrivacy",
|
||||
"select_provider_notice": "Под 'Небольшим сервером' имеется ввиду сервер с двумя потоками процессора и двумя гигабайтами оперативной памяти.",
|
||||
|
@ -405,7 +384,6 @@
|
|||
"select_provider_price_text_do": "$17 в месяц за небольшой сервер и 50GB места на диске",
|
||||
"select_provider_payment_title": "Методы оплаты",
|
||||
"select_provider_payment_text_hetzner": "Банковские карты, SWIFT, SEPA, PayPal",
|
||||
"select_provider_payment_text_cloudflare": "Банковские карты",
|
||||
"select_provider_payment_text_do": "Банковские карты, Google Pay, PayPal",
|
||||
"select_provider_email_notice": "Хостинг электронной почты недоступен для новых клиентов. Разблокировать можно будет после первой оплаты.",
|
||||
"select_provider_site_button": "Посетить сайт",
|
||||
|
@ -429,18 +407,13 @@
|
|||
"choose_server_type_payment_server": "{} за сам сервер",
|
||||
"choose_server_type_payment_storage": "{} за расширяемое хранилище",
|
||||
"choose_server_type_payment_ip": "{} за публичный IPv4",
|
||||
"no_server_types_found": "Не найдено доступных типов сервера! Пожалуйста, убедитесь, что у вас есть доступ к провайдеру сервера...",
|
||||
"dns_provider_bad_key_error": "API ключ неверен",
|
||||
"backblaze_bad_key_error": "Информация о Backblaze хранилище неверна",
|
||||
"connect_to_dns": "Подключите DNS провайдера",
|
||||
"connect_to_dns_provider_text": "С помощью API токена приложение SelfPrivacy настроит DNS записи",
|
||||
"manage_domain_dns": "Для управления DNS вашего домена",
|
||||
"use_this_domain": "Используем этот домен?",
|
||||
"use_this_domain_text": "Указанный вами токен даёт контроль над этим доменом",
|
||||
"connect_backblaze_storage": "Подключите облачное хранилище Backblaze",
|
||||
"no_connected_domains": "На данный момент подлюченных доменов нет",
|
||||
"loading_domain_list": "Загружаем список доменов",
|
||||
"found_more_domains": "Найдено больше одного домена, для вашей безопасности, просим Вам удалить ненужные домены",
|
||||
"save_domain": "Сохранить домен",
|
||||
"final": "Последний шаг",
|
||||
"create_server": "Создать сервер",
|
||||
|
@ -453,7 +426,6 @@
|
|||
"one_more_restart": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопасности.",
|
||||
"create_master_account": "Создайте главную учетную запись",
|
||||
"enter_username_and_password": "Введите имя пользователя и сложный пароль",
|
||||
"finish": "Всё инициализировано",
|
||||
"checks": "Проверок выполнено: \n{} / {}",
|
||||
"select_dns": "Сейчас выберите DNS провайдера",
|
||||
"steps": {
|
||||
|
@ -469,7 +441,6 @@
|
|||
"server_reboot": "Перезагрузка сервера",
|
||||
"final_checks": "Финальные проверки"
|
||||
},
|
||||
"server_provider_description": "Место, где будут находиться ваши данные и сервисы SelfPrivacy:",
|
||||
"multiple_domains_found": "Найдено несколько доменов",
|
||||
"multiple_domains_found_text": "Предоставленный токен дает доступ к следующим доменам. Пожалуйста, выберите тот, который вы хотите использовать. Для обеспечения безопасности других доменов следует ограничить доступ этого токена только тем доменом, который вы хотите использовать с SelfPrivacy.",
|
||||
"domain_critical_error": "Не получается подключиться к домену! Нажмите для подробностей…"
|
||||
|
@ -478,7 +449,7 @@
|
|||
"generic_error": "Ошибка проведения операции, попробуйте ещё раз.",
|
||||
"recovery_main_header": "Подключение к существующему серверу",
|
||||
"domain_recovery_description": "Введите домен, по которому вы хотите получить доступ к серверу:",
|
||||
"domain_recover_placeholder": "Домен",
|
||||
"domain_recover_placeholder": "Ваш домен",
|
||||
"domain_recover_error": "Не удалось найти сервер с таким доменом",
|
||||
"method_select_description": "Выберите способ входа:",
|
||||
"method_select_other_device": "У меня есть доступ на другом устройстве",
|
||||
|
@ -572,7 +543,6 @@
|
|||
"purge_all_keys_confirm": "Да, стереть все ключи",
|
||||
"delete_server_volume": "Удалить сервер и хранилище?",
|
||||
"reboot": "Перезагрузить",
|
||||
"you_cant_use_this_api": "Нельзя использовать этот API для доменом с подобным TLD.",
|
||||
"yes": "Да",
|
||||
"no": "Нет",
|
||||
"volume_creation_error": "Не удалось создать хранилище."
|
||||
|
@ -601,7 +571,14 @@
|
|||
"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": "Обязательное поле",
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
"modals": {
|
||||
"no": "Nie",
|
||||
"are_you_sure": "Ste si istý?",
|
||||
"you_cant_use_this_api": "Toto API nemôžete použiť pre doménu s podobnou TLD.",
|
||||
"yes": "Áno",
|
||||
"dns_removal_error": "Nie je možné odstrániť zápisy DNS.",
|
||||
"server_deletion_error": "Server nie je možné vymazať.",
|
||||
|
@ -88,10 +87,6 @@
|
|||
},
|
||||
"more_page": {
|
||||
"configuration_wizard": "Sprievodca nastavením",
|
||||
"about_project": "O nás",
|
||||
"about_application": "O apke",
|
||||
"console": "Konzola",
|
||||
"application_settings": "Nastavenia aplikácie",
|
||||
"onboarding": "Vitajte",
|
||||
"create_ssh_key": "SSH kľúče superužívateľa"
|
||||
},
|
||||
|
@ -100,13 +95,10 @@
|
|||
"waiting": "Čakáme na inicializáciu…",
|
||||
"copy": "Kopírovať"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "O nás"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "O apke",
|
||||
"application_version_text": "Verzia aplikácie {}",
|
||||
"api_version_text": "Verzia servera {}",
|
||||
"application_version_text": "Verzia aplikácie",
|
||||
"api_version_text": "Verzia servera",
|
||||
"privacy_policy": "Zásady ochrany osobných údajov"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -126,8 +118,6 @@
|
|||
"create": "Vytvoriť kľúč SSH",
|
||||
"delete": "Zmazať kľúč SSH",
|
||||
"delete_confirm_question": "Ste si istí že chcete vymazať kľúč SSH?",
|
||||
"subtitle_with_keys": "{} kľúče",
|
||||
"subtitle_without_keys": "Žiadne kľúče",
|
||||
"no_key_name": "Kľúč bez mena",
|
||||
"root_title": "Toto sú kľúče superužívateľa",
|
||||
"input_label": "Verejný kľúč ED25519 alebo RSA",
|
||||
|
@ -181,20 +171,6 @@
|
|||
"other": "{} jadier"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"root": "Koreňová doména",
|
||||
"api": "SelfPrivacy API",
|
||||
"cloud": "Súborový cloud",
|
||||
"git": "Git server",
|
||||
"meet": "Video konferencie",
|
||||
"social": "Sociálna sieť",
|
||||
"password": "Správca hesiel",
|
||||
"vpn": "VPN",
|
||||
"mx": "Zápis MX",
|
||||
"dmarc": "Zápis DMARC",
|
||||
"spf": "Zápis SPF",
|
||||
"dkim": "Kľúč DKIM"
|
||||
},
|
||||
"domain": {
|
||||
"screen_title": "Doména a DNS",
|
||||
"ok": "Zápise sú v poriadku",
|
||||
|
@ -235,13 +211,9 @@
|
|||
"restore": "Obnoviť zo zálohy",
|
||||
"no_backups": "Zatiaľ nemáte žiadne záložné kópie",
|
||||
"create_new": "Vytvoriť novú zálohu",
|
||||
"creating": "Vytvorenie zálohy: {}%",
|
||||
"restoring": "Obnovenie zo zálohy",
|
||||
"error_pending": "Server vrátil chybu, pozrite ju nižšie",
|
||||
"refresh": "Obnoviť stav",
|
||||
"refetch_backups": "Obnoviť zoznam záloh",
|
||||
"refetching_list": "O pár minút zoznam bude aktualizovaný",
|
||||
"waiting_for_rebuild": "O pár minút budete môcť vytvoriť svoju prvú zálohu.",
|
||||
"restore_alert": "Chystáte sa obnoviť zo zálohy vytvorenej {}. Všetky aktuálne údaje sa stratia. Ste si istý?"
|
||||
},
|
||||
"storage": {
|
||||
|
@ -261,8 +233,6 @@
|
|||
"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",
|
||||
"migration_process": "Migruje sa…",
|
||||
"migration_done": "Dokončiť",
|
||||
"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ť."
|
||||
},
|
||||
|
@ -277,12 +247,9 @@
|
|||
"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",
|
||||
"finish": "Všetko je inicializované",
|
||||
"use_this_domain_text": "Token, ktorý ste poskytli, poskytuje prístup k nasledujúcej doméne",
|
||||
"connect_backblaze_storage": "Pripojte svoje cloudové úložisko Backblaze",
|
||||
"no_connected_domains": "Momentálne nie sú pripojené žiadne domény",
|
||||
"loading_domain_list": "Načítava sa zoznam domén",
|
||||
"found_more_domains": "Našlo sa viac ako jedna doména. Pre vašu vlastnú bezpečnosť vás požiadame o odstránenie nepotrebných domén",
|
||||
"save_domain": "Uložiť doménu",
|
||||
"final": "Posledný krok",
|
||||
"create_server": "Vytvoriť server",
|
||||
|
@ -318,10 +285,8 @@
|
|||
"choose_server_type_ram": "{} GB RAM",
|
||||
"choose_server_type_storage": "{} GB systémového úložiska",
|
||||
"choose_server_type_payment_per_month": "{} mesačne",
|
||||
"no_server_types_found": "Nenašli sa žiadne dostupné typy serverov. Uistite sa, že je váš účet prístupný a skúste zmeniť umiestnenie servera.",
|
||||
"backblaze_bad_key_error": "Informácie o úložisku Backblaze sú neplatné",
|
||||
"select_dns": "Teraz vyberme poskytovateľa DNS",
|
||||
"manage_domain_dns": "Na správu DNS vašej domény",
|
||||
"use_this_domain": "Chcete použiť túto doménu?",
|
||||
"create_master_account": "Vytvorte hlavný účet",
|
||||
"checks": "Kontroly boli ukončené\n{} z {}",
|
||||
|
@ -340,23 +305,15 @@
|
|||
}
|
||||
},
|
||||
"mail": {
|
||||
"subtitle": "Email pre rodinu alebo spoločnosť.",
|
||||
"title": "Email",
|
||||
"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": {
|
||||
"subtitle": "Toto je základ vašej bezpečnosti. Bitwarden vám pomôže vytvárať, ukladať, kopírovať heslá medzi zariadeniami a vkladať ich do formulárov.",
|
||||
"title": "Správca hesiel",
|
||||
"login_info": "Musíte vytvoriť účet na webovej stránke."
|
||||
},
|
||||
"cloud": {
|
||||
"subtitle": "Zabráňte cloudovým službám v prezeraní vašich údajov. Použite NextCloud – bezpečný domov pre všetky vaše dáta.",
|
||||
"title": "Súborový 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": {
|
||||
"subtitle": "Je ťažké tomu uveriť, ale bolo možné vytvoriť si vlastnú sociálnu sieť s vlastnými pravidlami a publikom.",
|
||||
"title": "Sociálna sieť",
|
||||
"login_info": "Musíte vytvoriť účet na webovej stránke."
|
||||
},
|
||||
"users": {
|
||||
|
@ -373,7 +330,6 @@
|
|||
"delete_confirm_question": "Naozaj chcete odstrániť ten účet?",
|
||||
"reset_password": "Resetovať heslo",
|
||||
"account": "Účet",
|
||||
"send_registration_data": "Zdieľať údaje účtu",
|
||||
"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",
|
||||
|
@ -470,19 +426,11 @@
|
|||
"sec": "{} sek"
|
||||
},
|
||||
"video": {
|
||||
"title": "Video konferencia",
|
||||
"subtitle": "Jitsi meet je výborný analog Zoom a Google meet, ktorý vám okrem pohodlia zaručí aj bezpečné videokonferencie vo vysokej kvalite.",
|
||||
"login_info": "Účet sa nevyžaduje."
|
||||
},
|
||||
"git": {
|
||||
"title": "Git server",
|
||||
"subtitle": "Súkromná alternatíva Github, ktorá patrí vám, nie spoločnosti Microsoft.",
|
||||
"login_info": "Na stránke musí byť vytvorený účet. Prvý registrovaný užívateľ sa stáva administrátorom."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "Server VPN",
|
||||
"subtitle": "Súkromný server VPN"
|
||||
},
|
||||
"support": {
|
||||
"title": "Podpora SelfPrivacy"
|
||||
},
|
||||
|
|
|
@ -37,11 +37,7 @@
|
|||
"alert": "Opozorilo"
|
||||
},
|
||||
"more_page": {
|
||||
"about_application": "O prilogi",
|
||||
"about_project": "O storitvi SelfPrivacy",
|
||||
"onboarding": "Pozdravi",
|
||||
"console": "Konzola",
|
||||
"application_settings": "Nastavitve aplikacije",
|
||||
"create_ssh_key": "Superuporabniški ključi SSH",
|
||||
"configuration_wizard": "Pomočnik za nastavitev"
|
||||
},
|
||||
|
@ -50,14 +46,11 @@
|
|||
"waiting": "Čakanje na inicializacijo…",
|
||||
"copy": "Kopiraj"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "O storitvi SelfPrivacy"
|
||||
},
|
||||
"about_application_page": {
|
||||
"title": "O dodatku",
|
||||
"api_version_text": "Različica API strežnika {}",
|
||||
"api_version_text": "Različica API strežnika",
|
||||
"privacy_policy": "Pravilnik o zasebnosti",
|
||||
"application_version_text": "Različica aplikacije {}"
|
||||
"application_version_text": "Različica aplikacije"
|
||||
},
|
||||
"application_settings": {
|
||||
"dark_theme_title": "Temna tema",
|
||||
|
@ -124,26 +117,10 @@
|
|||
"create": "Dodajanje ključa SSH",
|
||||
"delete": "Odstranitev ključa SSH",
|
||||
"delete_confirm_question": "Ali ste prepričani, da želite izbrisati naslednjo tipko?",
|
||||
"subtitle_with_keys": "Ključi: {}",
|
||||
"subtitle_without_keys": "Brez ključev",
|
||||
"no_key_name": "Ključ brez imena",
|
||||
"root_title": "To so ključi superuporabnika",
|
||||
"input_label": "Javni ključ ED25519 ali RSA"
|
||||
},
|
||||
"record": {
|
||||
"cloud": "Oblak datotek",
|
||||
"root": "Korenska domena",
|
||||
"api": "SelfPrivacy API",
|
||||
"git": "Git Strežnik",
|
||||
"meet": "Videokonferenca",
|
||||
"social": "Družabno omrežje",
|
||||
"password": "Upravitelj gesel",
|
||||
"vpn": "VPN",
|
||||
"mx": "Zapis MX",
|
||||
"dmarc": "DMARC zapis",
|
||||
"spf": "SPF zapis",
|
||||
"dkim": "DKIM ključ"
|
||||
},
|
||||
"domain": {
|
||||
"screen_title": "Domena in DNS",
|
||||
"card_title": "Domena",
|
||||
|
@ -166,29 +143,19 @@
|
|||
"reupload_key": "Prisilna posodobitev ključa",
|
||||
"reuploaded_key": "Ključ v strežniku je bil posodobljen",
|
||||
"initialize": "Inicializacija",
|
||||
"waiting_for_rebuild": "Prvo varnostno kopijo boste lahko ustvarili v nekaj minutah.",
|
||||
"create_new": "Ustvarite novo varnostno kopijo",
|
||||
"creating": "Ustvarjanje nove varnostne kopije: {}%",
|
||||
"restoring": "Obnovitev iz varnostne kopije",
|
||||
"error_pending": "Strežnik je vrnil napako, preverite spodaj",
|
||||
"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.",
|
||||
"title": "E-naslov",
|
||||
"subtitle": "E-pošta za družbo in družino."
|
||||
"login_info": "Uporabite uporabniško ime in geslo iz zavihka uporabniki. Vrata IMAP: 143, STARTTLS. Vrata SMTP: 587, STARTTLS."
|
||||
},
|
||||
"password_manager": {
|
||||
"title": "Upravitelj gesel",
|
||||
"subtitle": "Osnova vaše varnosti. Bitwarden vam bo pomagal ustvarjati, shranjevati in prenašati gesla med napravami ter jih na zahtevo vnašati z uporabo samodejnega dopolnjevanja.",
|
||||
"login_info": "Na spletnem mestu boste morali ustvariti račun."
|
||||
},
|
||||
"video": {
|
||||
"title": "Videokonferenca",
|
||||
"subtitle": "Zoom in Google Meet sta dobra, vendar je Jitsi Meet vredna alternativa, ki vam daje tudi zagotovilo, da vam nihče ne prisluškuje.",
|
||||
"login_info": "Račun ni potreben."
|
||||
},
|
||||
"storage": {
|
||||
|
@ -209,9 +176,7 @@
|
|||
"extending_volume_error": "Ni uspelo zagnati razširitve shrambe.",
|
||||
"size": "Velikost",
|
||||
"data_migration_title": "Migracija podatkov",
|
||||
"start_migration_button": "Začetek migracije",
|
||||
"migration_process": "Selitev…",
|
||||
"migration_done": "Zaključek"
|
||||
"start_migration_button": "Začetek migracije"
|
||||
},
|
||||
"service_page": {
|
||||
"uses": "Uporablja {usage} na {volume}",
|
||||
|
@ -231,25 +196,15 @@
|
|||
"move": "Premik na drug zvezek"
|
||||
},
|
||||
"social_network": {
|
||||
"subtitle": "Težko je verjeti, vendar je mogoče ustvariti lastno družbeno omrežje z lastnimi pravili in občinstvom.",
|
||||
"title": "Družbeno omrežje",
|
||||
"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": {
|
||||
"title": "Shranjevanje v oblaku",
|
||||
"subtitle": "Storitvam v oblaku ne dovolite vpogleda v svoje podatke. Uporabite NextCloud - varen dom za vse svoje podatke.",
|
||||
"login_info": "Prijava skrbnika: admin, geslo je enako geslu glavnega uporabnika. Ustvarite nove uporabnike v skrbniškem vmesniku NextCloud."
|
||||
},
|
||||
"git": {
|
||||
"title": "Git Strežnik",
|
||||
"subtitle": "Zasebna alternativa Githubu, ki pripada vam, ne pa Microsoftu.",
|
||||
"login_info": "Na spletnem mestu morate ustvariti račun. Prvi uporabnik bo postal administrator."
|
||||
},
|
||||
"vpn": {
|
||||
"title": "VPN Strežnik",
|
||||
"subtitle": "Zasebni strežnik VPN"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 เซิฟเวอร์เวอร์ชั้น {}",
|
||||
"api_version_text": "API เซิฟเวอร์เวอร์ชั้น",
|
||||
"title": "เกี่ยวกับ",
|
||||
"application_version_text": "แอปพลิเคชั่น เวอร์ชั่น {}",
|
||||
"application_version_text": "แอปพลิเคชั่น เวอร์ชั่น",
|
||||
"privacy_policy": "นโยบายความเป็นส่วนตัว"
|
||||
},
|
||||
"application_settings": {
|
||||
|
@ -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": "ดึงข้อมูลรายการสํารองข้อมูลอีกครั้ง"
|
||||
},
|
||||
|
@ -158,20 +145,6 @@
|
|||
},
|
||||
"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": "การใช้งานดิสก์ปกติ",
|
||||
|
@ -190,9 +163,7 @@
|
|||
"size": "ขนาด",
|
||||
"data_migration_title": "การโยกย้ายข้อมูล",
|
||||
"data_migration_notice": "ระหว่างการย้ายข้อมูล ทุกเซิร์ฟเวอร์จะถูกปิด",
|
||||
"start_migration_button": "เริ่มการย้ายข้อมูล",
|
||||
"migration_process": "กำลังย้ายข้อมูล…",
|
||||
"migration_done": "เสร็จสิ้น"
|
||||
"start_migration_button": "เริ่มการย้ายข้อมูล"
|
||||
},
|
||||
"not_ready_card": {
|
||||
"in_menu": "เซิร์ฟเวอร์ยังไม่ถูกติดตั้งในตอนนี้. โปรดใช้การติดตั้งอย่างง่ายในการติดตั้ง"
|
||||
|
@ -228,7 +199,6 @@
|
|||
"new_user_info_note": "ผู้ใช้ใหม่จะได้รับสิทธิ์เข้าถึงบริการทั้งหมดโดยอัตโนมัติ",
|
||||
"reset_password": "รีเซ็ตรหัสผ่าน",
|
||||
"account": "บัญชี",
|
||||
"send_registration_data": "แบ่งปันข้อมูลรับรองการเข้าสู่ระบบ",
|
||||
"could_not_fetch_description": "โปรดตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณแล้วลองอีกครั้ง",
|
||||
"could_not_create_user": "สร้างผู้ใช้ไม่ได้",
|
||||
"could_not_delete_user": "ลบผู้ใช้ไม่ได้",
|
||||
|
@ -236,13 +206,9 @@
|
|||
"email_login": "เข้าสู่ระบบอีเมล"
|
||||
},
|
||||
"social_network": {
|
||||
"subtitle": "มันยากที่จะเชื่อ แต่มันก็เป็นไปได้ที่จะสร้างโซเชียลเน็ตเวิร์กของคุณเอง โดยมีกฎและกลุ่มเป้าหมายของคุณเอง",
|
||||
"title": "เครือข่ายสังคม",
|
||||
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์"
|
||||
},
|
||||
"git": {
|
||||
"subtitle": "ทางเลือกส่วนตัวสำหรับ Github ที่เป็นของคุณ แต่ไม่ใช่ของ Microsoft",
|
||||
"title": "Git Server",
|
||||
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์ ผู้ใช้คนแรกจะกลายเป็นผู้ดูแลระบบ"
|
||||
},
|
||||
"initializing": {
|
||||
|
@ -268,27 +234,15 @@
|
|||
"provider_bad_key_error": "คีย์ API ของผู้ให้บริการไม่ถูกต้อง"
|
||||
},
|
||||
"mail": {
|
||||
"title": "อีเมล",
|
||||
"subtitle": "อีเมลสำหรับบริษัทและครอบครัว",
|
||||
"login_info": "ใช้ชื่อผู้ใช้และรหัสผ่านจากแท็บผู้ใช้ พอร์ต IMAP คือ 143 พร้อม STARTTLS, พอร์ต SMTP คือ 587 พร้อม STARTTLS."
|
||||
},
|
||||
"password_manager": {
|
||||
"title": "การจัดการรหัสผ่าน",
|
||||
"subtitle": "ฐานความปลอดภัยของคุณ Bitwarden จะช่วยคุณสร้าง จัดเก็บ และย้ายรหัสผ่านระหว่างอุปกรณ์ ตลอดจนป้อนรหัสผ่าน เมื่อมีการร้องขอโดยใช้การเติมข้อความอัตโนมัติ",
|
||||
"login_info": "คุณจะต้องสร้างบัญชีบนเว็บไซต์"
|
||||
},
|
||||
"video": {
|
||||
"title": "การประชุมแบบวิดีโอ",
|
||||
"subtitle": "Zoom และ Google Meet นั้นดี แต่ Jitsi Meet เป็นทางเลือกที่คุ้มค่าซึ่งยังช่วยให้คุณมั่นใจได้ว่าไม่มีใครฟังคุณ",
|
||||
"login_info": "ไม่จะเป็นต้องใช้บัญชี"
|
||||
},
|
||||
"cloud": {
|
||||
"title": "การจัดเก็บบนคลาวด์",
|
||||
"subtitle": "ไม่อนุญาตให้บริการคลาวด์อ่านข้อมูลของคุณโดยใช้ NextCloud",
|
||||
"login_info": "การเข้าสู่ระบบคือผู้ดูแลระบบ รหัสผ่านเหมือนกับผู้ใช้หลักของคุณ สร้างบัญชีใหม่ในอินเทอร์เฟซ Nextcloud"
|
||||
},
|
||||
"vpn": {
|
||||
"title": "เซิฟเวอร์ VPN",
|
||||
"subtitle": "เซิฟเวอร์ VPN ส่วนตัว"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"username": "І'мя користовача",
|
||||
"loading": "Завантаження…",
|
||||
"later": "Перейти до налаштувати пізніше",
|
||||
"connect_to_existing": "Підключитись до існуючого серверу",
|
||||
"connect_to_existing": "У мене вже є SelfPrivacy сервер!",
|
||||
"reset": "Скинути",
|
||||
"details": "Подробиці",
|
||||
"no_data": "Немає данних",
|
||||
|
@ -34,7 +34,9 @@
|
|||
"close": "Закрити",
|
||||
"connect": "Підключіться",
|
||||
"app_name": "SelfPrivacy",
|
||||
"copied_to_clipboard": "Скопійовано в буфер обміну!"
|
||||
"copied_to_clipboard": "Скопійовано в буфер обміну!",
|
||||
"please_connect": "Будь ласка, підключіть свій сервер, домен та провайдера DNS, щоб зануритися!",
|
||||
"network_error": "Помилка мережі"
|
||||
},
|
||||
"locale": "ua",
|
||||
"application_settings": {
|
||||
|
@ -55,19 +57,13 @@
|
|||
"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": {
|
||||
|
@ -75,12 +71,9 @@
|
|||
"waiting": "Очікування ініціалізації…",
|
||||
"copy": "Copie"
|
||||
},
|
||||
"about_us_page": {
|
||||
"title": "Про нас"
|
||||
},
|
||||
"about_application_page": {
|
||||
"application_version_text": "Версія додатку {}",
|
||||
"api_version_text": "Версія API сервера {}",
|
||||
"application_version_text": "Версія додатку",
|
||||
"api_version_text": "Версія API сервера",
|
||||
"privacy_policy": "Політика конфіденційності",
|
||||
"title": "Про нас"
|
||||
},
|
||||
|
@ -103,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": "Почнемо з сервера.",
|
||||
|
@ -133,12 +125,9 @@
|
|||
"choose_server_type_ram": "{} ГБ ОЗУ",
|
||||
"choose_server_type_storage": "{} ГБ системного сховища",
|
||||
"choose_server_type_payment_per_month": "{} щомісячно",
|
||||
"no_server_types_found": "Не знайдено доступних типів серверів. Переконайтеся, що ваш обліковий запис доступний і спробуйте змінити розташування вашого сервера.",
|
||||
"backblaze_bad_key_error": "Інформація про зберігання Backblaze є недійсною",
|
||||
"select_dns": "Тепер давайте оберемо DNS-провайдера",
|
||||
"manage_domain_dns": "Для управління DNS домену",
|
||||
"use_this_domain": "Скористатися цим доменом?",
|
||||
"connect_backblaze_storage": "Підключити Backblaze сховище",
|
||||
"no_connected_domains": "Наразі немає пов'язаних доменів",
|
||||
"save_domain": "Зберегти домен",
|
||||
"final": "Останній крок",
|
||||
|
@ -150,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": "З’ єднатися з існуючим сервером",
|
||||
|
@ -171,7 +181,7 @@
|
|||
"fallback_select_description": "Що у вас є? Виберіть перший доступний варіант:",
|
||||
"fallback_select_token_copy": "Копія токена автентифікації з іншої версії застосунку.",
|
||||
"fallback_select_root_ssh": "Root SSH доступ до сервера.",
|
||||
"fallback_select_provider_console": "Доступ до серверної консолі мого продiвера.",
|
||||
"fallback_select_provider_console": "Доступ до серверної консолі мого провайдера.",
|
||||
"authorization_failed": "Не можу авторизуватись за цим ключем",
|
||||
"fallback_select_provider_console_hint": "Наприклад: Hetzner.",
|
||||
"provider_connected": "Підключіться до {}",
|
||||
|
@ -228,21 +238,8 @@
|
|||
"monthly_cost": "Щомісячна вартість",
|
||||
"location": "Місцезнаходження",
|
||||
"server_provider": "Провайдер сервера",
|
||||
"dns_provider": "Провайдер DNS"
|
||||
},
|
||||
"record": {
|
||||
"api": "SelfPrivacy API",
|
||||
"cloud": "Файлове сховище",
|
||||
"git": "Git-сервер",
|
||||
"social": "Соціальна мережа",
|
||||
"password": "Менеджер паролів",
|
||||
"vpn": "VPN",
|
||||
"mx": "MX-запис",
|
||||
"dmarc": "DMARC-запис",
|
||||
"spf": "SPF-запис",
|
||||
"meet": "Відео конференція",
|
||||
"dkim": "DKIM ключі",
|
||||
"root": "Кореневий домен"
|
||||
"dns_provider": "Провайдер DNS",
|
||||
"pricing_error": "Не вдалося отримати ціни постачальника"
|
||||
},
|
||||
"domain": {
|
||||
"card_title": "Домен",
|
||||
|
@ -266,14 +263,10 @@
|
|||
"restore": "Відновити з резервної копії",
|
||||
"no_backups": "Ще немає резервних копій",
|
||||
"create_new": "Створити нову резервну копію",
|
||||
"creating": "Створення нової резервної копії: {}%",
|
||||
"error_pending": "Помилка відновлення сервера, перевірте це нижче",
|
||||
"refresh": "Оновити статус",
|
||||
"refetch_backups": "Повторно отримати список резервних копій",
|
||||
"refetching_list": "За кілька хвилин список буде оновлений",
|
||||
"description": "Врятує ваш день у разі аварії: хакерська атака, видаленя серверу, тощо.",
|
||||
"waiting_for_rebuild": "Ви зможете створити свою першу резервну копію через кілька хвилин.",
|
||||
"restoring": "Відновлення з резервної копії",
|
||||
"restore_alert": "Ви збираєтеся відновити з резервної копії. створеної на {}. Усі поточні дані будуть втрачені. Ви згодні?",
|
||||
"refetch_backups_subtitle": "Скинути кеш і запросити дані у провайдера. Може спричинити додаткові витрати.",
|
||||
"reupload_key_subtitle": "Ще раз проініціалізує сховище резервних копій. Використовуйте, якщо щось зламалося.",
|
||||
|
@ -288,15 +281,96 @@
|
|||
"autobackup_period_never": "Автоматичне копіювання вимкнено",
|
||||
"autobackup_period_every": "Раз у {period}",
|
||||
"autobackup_period_disable": "Вимкнути автоматичні копіювання",
|
||||
"autobackup_custom": "Інше",
|
||||
"autobackup_custom_hint": "Введіть період у хвилинах",
|
||||
"autobackup_set_period": "Встановити період",
|
||||
"autobackup_period_set": "Період встановлено",
|
||||
"backups_encryption_key": "Ключ шифрування",
|
||||
"backups_encryption_key_subtitle": "Зберігайте його в безпечному місці.",
|
||||
"backups_encryption_key_copy": "Скопіюйте ключ шифрування",
|
||||
"card_subtitle": "Керуйте резервними копіями",
|
||||
"select_all": "Копіювати все"
|
||||
"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": "Серверне сховище",
|
||||
|
@ -308,17 +382,21 @@
|
|||
"kb": "{} КБ",
|
||||
"bytes": "Байти",
|
||||
"extend_volume_button": "Збільшити обсяг",
|
||||
"extending_volume_price_info": "Ціна включає ПДВ і оцінюється з даних ціноутворення, наданих Hetzner. Сервер буде перезавантажений після зміни розміру.",
|
||||
"extending_volume_price_info": "Ціна включає ПДВ і оцінюється з даних ціноутворення, наданих сервіс-провайдером. Сервер буде перезавантажений після зміни розміру.",
|
||||
"extending_volume_error": "Не вдалося ініціалізувати розширення обсягу.",
|
||||
"size": "Розмір",
|
||||
"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": "Сервер ще не налаштовано. Будь ласка, завершіть налаштування за допомогою майстра налаштування для подальшої роботи."
|
||||
|
@ -338,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": "Новий користувач",
|
||||
|
@ -384,7 +448,6 @@
|
|||
"delete_confirm_question": "Ви згодні?",
|
||||
"reset_password": "Скинути пароль",
|
||||
"account": "Аккаунт",
|
||||
"send_registration_data": "Поділитися реєстраційними даними",
|
||||
"could_not_fetch_users": "Не вдалося отримати список користувачів",
|
||||
"refresh_users": "Оновити список користувачів",
|
||||
"could_not_create_user": "Не зміг створити користувача",
|
||||
|
@ -393,7 +456,9 @@
|
|||
"email_login": "Увійти через Email",
|
||||
"could_not_fetch_description": "Перевірте підключення до Інтернету і спробуйте ще раз",
|
||||
"username_rule": "Ім'я користувача має містити лише малі латинські літери, цифри і підкреслення, не слід починати з цифри",
|
||||
"no_ssh_notice": "Для цього користувача створюються тільки поштові та SSH-акаунти. Єдина реєстрація для всіх сервісів незабаром."
|
||||
"no_ssh_notice": "Для цього користувача створюються тільки поштові та SSH-акаунти. Єдина реєстрація для всіх сервісів незабаром.",
|
||||
"user_already_exists": "Користувач з таким іменем уже існує",
|
||||
"details_title": "Користувач"
|
||||
},
|
||||
"devices": {
|
||||
"main_screen": {
|
||||
|
@ -454,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": "{} сек"
|
||||
|
@ -482,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"
|
||||
}
|
||||
}
|
||||
|
|
606
assets/translations/zh-Hans.json
Normal 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,启用STARTTLS;SMTP端口为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"
|
||||
}
|
1
assets/translations/zh-Hant.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
84
fastlane/metadata/android/en-US/changelogs/0.11.0.txt
Normal file
|
@ -0,0 +1,84 @@
|
|||
### Features
|
||||
|
||||
- Enabled the following languages:
|
||||
- Arabic
|
||||
- Estonian
|
||||
- Kazakh
|
||||
- Chinese (Simplified)
|
||||
|
||||
- **Server management**: Add ssh settings ([#477](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/477))
|
||||
- **UI**: Server settings is now a separate screen ([#477](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/477))
|
||||
- **UI**: The new About page now contains links to our support channels ([#464](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/464), resolves [#339](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/339) and [#170](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/170))
|
||||
- **Jobs**: Now you can track the result of jobs, and the progress of the server rebuilds and upgrades ([#440](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/440), resolves [#254](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/254))
|
||||
- **UI**: On iOS, use the Curpentino bottom navbar ([#483](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/483))
|
||||
- **UI**: Use Curpentino widgets where possible on iOS ([#483](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/483))
|
||||
- **Jobs**: Block starting client-side jobs when the server is rebuilding or moving a service ([#477](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/477))
|
||||
- **UI**: On the bottom bar, show all labels, not only the selected one ([#458](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/458), resolves [#454](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/454))
|
||||
- **UI**: Move provider card titles to the top row ([#449](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/449), resolves [#448](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/448))
|
||||
- Unified management of API connection to the server: the app should be now more reactive to changes ([#440](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/440))
|
||||
- **UI**: Onboarding page now looks better on big screens ([#444](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/444))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **UI**: Card titles no longer overflow on small screens ([#483](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/483), resolves [#476](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/476))
|
||||
- **DNS**: Detect the situation when we have faulty link-local IPv6 records ([#473](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/473))
|
||||
- **DNS**: Do not include faulty link-local DNS records in the list of found records ([#475](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/475))
|
||||
- **UI**: Fix the empty server confirmation screen during recovery ([#474](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/474))
|
||||
- **UI**: Fix the misleading value of "Do not verify TLS" ([#468](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/468))
|
||||
- **Jobs**: When you return the server settings value back, the job to change the setting is deleted ([#440](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/440), resolves [#166](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/166))
|
||||
- **Jobs**: When removing all completed jobs, optimistically delete them in UI first ([#440](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/440), resolves [#277](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/277))
|
||||
|
||||
|
||||
### Other
|
||||
- Binds migration screen is now in Developer settings, as it is no longer needed on API 3.0, but might still be helpful for stuck servers.
|
||||
- Remove the server deletion function ([#484](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/484))
|
||||
|
||||
|
||||
### Translation contributions
|
||||
|
||||
|
||||
* Kazakh
|
||||
|
||||
* TabithiS (133)
|
||||
|
||||
* Chinese (Simplified)
|
||||
|
||||
* Nil (545)
|
||||
|
||||
* Polish
|
||||
|
||||
* TabithiS (52)
|
||||
|
||||
* Russian
|
||||
|
||||
* Inex Code (43)
|
||||
|
||||
* Hebrew
|
||||
|
||||
* Yaron (17)
|
||||
|
||||
* Estonian
|
||||
|
||||
* Dmitri B. (536)
|
||||
|
||||
* Thai
|
||||
|
||||
* Inex Code (2)
|
||||
|
||||
* German
|
||||
|
||||
* Inex Code (14)
|
||||
* Based on anonymous suggestions
|
||||
|
||||
* Ukrainian
|
||||
|
||||
* Nagibator Nagibuchiy (18)
|
||||
* TabithiS (26)
|
||||
* Meko (93)
|
||||
|
||||
* Arabic
|
||||
|
||||
* Deem Alosili (656)
|
||||
|
||||
|
|
@ -11,17 +11,15 @@ PODS:
|
|||
- Flutter
|
||||
- package_info (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_ios (0.0.1):
|
||||
- path_provider_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- ReachabilitySwift (5.0.0)
|
||||
- share_plus (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_ios (0.0.1):
|
||||
- shared_preferences_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- wakelock (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
|
||||
|
@ -30,11 +28,9 @@ DEPENDENCIES:
|
|||
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||
- local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`)
|
||||
- package_info (from `.symlinks/plugins/package_info/ios`)
|
||||
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
|
||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- wakelock (from `.symlinks/plugins/wakelock/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
|
@ -53,31 +49,25 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/local_auth_ios/ios"
|
||||
package_info:
|
||||
:path: ".symlinks/plugins/package_info/ios"
|
||||
path_provider_ios:
|
||||
:path: ".symlinks/plugins/path_provider_ios/ios"
|
||||
share_plus:
|
||||
:path: ".symlinks/plugins/share_plus/ios"
|
||||
shared_preferences_ios:
|
||||
:path: ".symlinks/plugins/shared_preferences_ios/ios"
|
||||
path_provider_foundation:
|
||||
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
||||
shared_preferences_foundation:
|
||||
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
wakelock:
|
||||
:path: ".symlinks/plugins/wakelock/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e
|
||||
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
||||
connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d
|
||||
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
|
||||
local_auth_ios: 0d333dde7780f669e66f19d2ff6005f3ea84008d
|
||||
local_auth_ios: c6cf091ded637a88f24f86a8875d8b0f526e2605
|
||||
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
|
||||
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
||||
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
|
||||
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
|
||||
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
|
||||
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
|
||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||
wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
|
||||
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
|
||||
url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b
|
||||
|
||||
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
COCOAPODS: 1.15.2
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
|
@ -159,7 +159,7 @@
|
|||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1300;
|
||||
LastUpgradeCheck = 1430;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
|
@ -203,10 +203,12 @@
|
|||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
|
||||
);
|
||||
name = "Thin Binary";
|
||||
outputPaths = (
|
||||
|
@ -239,6 +241,7 @@
|
|||
};
|
||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
|
@ -360,14 +363,14 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 46723VZHWZ;
|
||||
DEVELOPMENT_TEAM = P2P92N48K5;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.selfprivacy;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.app;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
|
@ -490,14 +493,14 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 46723VZHWZ;
|
||||
DEVELOPMENT_TEAM = P2P92N48K5;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.selfprivacy;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.app;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
|
@ -514,14 +517,14 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 46723VZHWZ;
|
||||
DEVELOPMENT_TEAM = P2P92N48K5;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.selfprivacy;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.selfprivacy.app;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1300"
|
||||
LastUpgradeVersion = "1430"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x.png
Normal file
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 565 B |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png
Normal file
After Width: | Height: | Size: 946 B |
After Width: | Height: | Size: 315 B |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png
Normal file
After Width: | Height: | Size: 869 B |
After Width: | Height: | Size: 869 B |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 490 B |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png
Normal file
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 1 KiB |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 2.7 KiB |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.9 KiB |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png
Normal file
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 46 KiB |
BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
|
@ -1,122 +1,134 @@
|
|||
{
|
||||
"images" : [
|
||||
"images": [
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon@2x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "2x",
|
||||
"size": "60x60"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@3x.png",
|
||||
"scale" : "3x"
|
||||
"filename": "AppIcon@3x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "3x",
|
||||
"size": "60x60"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "1x",
|
||||
"size": "76x76"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon@2x~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "2x",
|
||||
"size": "76x76"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@3x.png",
|
||||
"scale" : "3x"
|
||||
"filename": "AppIcon-83.5@2x~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "2x",
|
||||
"size": "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-40@2x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "2x",
|
||||
"size": "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@3x.png",
|
||||
"scale" : "3x"
|
||||
"filename": "AppIcon-40@3x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "3x",
|
||||
"size": "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-40~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "1x",
|
||||
"size": "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@3x.png",
|
||||
"scale" : "3x"
|
||||
"filename": "AppIcon-40@2x~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "2x",
|
||||
"size": "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon-20@2x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "2x",
|
||||
"size": "20x20"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-20@3x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "3x",
|
||||
"size": "20x20"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon-20~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "1x",
|
||||
"size": "20x20"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-20@2x~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "2x",
|
||||
"size": "20x20"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon-29.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "1x",
|
||||
"size": "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-29@2x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "2x",
|
||||
"size": "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon-29@3x.png",
|
||||
"idiom": "iphone",
|
||||
"scale": "3x",
|
||||
"size": "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-29~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "1x",
|
||||
"size": "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
||||
"scale" : "2x"
|
||||
"filename": "AppIcon-29@2x~ipad.png",
|
||||
"idiom": "ipad",
|
||||
"scale": "2x",
|
||||
"size": "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "Icon-App-1024x1024@1x.png",
|
||||
"scale" : "1x"
|
||||
"filename": "AppIcon-60@2x~car.png",
|
||||
"idiom": "car",
|
||||
"scale": "2x",
|
||||
"size": "60x60"
|
||||
},
|
||||
{
|
||||
"filename": "AppIcon-60@3x~car.png",
|
||||
"idiom": "car",
|
||||
"scale": "3x",
|
||||
"size": "60x60"
|
||||
},
|
||||
{
|
||||
"filename": "AppIcon~ios-marketing.png",
|
||||
"idiom": "ios-marketing",
|
||||
"scale": "1x",
|
||||
"size": "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"info": {
|
||||
"author": "iconkitchen",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 852 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 973 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.1 KiB |
|
@ -2,6 +2,8 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
|
@ -24,6 +26,8 @@
|
|||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
|
@ -43,9 +47,5 @@
|
|||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -11,28 +11,32 @@ class Localization extends StatelessWidget {
|
|||
@override
|
||||
Widget build(final BuildContext context) => EasyLocalization(
|
||||
supportedLocales: const [
|
||||
Locale('ru'),
|
||||
Locale('en'),
|
||||
Locale('uk'),
|
||||
Locale('de'),
|
||||
Locale('fr'),
|
||||
Locale('es'),
|
||||
Locale('cs'),
|
||||
Locale('pl'),
|
||||
Locale('th'),
|
||||
Locale('ar'),
|
||||
Locale('az'),
|
||||
Locale('be'),
|
||||
Locale('cs'),
|
||||
Locale('de'),
|
||||
Locale('en'),
|
||||
Locale('es'),
|
||||
Locale('et'),
|
||||
Locale('fr'),
|
||||
Locale('he'),
|
||||
Locale('kk'),
|
||||
Locale('lv'),
|
||||
Locale('mk'),
|
||||
Locale('pl'),
|
||||
Locale('ru'),
|
||||
Locale('sk'),
|
||||
Locale('sl'),
|
||||
Locale('th'),
|
||||
Locale('uk'),
|
||||
Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans'),
|
||||
],
|
||||
path: 'assets/translations',
|
||||
fallbackLocale: const Locale('en'),
|
||||
useFallbackTranslations: true,
|
||||
saveLocale: false,
|
||||
useOnlyLangCode: true,
|
||||
useOnlyLangCode: false,
|
||||
child: child!,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -62,3 +62,13 @@ mutation ChangeAutoUpgradeSettings($settings: AutoUpgradeSettingsInput!) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mutation ChangeSshSettings($settings: SSHSettingsInput!) {
|
||||
system {
|
||||
changeSshSettings(settings: $settings) {
|
||||
...basicMutationReturnFields
|
||||
enable
|
||||
passwordAuthentication
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4123,3 +4123,783 @@ class _CopyWithStubImpl$Mutation$ChangeAutoUpgradeSettings$system$changeAutoUpgr
|
|||
}) =>
|
||||
_res;
|
||||
}
|
||||
|
||||
class Variables$Mutation$ChangeSshSettings {
|
||||
factory Variables$Mutation$ChangeSshSettings(
|
||||
{required Input$SSHSettingsInput settings}) =>
|
||||
Variables$Mutation$ChangeSshSettings._({
|
||||
r'settings': settings,
|
||||
});
|
||||
|
||||
Variables$Mutation$ChangeSshSettings._(this._$data);
|
||||
|
||||
factory Variables$Mutation$ChangeSshSettings.fromJson(
|
||||
Map<String, dynamic> data) {
|
||||
final result$data = <String, dynamic>{};
|
||||
final l$settings = data['settings'];
|
||||
result$data['settings'] =
|
||||
Input$SSHSettingsInput.fromJson((l$settings as Map<String, dynamic>));
|
||||
return Variables$Mutation$ChangeSshSettings._(result$data);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$data;
|
||||
|
||||
Input$SSHSettingsInput get settings =>
|
||||
(_$data['settings'] as Input$SSHSettingsInput);
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final result$data = <String, dynamic>{};
|
||||
final l$settings = settings;
|
||||
result$data['settings'] = l$settings.toJson();
|
||||
return result$data;
|
||||
}
|
||||
|
||||
CopyWith$Variables$Mutation$ChangeSshSettings<
|
||||
Variables$Mutation$ChangeSshSettings>
|
||||
get copyWith => CopyWith$Variables$Mutation$ChangeSshSettings(
|
||||
this,
|
||||
(i) => i,
|
||||
);
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
if (identical(this, other)) {
|
||||
return true;
|
||||
}
|
||||
if (!(other is Variables$Mutation$ChangeSshSettings) ||
|
||||
runtimeType != other.runtimeType) {
|
||||
return false;
|
||||
}
|
||||
final l$settings = settings;
|
||||
final lOther$settings = other.settings;
|
||||
if (l$settings != lOther$settings) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
final l$settings = settings;
|
||||
return Object.hashAll([l$settings]);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CopyWith$Variables$Mutation$ChangeSshSettings<TRes> {
|
||||
factory CopyWith$Variables$Mutation$ChangeSshSettings(
|
||||
Variables$Mutation$ChangeSshSettings instance,
|
||||
TRes Function(Variables$Mutation$ChangeSshSettings) then,
|
||||
) = _CopyWithImpl$Variables$Mutation$ChangeSshSettings;
|
||||
|
||||
factory CopyWith$Variables$Mutation$ChangeSshSettings.stub(TRes res) =
|
||||
_CopyWithStubImpl$Variables$Mutation$ChangeSshSettings;
|
||||
|
||||
TRes call({Input$SSHSettingsInput? settings});
|
||||
}
|
||||
|
||||
class _CopyWithImpl$Variables$Mutation$ChangeSshSettings<TRes>
|
||||
implements CopyWith$Variables$Mutation$ChangeSshSettings<TRes> {
|
||||
_CopyWithImpl$Variables$Mutation$ChangeSshSettings(
|
||||
this._instance,
|
||||
this._then,
|
||||
);
|
||||
|
||||
final Variables$Mutation$ChangeSshSettings _instance;
|
||||
|
||||
final TRes Function(Variables$Mutation$ChangeSshSettings) _then;
|
||||
|
||||
static const _undefined = <dynamic, dynamic>{};
|
||||
|
||||
TRes call({Object? settings = _undefined}) =>
|
||||
_then(Variables$Mutation$ChangeSshSettings._({
|
||||
..._instance._$data,
|
||||
if (settings != _undefined && settings != null)
|
||||
'settings': (settings as Input$SSHSettingsInput),
|
||||
}));
|
||||
}
|
||||
|
||||
class _CopyWithStubImpl$Variables$Mutation$ChangeSshSettings<TRes>
|
||||
implements CopyWith$Variables$Mutation$ChangeSshSettings<TRes> {
|
||||
_CopyWithStubImpl$Variables$Mutation$ChangeSshSettings(this._res);
|
||||
|
||||
TRes _res;
|
||||
|
||||
call({Input$SSHSettingsInput? settings}) => _res;
|
||||
}
|
||||
|
||||
class Mutation$ChangeSshSettings {
|
||||
Mutation$ChangeSshSettings({
|
||||
required this.system,
|
||||
this.$__typename = 'Mutation',
|
||||
});
|
||||
|
||||
factory Mutation$ChangeSshSettings.fromJson(Map<String, dynamic> json) {
|
||||
final l$system = json['system'];
|
||||
final l$$__typename = json['__typename'];
|
||||
return Mutation$ChangeSshSettings(
|
||||
system: Mutation$ChangeSshSettings$system.fromJson(
|
||||
(l$system as Map<String, dynamic>)),
|
||||
$__typename: (l$$__typename as String),
|
||||
);
|
||||
}
|
||||
|
||||
final Mutation$ChangeSshSettings$system system;
|
||||
|
||||
final String $__typename;
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final _resultData = <String, dynamic>{};
|
||||
final l$system = system;
|
||||
_resultData['system'] = l$system.toJson();
|
||||
final l$$__typename = $__typename;
|
||||
_resultData['__typename'] = l$$__typename;
|
||||
return _resultData;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
final l$system = system;
|
||||
final l$$__typename = $__typename;
|
||||
return Object.hashAll([
|
||||
l$system,
|
||||
l$$__typename,
|
||||
]);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
if (identical(this, other)) {
|
||||
return true;
|
||||
}
|
||||
if (!(other is Mutation$ChangeSshSettings) ||
|
||||
runtimeType != other.runtimeType) {
|
||||
return false;
|
||||
}
|
||||
final l$system = system;
|
||||
final lOther$system = other.system;
|
||||
if (l$system != lOther$system) {
|
||||
return false;
|
||||
}
|
||||
final l$$__typename = $__typename;
|
||||
final lOther$$__typename = other.$__typename;
|
||||
if (l$$__typename != lOther$$__typename) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
extension UtilityExtension$Mutation$ChangeSshSettings
|
||||
on Mutation$ChangeSshSettings {
|
||||
CopyWith$Mutation$ChangeSshSettings<Mutation$ChangeSshSettings>
|
||||
get copyWith => CopyWith$Mutation$ChangeSshSettings(
|
||||
this,
|
||||
(i) => i,
|
||||
);
|
||||
}
|
||||
|
||||
abstract class CopyWith$Mutation$ChangeSshSettings<TRes> {
|
||||
factory CopyWith$Mutation$ChangeSshSettings(
|
||||
Mutation$ChangeSshSettings instance,
|
||||
TRes Function(Mutation$ChangeSshSettings) then,
|
||||
) = _CopyWithImpl$Mutation$ChangeSshSettings;
|
||||
|
||||
factory CopyWith$Mutation$ChangeSshSettings.stub(TRes res) =
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings;
|
||||
|
||||
TRes call({
|
||||
Mutation$ChangeSshSettings$system? system,
|
||||
String? $__typename,
|
||||
});
|
||||
CopyWith$Mutation$ChangeSshSettings$system<TRes> get system;
|
||||
}
|
||||
|
||||
class _CopyWithImpl$Mutation$ChangeSshSettings<TRes>
|
||||
implements CopyWith$Mutation$ChangeSshSettings<TRes> {
|
||||
_CopyWithImpl$Mutation$ChangeSshSettings(
|
||||
this._instance,
|
||||
this._then,
|
||||
);
|
||||
|
||||
final Mutation$ChangeSshSettings _instance;
|
||||
|
||||
final TRes Function(Mutation$ChangeSshSettings) _then;
|
||||
|
||||
static const _undefined = <dynamic, dynamic>{};
|
||||
|
||||
TRes call({
|
||||
Object? system = _undefined,
|
||||
Object? $__typename = _undefined,
|
||||
}) =>
|
||||
_then(Mutation$ChangeSshSettings(
|
||||
system: system == _undefined || system == null
|
||||
? _instance.system
|
||||
: (system as Mutation$ChangeSshSettings$system),
|
||||
$__typename: $__typename == _undefined || $__typename == null
|
||||
? _instance.$__typename
|
||||
: ($__typename as String),
|
||||
));
|
||||
|
||||
CopyWith$Mutation$ChangeSshSettings$system<TRes> get system {
|
||||
final local$system = _instance.system;
|
||||
return CopyWith$Mutation$ChangeSshSettings$system(
|
||||
local$system, (e) => call(system: e));
|
||||
}
|
||||
}
|
||||
|
||||
class _CopyWithStubImpl$Mutation$ChangeSshSettings<TRes>
|
||||
implements CopyWith$Mutation$ChangeSshSettings<TRes> {
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings(this._res);
|
||||
|
||||
TRes _res;
|
||||
|
||||
call({
|
||||
Mutation$ChangeSshSettings$system? system,
|
||||
String? $__typename,
|
||||
}) =>
|
||||
_res;
|
||||
|
||||
CopyWith$Mutation$ChangeSshSettings$system<TRes> get system =>
|
||||
CopyWith$Mutation$ChangeSshSettings$system.stub(_res);
|
||||
}
|
||||
|
||||
const documentNodeMutationChangeSshSettings = DocumentNode(definitions: [
|
||||
OperationDefinitionNode(
|
||||
type: OperationType.mutation,
|
||||
name: NameNode(value: 'ChangeSshSettings'),
|
||||
variableDefinitions: [
|
||||
VariableDefinitionNode(
|
||||
variable: VariableNode(name: NameNode(value: 'settings')),
|
||||
type: NamedTypeNode(
|
||||
name: NameNode(value: 'SSHSettingsInput'),
|
||||
isNonNull: true,
|
||||
),
|
||||
defaultValue: DefaultValueNode(value: null),
|
||||
directives: [],
|
||||
)
|
||||
],
|
||||
directives: [],
|
||||
selectionSet: SelectionSetNode(selections: [
|
||||
FieldNode(
|
||||
name: NameNode(value: 'system'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: SelectionSetNode(selections: [
|
||||
FieldNode(
|
||||
name: NameNode(value: 'changeSshSettings'),
|
||||
alias: null,
|
||||
arguments: [
|
||||
ArgumentNode(
|
||||
name: NameNode(value: 'settings'),
|
||||
value: VariableNode(name: NameNode(value: 'settings')),
|
||||
)
|
||||
],
|
||||
directives: [],
|
||||
selectionSet: SelectionSetNode(selections: [
|
||||
FragmentSpreadNode(
|
||||
name: NameNode(value: 'basicMutationReturnFields'),
|
||||
directives: [],
|
||||
),
|
||||
FieldNode(
|
||||
name: NameNode(value: 'enable'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: null,
|
||||
),
|
||||
FieldNode(
|
||||
name: NameNode(value: 'passwordAuthentication'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: null,
|
||||
),
|
||||
FieldNode(
|
||||
name: NameNode(value: '__typename'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: null,
|
||||
),
|
||||
]),
|
||||
),
|
||||
FieldNode(
|
||||
name: NameNode(value: '__typename'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: null,
|
||||
),
|
||||
]),
|
||||
),
|
||||
FieldNode(
|
||||
name: NameNode(value: '__typename'),
|
||||
alias: null,
|
||||
arguments: [],
|
||||
directives: [],
|
||||
selectionSet: null,
|
||||
),
|
||||
]),
|
||||
),
|
||||
fragmentDefinitionbasicMutationReturnFields,
|
||||
]);
|
||||
Mutation$ChangeSshSettings _parserFn$Mutation$ChangeSshSettings(
|
||||
Map<String, dynamic> data) =>
|
||||
Mutation$ChangeSshSettings.fromJson(data);
|
||||
typedef OnMutationCompleted$Mutation$ChangeSshSettings = FutureOr<void>
|
||||
Function(
|
||||
Map<String, dynamic>?,
|
||||
Mutation$ChangeSshSettings?,
|
||||
);
|
||||
|
||||
class Options$Mutation$ChangeSshSettings
|
||||
extends graphql.MutationOptions<Mutation$ChangeSshSettings> {
|
||||
Options$Mutation$ChangeSshSettings({
|
||||
String? operationName,
|
||||
required Variables$Mutation$ChangeSshSettings variables,
|
||||
graphql.FetchPolicy? fetchPolicy,
|
||||
graphql.ErrorPolicy? errorPolicy,
|
||||
graphql.CacheRereadPolicy? cacheRereadPolicy,
|
||||
Object? optimisticResult,
|
||||
Mutation$ChangeSshSettings? typedOptimisticResult,
|
||||
graphql.Context? context,
|
||||
OnMutationCompleted$Mutation$ChangeSshSettings? onCompleted,
|
||||
graphql.OnMutationUpdate<Mutation$ChangeSshSettings>? update,
|
||||
graphql.OnError? onError,
|
||||
}) : onCompletedWithParsed = onCompleted,
|
||||
super(
|
||||
variables: variables.toJson(),
|
||||
operationName: operationName,
|
||||
fetchPolicy: fetchPolicy,
|
||||
errorPolicy: errorPolicy,
|
||||
cacheRereadPolicy: cacheRereadPolicy,
|
||||
optimisticResult: optimisticResult ?? typedOptimisticResult?.toJson(),
|
||||
context: context,
|
||||
onCompleted: onCompleted == null
|
||||
? null
|
||||
: (data) => onCompleted(
|
||||
data,
|
||||
data == null
|
||||
? null
|
||||
: _parserFn$Mutation$ChangeSshSettings(data),
|
||||
),
|
||||
update: update,
|
||||
onError: onError,
|
||||
document: documentNodeMutationChangeSshSettings,
|
||||
parserFn: _parserFn$Mutation$ChangeSshSettings,
|
||||
);
|
||||
|
||||
final OnMutationCompleted$Mutation$ChangeSshSettings? onCompletedWithParsed;
|
||||
|
||||
@override
|
||||
List<Object?> get properties => [
|
||||
...super.onCompleted == null
|
||||
? super.properties
|
||||
: super.properties.where((property) => property != onCompleted),
|
||||
onCompletedWithParsed,
|
||||
];
|
||||
}
|
||||
|
||||
class WatchOptions$Mutation$ChangeSshSettings
|
||||
extends graphql.WatchQueryOptions<Mutation$ChangeSshSettings> {
|
||||
WatchOptions$Mutation$ChangeSshSettings({
|
||||
String? operationName,
|
||||
required Variables$Mutation$ChangeSshSettings variables,
|
||||
graphql.FetchPolicy? fetchPolicy,
|
||||
graphql.ErrorPolicy? errorPolicy,
|
||||
graphql.CacheRereadPolicy? cacheRereadPolicy,
|
||||
Object? optimisticResult,
|
||||
Mutation$ChangeSshSettings? typedOptimisticResult,
|
||||
graphql.Context? context,
|
||||
Duration? pollInterval,
|
||||
bool? eagerlyFetchResults,
|
||||
bool carryForwardDataOnException = true,
|
||||
bool fetchResults = false,
|
||||
}) : super(
|
||||
variables: variables.toJson(),
|
||||
operationName: operationName,
|
||||
fetchPolicy: fetchPolicy,
|
||||
errorPolicy: errorPolicy,
|
||||
cacheRereadPolicy: cacheRereadPolicy,
|
||||
optimisticResult: optimisticResult ?? typedOptimisticResult?.toJson(),
|
||||
context: context,
|
||||
document: documentNodeMutationChangeSshSettings,
|
||||
pollInterval: pollInterval,
|
||||
eagerlyFetchResults: eagerlyFetchResults,
|
||||
carryForwardDataOnException: carryForwardDataOnException,
|
||||
fetchResults: fetchResults,
|
||||
parserFn: _parserFn$Mutation$ChangeSshSettings,
|
||||
);
|
||||
}
|
||||
|
||||
extension ClientExtension$Mutation$ChangeSshSettings on graphql.GraphQLClient {
|
||||
Future<graphql.QueryResult<Mutation$ChangeSshSettings>>
|
||||
mutate$ChangeSshSettings(
|
||||
Options$Mutation$ChangeSshSettings options) async =>
|
||||
await this.mutate(options);
|
||||
graphql.ObservableQuery<Mutation$ChangeSshSettings>
|
||||
watchMutation$ChangeSshSettings(
|
||||
WatchOptions$Mutation$ChangeSshSettings options) =>
|
||||
this.watchMutation(options);
|
||||
}
|
||||
|
||||
class Mutation$ChangeSshSettings$system {
|
||||
Mutation$ChangeSshSettings$system({
|
||||
required this.changeSshSettings,
|
||||
this.$__typename = 'SystemMutations',
|
||||
});
|
||||
|
||||
factory Mutation$ChangeSshSettings$system.fromJson(
|
||||
Map<String, dynamic> json) {
|
||||
final l$changeSshSettings = json['changeSshSettings'];
|
||||
final l$$__typename = json['__typename'];
|
||||
return Mutation$ChangeSshSettings$system(
|
||||
changeSshSettings:
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings.fromJson(
|
||||
(l$changeSshSettings as Map<String, dynamic>)),
|
||||
$__typename: (l$$__typename as String),
|
||||
);
|
||||
}
|
||||
|
||||
final Mutation$ChangeSshSettings$system$changeSshSettings changeSshSettings;
|
||||
|
||||
final String $__typename;
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final _resultData = <String, dynamic>{};
|
||||
final l$changeSshSettings = changeSshSettings;
|
||||
_resultData['changeSshSettings'] = l$changeSshSettings.toJson();
|
||||
final l$$__typename = $__typename;
|
||||
_resultData['__typename'] = l$$__typename;
|
||||
return _resultData;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
final l$changeSshSettings = changeSshSettings;
|
||||
final l$$__typename = $__typename;
|
||||
return Object.hashAll([
|
||||
l$changeSshSettings,
|
||||
l$$__typename,
|
||||
]);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
if (identical(this, other)) {
|
||||
return true;
|
||||
}
|
||||
if (!(other is Mutation$ChangeSshSettings$system) ||
|
||||
runtimeType != other.runtimeType) {
|
||||
return false;
|
||||
}
|
||||
final l$changeSshSettings = changeSshSettings;
|
||||
final lOther$changeSshSettings = other.changeSshSettings;
|
||||
if (l$changeSshSettings != lOther$changeSshSettings) {
|
||||
return false;
|
||||
}
|
||||
final l$$__typename = $__typename;
|
||||
final lOther$$__typename = other.$__typename;
|
||||
if (l$$__typename != lOther$$__typename) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
extension UtilityExtension$Mutation$ChangeSshSettings$system
|
||||
on Mutation$ChangeSshSettings$system {
|
||||
CopyWith$Mutation$ChangeSshSettings$system<Mutation$ChangeSshSettings$system>
|
||||
get copyWith => CopyWith$Mutation$ChangeSshSettings$system(
|
||||
this,
|
||||
(i) => i,
|
||||
);
|
||||
}
|
||||
|
||||
abstract class CopyWith$Mutation$ChangeSshSettings$system<TRes> {
|
||||
factory CopyWith$Mutation$ChangeSshSettings$system(
|
||||
Mutation$ChangeSshSettings$system instance,
|
||||
TRes Function(Mutation$ChangeSshSettings$system) then,
|
||||
) = _CopyWithImpl$Mutation$ChangeSshSettings$system;
|
||||
|
||||
factory CopyWith$Mutation$ChangeSshSettings$system.stub(TRes res) =
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings$system;
|
||||
|
||||
TRes call({
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings? changeSshSettings,
|
||||
String? $__typename,
|
||||
});
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<TRes>
|
||||
get changeSshSettings;
|
||||
}
|
||||
|
||||
class _CopyWithImpl$Mutation$ChangeSshSettings$system<TRes>
|
||||
implements CopyWith$Mutation$ChangeSshSettings$system<TRes> {
|
||||
_CopyWithImpl$Mutation$ChangeSshSettings$system(
|
||||
this._instance,
|
||||
this._then,
|
||||
);
|
||||
|
||||
final Mutation$ChangeSshSettings$system _instance;
|
||||
|
||||
final TRes Function(Mutation$ChangeSshSettings$system) _then;
|
||||
|
||||
static const _undefined = <dynamic, dynamic>{};
|
||||
|
||||
TRes call({
|
||||
Object? changeSshSettings = _undefined,
|
||||
Object? $__typename = _undefined,
|
||||
}) =>
|
||||
_then(Mutation$ChangeSshSettings$system(
|
||||
changeSshSettings:
|
||||
changeSshSettings == _undefined || changeSshSettings == null
|
||||
? _instance.changeSshSettings
|
||||
: (changeSshSettings
|
||||
as Mutation$ChangeSshSettings$system$changeSshSettings),
|
||||
$__typename: $__typename == _undefined || $__typename == null
|
||||
? _instance.$__typename
|
||||
: ($__typename as String),
|
||||
));
|
||||
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<TRes>
|
||||
get changeSshSettings {
|
||||
final local$changeSshSettings = _instance.changeSshSettings;
|
||||
return CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
local$changeSshSettings, (e) => call(changeSshSettings: e));
|
||||
}
|
||||
}
|
||||
|
||||
class _CopyWithStubImpl$Mutation$ChangeSshSettings$system<TRes>
|
||||
implements CopyWith$Mutation$ChangeSshSettings$system<TRes> {
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings$system(this._res);
|
||||
|
||||
TRes _res;
|
||||
|
||||
call({
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings? changeSshSettings,
|
||||
String? $__typename,
|
||||
}) =>
|
||||
_res;
|
||||
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<TRes>
|
||||
get changeSshSettings =>
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings.stub(
|
||||
_res);
|
||||
}
|
||||
|
||||
class Mutation$ChangeSshSettings$system$changeSshSettings
|
||||
implements Fragment$basicMutationReturnFields$$SSHSettingsMutationReturn {
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings({
|
||||
required this.code,
|
||||
required this.message,
|
||||
required this.success,
|
||||
this.$__typename = 'SSHSettingsMutationReturn',
|
||||
required this.enable,
|
||||
required this.passwordAuthentication,
|
||||
});
|
||||
|
||||
factory Mutation$ChangeSshSettings$system$changeSshSettings.fromJson(
|
||||
Map<String, dynamic> json) {
|
||||
final l$code = json['code'];
|
||||
final l$message = json['message'];
|
||||
final l$success = json['success'];
|
||||
final l$$__typename = json['__typename'];
|
||||
final l$enable = json['enable'];
|
||||
final l$passwordAuthentication = json['passwordAuthentication'];
|
||||
return Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
code: (l$code as int),
|
||||
message: (l$message as String),
|
||||
success: (l$success as bool),
|
||||
$__typename: (l$$__typename as String),
|
||||
enable: (l$enable as bool),
|
||||
passwordAuthentication: (l$passwordAuthentication as bool),
|
||||
);
|
||||
}
|
||||
|
||||
final int code;
|
||||
|
||||
final String message;
|
||||
|
||||
final bool success;
|
||||
|
||||
final String $__typename;
|
||||
|
||||
final bool enable;
|
||||
|
||||
final bool passwordAuthentication;
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final _resultData = <String, dynamic>{};
|
||||
final l$code = code;
|
||||
_resultData['code'] = l$code;
|
||||
final l$message = message;
|
||||
_resultData['message'] = l$message;
|
||||
final l$success = success;
|
||||
_resultData['success'] = l$success;
|
||||
final l$$__typename = $__typename;
|
||||
_resultData['__typename'] = l$$__typename;
|
||||
final l$enable = enable;
|
||||
_resultData['enable'] = l$enable;
|
||||
final l$passwordAuthentication = passwordAuthentication;
|
||||
_resultData['passwordAuthentication'] = l$passwordAuthentication;
|
||||
return _resultData;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
final l$code = code;
|
||||
final l$message = message;
|
||||
final l$success = success;
|
||||
final l$$__typename = $__typename;
|
||||
final l$enable = enable;
|
||||
final l$passwordAuthentication = passwordAuthentication;
|
||||
return Object.hashAll([
|
||||
l$code,
|
||||
l$message,
|
||||
l$success,
|
||||
l$$__typename,
|
||||
l$enable,
|
||||
l$passwordAuthentication,
|
||||
]);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
if (identical(this, other)) {
|
||||
return true;
|
||||
}
|
||||
if (!(other is Mutation$ChangeSshSettings$system$changeSshSettings) ||
|
||||
runtimeType != other.runtimeType) {
|
||||
return false;
|
||||
}
|
||||
final l$code = code;
|
||||
final lOther$code = other.code;
|
||||
if (l$code != lOther$code) {
|
||||
return false;
|
||||
}
|
||||
final l$message = message;
|
||||
final lOther$message = other.message;
|
||||
if (l$message != lOther$message) {
|
||||
return false;
|
||||
}
|
||||
final l$success = success;
|
||||
final lOther$success = other.success;
|
||||
if (l$success != lOther$success) {
|
||||
return false;
|
||||
}
|
||||
final l$$__typename = $__typename;
|
||||
final lOther$$__typename = other.$__typename;
|
||||
if (l$$__typename != lOther$$__typename) {
|
||||
return false;
|
||||
}
|
||||
final l$enable = enable;
|
||||
final lOther$enable = other.enable;
|
||||
if (l$enable != lOther$enable) {
|
||||
return false;
|
||||
}
|
||||
final l$passwordAuthentication = passwordAuthentication;
|
||||
final lOther$passwordAuthentication = other.passwordAuthentication;
|
||||
if (l$passwordAuthentication != lOther$passwordAuthentication) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
extension UtilityExtension$Mutation$ChangeSshSettings$system$changeSshSettings
|
||||
on Mutation$ChangeSshSettings$system$changeSshSettings {
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings>
|
||||
get copyWith =>
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
this,
|
||||
(i) => i,
|
||||
);
|
||||
}
|
||||
|
||||
abstract class CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<
|
||||
TRes> {
|
||||
factory CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
Mutation$ChangeSshSettings$system$changeSshSettings instance,
|
||||
TRes Function(Mutation$ChangeSshSettings$system$changeSshSettings) then,
|
||||
) = _CopyWithImpl$Mutation$ChangeSshSettings$system$changeSshSettings;
|
||||
|
||||
factory CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings.stub(
|
||||
TRes res) =
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings$system$changeSshSettings;
|
||||
|
||||
TRes call({
|
||||
int? code,
|
||||
String? message,
|
||||
bool? success,
|
||||
String? $__typename,
|
||||
bool? enable,
|
||||
bool? passwordAuthentication,
|
||||
});
|
||||
}
|
||||
|
||||
class _CopyWithImpl$Mutation$ChangeSshSettings$system$changeSshSettings<TRes>
|
||||
implements
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<TRes> {
|
||||
_CopyWithImpl$Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
this._instance,
|
||||
this._then,
|
||||
);
|
||||
|
||||
final Mutation$ChangeSshSettings$system$changeSshSettings _instance;
|
||||
|
||||
final TRes Function(Mutation$ChangeSshSettings$system$changeSshSettings)
|
||||
_then;
|
||||
|
||||
static const _undefined = <dynamic, dynamic>{};
|
||||
|
||||
TRes call({
|
||||
Object? code = _undefined,
|
||||
Object? message = _undefined,
|
||||
Object? success = _undefined,
|
||||
Object? $__typename = _undefined,
|
||||
Object? enable = _undefined,
|
||||
Object? passwordAuthentication = _undefined,
|
||||
}) =>
|
||||
_then(Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
code:
|
||||
code == _undefined || code == null ? _instance.code : (code as int),
|
||||
message: message == _undefined || message == null
|
||||
? _instance.message
|
||||
: (message as String),
|
||||
success: success == _undefined || success == null
|
||||
? _instance.success
|
||||
: (success as bool),
|
||||
$__typename: $__typename == _undefined || $__typename == null
|
||||
? _instance.$__typename
|
||||
: ($__typename as String),
|
||||
enable: enable == _undefined || enable == null
|
||||
? _instance.enable
|
||||
: (enable as bool),
|
||||
passwordAuthentication: passwordAuthentication == _undefined ||
|
||||
passwordAuthentication == null
|
||||
? _instance.passwordAuthentication
|
||||
: (passwordAuthentication as bool),
|
||||
));
|
||||
}
|
||||
|
||||
class _CopyWithStubImpl$Mutation$ChangeSshSettings$system$changeSshSettings<
|
||||
TRes>
|
||||
implements
|
||||
CopyWith$Mutation$ChangeSshSettings$system$changeSshSettings<TRes> {
|
||||
_CopyWithStubImpl$Mutation$ChangeSshSettings$system$changeSshSettings(
|
||||
this._res);
|
||||
|
||||
TRes _res;
|
||||
|
||||
call({
|
||||
int? code,
|
||||
String? message,
|
||||
bool? success,
|
||||
String? $__typename,
|
||||
bool? enable,
|
||||
bool? passwordAuthentication,
|
||||
}) =>
|
||||
_res;
|
||||
}
|
||||
|
|
|
@ -258,6 +258,50 @@ class ServerApi extends GraphQLApiMap
|
|||
}
|
||||
}
|
||||
|
||||
Future<GenericResult<SshSettings?>> setSshSettings(
|
||||
final SshSettings settings,
|
||||
) async {
|
||||
try {
|
||||
final GraphQLClient client = await getClient();
|
||||
final input = Input$SSHSettingsInput(
|
||||
enable: settings.enable,
|
||||
passwordAuthentication: settings.passwordAuthentication,
|
||||
);
|
||||
final variables = Variables$Mutation$ChangeSshSettings(
|
||||
settings: input,
|
||||
);
|
||||
final mutation = Options$Mutation$ChangeSshSettings(
|
||||
variables: variables,
|
||||
);
|
||||
final result = await client.mutate$ChangeSshSettings(mutation);
|
||||
if (result.hasException) {
|
||||
return GenericResult<SshSettings?>(
|
||||
success: false,
|
||||
message: result.exception.toString(),
|
||||
data: null,
|
||||
);
|
||||
}
|
||||
return GenericResult<SshSettings?>(
|
||||
success: result.parsedData?.system.changeSshSettings.success ?? false,
|
||||
message: result.parsedData?.system.changeSshSettings.message,
|
||||
data: result.parsedData == null
|
||||
? null
|
||||
: SshSettings(
|
||||
enable: result.parsedData!.system.changeSshSettings.enable,
|
||||
passwordAuthentication: result.parsedData!.system
|
||||
.changeSshSettings.passwordAuthentication,
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
print(e);
|
||||
return GenericResult<SshSettings?>(
|
||||
success: false,
|
||||
message: e.toString(),
|
||||
data: null,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<SystemSettings> getSystemSettings() async {
|
||||
QueryResult<Query$SystemSettings> response;
|
||||
SystemSettings settings = SystemSettings(
|
||||
|
|
|
@ -66,6 +66,9 @@ class BackupsUnititialized extends BackupsState {
|
|||
@override
|
||||
List<Object> get props => [];
|
||||
|
||||
@override
|
||||
bool get preventActions => false;
|
||||
|
||||
@override
|
||||
BackupsUnititialized copyWith({
|
||||
final BackblazeBucket? backblazeBucket,
|
||||
|
|
|
@ -36,6 +36,15 @@ sealed class ServerJobsState extends Equatable {
|
|||
job.status == JobStatusEnum.error,
|
||||
);
|
||||
|
||||
bool get hasJobsBlockingRebuild => serverJobList.any(
|
||||
(final job) =>
|
||||
(job.status == JobStatusEnum.running ||
|
||||
job.status == JobStatusEnum.created) &&
|
||||
(job.typeId.contains('system.nixos.rebuild') ||
|
||||
job.typeId.contains('system.nixos.upgrade') ||
|
||||
job.typeId.contains('move')),
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [_hashCode];
|
||||
}
|
||||
|
|
|
@ -218,7 +218,7 @@ class VolumesBloc extends Bloc<VolumesEvent, VolumesState> {
|
|||
}
|
||||
|
||||
getIt<NavigationService>().showSnackBar(
|
||||
'storage.extending_volume_waiting'.tr(),
|
||||
'storage.extending_volume_provider_waiting'.tr(),
|
||||
);
|
||||
|
||||
await Future.delayed(const Duration(seconds: 10));
|
||||
|
|
|
@ -93,6 +93,10 @@ class DnsRecordsCubit extends ServerConnectionDependentCubit<DnsRecordsState> {
|
|||
final List<DesiredDnsRecord> foundRecords = [];
|
||||
try {
|
||||
for (final DnsRecord pendingDnsRecord in pendingDnsRecords) {
|
||||
if (pendingDnsRecord.type == 'AAAA' &&
|
||||
(pendingDnsRecord.content?.startsWith('fe80::') ?? false)) {
|
||||
continue;
|
||||
}
|
||||
if (pendingDnsRecord.name == 'selector._domainkey') {
|
||||
final foundRecord = providerDnsRecords.firstWhere(
|
||||
(final r) =>
|
||||
|
@ -207,7 +211,6 @@ class DnsRecordsCubit extends ServerConnectionDependentCubit<DnsRecordsState> {
|
|||
records.addAll(recordsToAdd);
|
||||
}
|
||||
|
||||
|
||||
/// TODO: Error handling?
|
||||
final ServerDomain? domain = getIt<ApiConnectionRepository>().serverDomain;
|
||||
await ProvidersController.currentDnsProvider!.removeDomainRecords(
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:selfprivacy/config/get_it_config.dart';
|
|||
import 'package:selfprivacy/logic/cubit/server_connection_dependent/server_connection_dependent_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart';
|
||||
import 'package:selfprivacy/logic/models/server_metadata.dart';
|
||||
import 'package:selfprivacy/logic/models/ssh_settings.dart';
|
||||
import 'package:selfprivacy/logic/models/system_settings.dart';
|
||||
import 'package:selfprivacy/logic/models/timezone_settings.dart';
|
||||
import 'package:selfprivacy/logic/providers/providers_controller.dart';
|
||||
|
@ -31,6 +32,7 @@ class ServerDetailsCubit
|
|||
metadata: state.metadata,
|
||||
serverTimezone: TimeZoneSettings.fromString(settings.timezone),
|
||||
autoUpgradeSettings: settings.autoUpgradeSettings,
|
||||
sshSettings: settings.sshSettings,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -52,15 +52,18 @@ class Loaded extends ServerDetailsState {
|
|||
required super.metadata,
|
||||
required this.serverTimezone,
|
||||
required this.autoUpgradeSettings,
|
||||
required this.sshSettings,
|
||||
});
|
||||
final TimeZoneSettings serverTimezone;
|
||||
final AutoUpgradeSettings autoUpgradeSettings;
|
||||
final SshSettings sshSettings;
|
||||
|
||||
@override
|
||||
List<Object> get props => [
|
||||
metadata,
|
||||
serverTimezone,
|
||||
autoUpgradeSettings,
|
||||
sshSettings,
|
||||
];
|
||||
|
||||
@override
|
||||
|
@ -68,11 +71,12 @@ class Loaded extends ServerDetailsState {
|
|||
final List<ServerMetadataEntity>? metadata,
|
||||
final TimeZoneSettings? serverTimezone,
|
||||
final AutoUpgradeSettings? autoUpgradeSettings,
|
||||
final DateTime? checkTime,
|
||||
final SshSettings? sshSettings,
|
||||
}) =>
|
||||
Loaded(
|
||||
metadata: metadata ?? this.metadata,
|
||||
serverTimezone: serverTimezone ?? this.serverTimezone,
|
||||
autoUpgradeSettings: autoUpgradeSettings ?? this.autoUpgradeSettings,
|
||||
sshSettings: sshSettings ?? this.sshSettings,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -850,35 +850,6 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
|
|||
emit(const ServerInstallationEmpty());
|
||||
}
|
||||
|
||||
Future<void> serverDelete() async {
|
||||
closeTimer();
|
||||
|
||||
if (state.serverDetails != null) {
|
||||
final bool deletionResult =
|
||||
await repository.deleteServer(state.serverDomain!);
|
||||
if (!deletionResult) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
await repository.deleteServerRelatedRecords();
|
||||
emit(
|
||||
ServerInstallationNotFinished(
|
||||
providerApiToken: state.providerApiToken,
|
||||
serverDomain: state.serverDomain,
|
||||
dnsApiToken: state.dnsApiToken,
|
||||
backblazeCredential: state.backblazeCredential,
|
||||
rootUser: state.rootUser,
|
||||
customSshKey: null,
|
||||
serverDetails: null,
|
||||
isServerStarted: false,
|
||||
isServerResetedFirstTime: false,
|
||||
isServerResetedSecondTime: false,
|
||||
isLoading: false,
|
||||
dnsMatches: null,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
closeTimer();
|
||||
|
|
|
@ -16,6 +16,7 @@ import 'package:selfprivacy/logic/models/json/recovery_token_status.dart';
|
|||
import 'package:selfprivacy/logic/models/json/server_disk_volume.dart';
|
||||
import 'package:selfprivacy/logic/models/json/server_job.dart';
|
||||
import 'package:selfprivacy/logic/models/service.dart';
|
||||
import 'package:selfprivacy/logic/models/ssh_settings.dart';
|
||||
import 'package:selfprivacy/logic/models/system_settings.dart';
|
||||
|
||||
/// Repository for all API calls
|
||||
|
@ -220,6 +221,24 @@ class ApiConnectionRepository {
|
|||
}
|
||||
}
|
||||
|
||||
Future<(bool, String)> setSshSettings(
|
||||
final bool enable,
|
||||
final bool passwordAuthentication,
|
||||
) async {
|
||||
final GenericResult<SshSettings?> result = await api.setSshSettings(
|
||||
SshSettings(
|
||||
enable: enable,
|
||||
passwordAuthentication: passwordAuthentication,
|
||||
),
|
||||
);
|
||||
_apiData.settings.invalidate();
|
||||
if (result.data != null) {
|
||||
return (true, result.message ?? 'basis.done'.tr());
|
||||
} else {
|
||||
return (false, result.message ?? 'jobs.generic_error'.tr());
|
||||
}
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
_dataStream.close();
|
||||
_connectionStatusStream.close();
|
||||
|
|
|
@ -399,3 +399,47 @@ class ChangeServerTimezoneJob extends ReplaceableJob {
|
|||
id: id,
|
||||
);
|
||||
}
|
||||
|
||||
class ChangeSshSettingsJob extends ReplaceableJob {
|
||||
ChangeSshSettingsJob({
|
||||
required this.enable,
|
||||
required this.passwordAuthentication,
|
||||
super.status,
|
||||
super.message,
|
||||
super.id,
|
||||
}) : super(title: 'jobs.change_ssh_settings'.tr());
|
||||
|
||||
final bool enable;
|
||||
final bool passwordAuthentication;
|
||||
|
||||
@override
|
||||
Future<(bool, String)> execute() async => getIt<ApiConnectionRepository>()
|
||||
.setSshSettings(enable, passwordAuthentication);
|
||||
|
||||
@override
|
||||
bool shouldRemoveInsteadOfAdd(final List<ClientJob> jobs) {
|
||||
final currentSettings =
|
||||
getIt<ApiConnectionRepository>().apiData.settings.data?.sshSettings;
|
||||
if (currentSettings == null) {
|
||||
return false;
|
||||
}
|
||||
return currentSettings.enable == enable &&
|
||||
currentSettings.passwordAuthentication == passwordAuthentication;
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object> get props => [...super.props, enable, passwordAuthentication];
|
||||
|
||||
@override
|
||||
ChangeSshSettingsJob copyWithNewStatus({
|
||||
required final JobStatusEnum status,
|
||||
final String? message,
|
||||
}) =>
|
||||
ChangeSshSettingsJob(
|
||||
enable: enable,
|
||||
passwordAuthentication: passwordAuthentication,
|
||||
status: status,
|
||||
message: message,
|
||||
id: id,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -53,6 +53,9 @@ class JobsContent extends StatelessWidget {
|
|||
final bool hasRemovableJobs =
|
||||
context.watch<ServerJobsBloc>().state.hasRemovableJobs;
|
||||
|
||||
final bool hasBlockingJobs =
|
||||
context.watch<ServerJobsBloc>().state.hasJobsBlockingRebuild;
|
||||
|
||||
return BlocBuilder<JobsCubit, JobsState>(
|
||||
builder: (final context, final state) {
|
||||
late List<Widget> widgets;
|
||||
|
@ -422,7 +425,9 @@ class JobsContent extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 16),
|
||||
BrandButton.rised(
|
||||
onPressed: () => context.read<JobsCubit>().applyAll(),
|
||||
onPressed: hasBlockingJobs
|
||||
? null
|
||||
: () => context.read<JobsCubit>().applyAll(),
|
||||
text: 'jobs.start'.tr(),
|
||||
),
|
||||
];
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/ui/components/drawers/support_drawer.dart';
|
||||
import 'package:selfprivacy/ui/components/pre_styled_buttons/flash_fab.dart';
|
||||
|
@ -199,21 +202,36 @@ class _BottomBar extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).scaffoldBackgroundColor,
|
||||
),
|
||||
child: NavigationBar(
|
||||
selectedIndex: prevActiveIndex == -1 ? 0 : prevActiveIndex,
|
||||
labelBehavior: NavigationDestinationLabelBehavior.alwaysShow,
|
||||
onDestinationSelected: (final index) {
|
||||
context.router.replaceAll([destinations[index].route]);
|
||||
},
|
||||
destinations: destinations
|
||||
.map(
|
||||
(final destination) => NavigationDestination(
|
||||
icon: Icon(destination.icon),
|
||||
label: destination.label,
|
||||
),
|
||||
child: Platform.isIOS
|
||||
? CupertinoTabBar(
|
||||
currentIndex: prevActiveIndex == -1 ? 0 : prevActiveIndex,
|
||||
onTap: (final index) {
|
||||
context.router.replaceAll([destinations[index].route]);
|
||||
},
|
||||
items: destinations
|
||||
.map(
|
||||
(final destination) => BottomNavigationBarItem(
|
||||
icon: Icon(destination.icon),
|
||||
label: destination.label,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
: NavigationBar(
|
||||
selectedIndex: prevActiveIndex == -1 ? 0 : prevActiveIndex,
|
||||
labelBehavior: NavigationDestinationLabelBehavior.alwaysShow,
|
||||
onDestinationSelected: (final index) {
|
||||
context.router.replaceAll([destinations[index].route]);
|
||||
},
|
||||
destinations: destinations
|
||||
.map(
|
||||
(final destination) => NavigationDestination(
|
||||
icon: Icon(destination.icon),
|
||||
label: destination.label,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ class BackupDetailsPage extends StatelessWidget {
|
|||
const Center(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: CircularProgressIndicator(),
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
),
|
||||
),
|
||||
if (!preventActions)
|
||||
|
|
|
@ -53,7 +53,7 @@ class _ChangeAutobackupsPeriodModalState
|
|||
),
|
||||
const SizedBox(height: 16),
|
||||
// Select all services tile
|
||||
RadioListTile<Duration?>(
|
||||
RadioListTile<Duration?>.adaptive(
|
||||
onChanged: (final Duration? value) {
|
||||
setState(() {
|
||||
selectedPeriod = value;
|
||||
|
@ -69,7 +69,7 @@ class _ChangeAutobackupsPeriodModalState
|
|||
height: 1.0,
|
||||
),
|
||||
...autobackupPeriods.map(
|
||||
(final Duration period) => RadioListTile<Duration?>(
|
||||
(final Duration period) => RadioListTile<Duration?>.adaptive(
|
||||
onChanged: (final Duration? value) {
|
||||
setState(() {
|
||||
selectedPeriod = value;
|
||||
|
|
|
@ -232,7 +232,7 @@ class QuotaSelectionTile extends StatelessWidget {
|
|||
children: [
|
||||
// Discrete slider to select the new value
|
||||
if (value >= -1 && value <= max)
|
||||
Slider(
|
||||
Slider.adaptive(
|
||||
value: value == -1 ? max + 1 : value.toDouble(),
|
||||
min: min.toDouble(),
|
||||
max: (max + 1).toDouble(),
|
||||
|
|
|
@ -71,7 +71,7 @@ class _CreateBackupsModalState extends State<CreateBackupsModal> {
|
|||
),
|
||||
const SizedBox(height: 16),
|
||||
// Select all services tile
|
||||
CheckboxListTile(
|
||||
CheckboxListTile.adaptive(
|
||||
onChanged: (final bool? value) {
|
||||
setState(() {
|
||||
if (value ?? true) {
|
||||
|
@ -103,7 +103,7 @@ class _CreateBackupsModalState extends State<CreateBackupsModal> {
|
|||
...widget.services.map(
|
||||
(final Service service) {
|
||||
final bool busy = busyServices.contains(service.id);
|
||||
return CheckboxListTile(
|
||||
return CheckboxListTile.adaptive(
|
||||
onChanged: !busy
|
||||
? (final bool? value) {
|
||||
setState(() {
|
||||
|
|
|
@ -36,7 +36,7 @@ class _DevicesScreenState extends State<DevicesScreen> {
|
|||
if (devicesStatus is DevicesInitial) ...[
|
||||
const Center(
|
||||
heightFactor: 8,
|
||||
child: CircularProgressIndicator(),
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
),
|
||||
],
|
||||
if (devicesStatus is! DevicesInitial) ...[
|
||||
|
@ -94,7 +94,7 @@ class _DevicesInfo extends StatelessWidget {
|
|||
if (devicesStatus is DevicesDeleting) ...[
|
||||
const Center(
|
||||
heightFactor: 4,
|
||||
child: CircularProgressIndicator(),
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
),
|
||||
],
|
||||
if (devicesStatus is! DevicesDeleting)
|
||||
|
|
|
@ -27,7 +27,9 @@ class NewDeviceScreen extends StatelessWidget {
|
|||
newDeviceKey: snapshot.data.toString(),
|
||||
);
|
||||
} else {
|
||||
return const Center(child: CircularProgressIndicator());
|
||||
return const Center(
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -31,7 +29,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
bodyPadding: const EdgeInsets.symmetric(vertical: 16),
|
||||
heroTitle: 'application_settings.title'.tr(),
|
||||
children: [
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
title: Text('application_settings.system_dark_theme_title'.tr()),
|
||||
subtitle:
|
||||
Text('application_settings.system_dark_theme_description'.tr()),
|
||||
|
@ -40,7 +38,7 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
.read<AppSettingsCubit>()
|
||||
.updateAutoDarkMode(isAutoDarkModeOn: !isSystemDarkModeOn),
|
||||
),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
title: Text('application_settings.dark_theme_title'.tr()),
|
||||
subtitle: Text('application_settings.dark_theme_description'.tr()),
|
||||
value: Theme.of(context).brightness == Brightness.dark,
|
||||
|
@ -61,61 +59,9 @@ class _AppSettingsPageState extends State<AppSettingsPage> {
|
|||
),
|
||||
),
|
||||
const _ResetAppTile(),
|
||||
// const Divider(height: 0),
|
||||
_deleteServer(context),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _deleteServer(final BuildContext context) {
|
||||
final bool isDisabled =
|
||||
context.watch<ServerInstallationCubit>().state.serverDetails == null;
|
||||
return ListTile(
|
||||
title: Text('application_settings.delete_server_title'.tr()),
|
||||
subtitle: Text('application_settings.delete_server_description'.tr()),
|
||||
textColor: isDisabled
|
||||
? Theme.of(context).colorScheme.onBackground.withOpacity(0.5)
|
||||
: Theme.of(context).colorScheme.onBackground,
|
||||
onTap: isDisabled
|
||||
? null
|
||||
: () {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (final _) => AlertDialog(
|
||||
title: Text('modals.are_you_sure'.tr()),
|
||||
content: Text('modals.delete_server_volume'.tr()),
|
||||
actions: [
|
||||
DialogActionButton(
|
||||
text: 'modals.yes'.tr(),
|
||||
isRed: true,
|
||||
onPressed: () async {
|
||||
unawaited(
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (final context) => Container(
|
||||
alignment: Alignment.center,
|
||||
child: const CircularProgressIndicator(),
|
||||
),
|
||||
),
|
||||
);
|
||||
await context
|
||||
.read<ServerInstallationCubit>()
|
||||
.serverDelete();
|
||||
if (!mounted) {
|
||||
return;
|
||||
}
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
DialogActionButton(
|
||||
text: 'basis.cancel'.tr(),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _ResetAppTile extends StatelessWidget {
|
||||
|
|
|
@ -28,7 +28,7 @@ class _DeveloperSettingsPageState extends State<DeveloperSettingsPage> {
|
|||
heroSubtitle: 'developer_settings.subtitle'.tr(),
|
||||
children: [
|
||||
SectionTitle(title: 'developer_settings.server_setup'.tr()),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
title: Text('developer_settings.use_staging_acme'.tr()),
|
||||
subtitle:
|
||||
Text('developer_settings.use_staging_acme_description'.tr()),
|
||||
|
@ -37,7 +37,7 @@ class _DeveloperSettingsPageState extends State<DeveloperSettingsPage> {
|
|||
() => TlsOptions.stagingAcme = value,
|
||||
),
|
||||
),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
title: Text('developer_settings.ignore_tls'.tr()),
|
||||
subtitle: Text('developer_settings.ignore_tls_description'.tr()),
|
||||
value: !TlsOptions.verifyCertificate,
|
||||
|
@ -45,7 +45,7 @@ class _DeveloperSettingsPageState extends State<DeveloperSettingsPage> {
|
|||
() => TlsOptions.verifyCertificate = !value,
|
||||
),
|
||||
),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
title: Text('developer_settings.allow_ssh_key_at_setup'.tr()),
|
||||
subtitle: Text(
|
||||
'developer_settings.allow_ssh_key_at_setup_description'.tr(),
|
||||
|
|
|
@ -96,7 +96,7 @@ class _ConsolePageState extends State<ConsolePage> {
|
|||
children: [
|
||||
Text('console_page.waiting'.tr()),
|
||||
const Gap(16),
|
||||
const CircularProgressIndicator(),
|
||||
const CircularProgressIndicator.adaptive(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:selfprivacy/config/brand_theme.dart';
|
||||
import 'package:selfprivacy/logic/bloc/backups/backups_bloc.dart';
|
||||
import 'package:selfprivacy/logic/bloc/volumes/volumes_bloc.dart';
|
||||
|
@ -146,12 +147,19 @@ class _Card extends StatelessWidget {
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
IconStatusMask(
|
||||
status: state,
|
||||
icon: Icon(icon, size: 30, color: Colors.white),
|
||||
),
|
||||
const Gap(8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
title,
|
||||
style: Theme.of(context).textTheme.headlineMedium,
|
||||
),
|
||||
),
|
||||
if (state != StateType.uninitialized)
|
||||
IconStatusMask(
|
||||
status: state,
|
||||
|
@ -167,10 +175,6 @@ class _Card extends StatelessWidget {
|
|||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
title,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
if (state != StateType.uninitialized)
|
||||
Text(
|
||||
subtitle,
|
||||
|
|
|
@ -32,7 +32,7 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
|
|||
case RecoveryKeyRefreshing():
|
||||
subtitle = 'recovery_key.key_synchronizing'.tr();
|
||||
widgets = [
|
||||
const Center(child: CircularProgressIndicator()),
|
||||
const Center(child: CircularProgressIndicator.adaptive()),
|
||||
];
|
||||
break;
|
||||
case RecoveryKeyLoaded():
|
||||
|
@ -306,7 +306,7 @@ class _RecoveryKeyConfigurationState extends State<RecoveryKeyConfiguration> {
|
|||
|
||||
return Column(
|
||||
children: [
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
value: _isAmountToggled,
|
||||
title: Text('recovery_key.key_amount_toggle'.tr()),
|
||||
activeColor: Theme.of(context).colorScheme.primary,
|
||||
|
@ -346,7 +346,7 @@ class _RecoveryKeyConfigurationState extends State<RecoveryKeyConfiguration> {
|
|||
),
|
||||
secondChild: Container(),
|
||||
),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
value: _isExpirationToggled,
|
||||
title: Text('recovery_key.key_duedate_toggle'.tr()),
|
||||
activeColor: Theme.of(context).colorScheme.primary,
|
||||
|
|
|
@ -48,23 +48,38 @@ class _Chart extends StatelessWidget {
|
|||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'resource_chart.network_title'.tr(),
|
||||
style: Theme.of(context).textTheme.titleMedium?.copyWith(
|
||||
color:
|
||||
Theme.of(context).colorScheme.onSurfaceVariant,
|
||||
Flexible(
|
||||
child: Text(
|
||||
'resource_chart.network_title'.tr(),
|
||||
style:
|
||||
Theme.of(context).textTheme.titleMedium?.copyWith(
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
fit: FlexFit.loose,
|
||||
child: Wrap(
|
||||
spacing: 8.0,
|
||||
runSpacing: 8.0,
|
||||
alignment: WrapAlignment.end,
|
||||
runAlignment: WrapAlignment.end,
|
||||
children: [
|
||||
Legend(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
text: 'resource_chart.in'.tr(),
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
Legend(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
text: 'resource_chart.in'.tr(),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Legend(
|
||||
color: Theme.of(context).colorScheme.tertiary,
|
||||
text: 'resource_chart.out'.tr(),
|
||||
Legend(
|
||||
color: Theme.of(context).colorScheme.tertiary,
|
||||
text: 'resource_chart.out'.tr(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -156,7 +171,7 @@ class _GraphLoadingCardContent extends StatelessWidget {
|
|||
@override
|
||||
Widget build(final BuildContext context) => const SizedBox(
|
||||
height: 200,
|
||||
child: Center(child: CircularProgressIndicator()),
|
||||
child: Center(child: CircularProgressIndicator.adaptive()),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -172,6 +187,7 @@ class Legend extends StatelessWidget {
|
|||
@override
|
||||
Widget build(final BuildContext context) => Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
_ColoredBox(color: color),
|
||||
const SizedBox(width: 5),
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:cubit_form/cubit_form.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:selfprivacy/logic/bloc/volumes/volumes_bloc.dart';
|
||||
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
||||
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/metrics/metrics_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/job.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_loader/brand_loader.dart';
|
||||
import 'package:selfprivacy/ui/components/buttons/segmented_buttons.dart';
|
||||
import 'package:selfprivacy/ui/components/cards/filled_card.dart';
|
||||
import 'package:selfprivacy/ui/components/list_tiles/list_tile_on_surface_variant.dart';
|
||||
|
@ -18,15 +15,10 @@ import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
|||
import 'package:selfprivacy/ui/pages/server_details/charts/cpu_chart.dart';
|
||||
import 'package:selfprivacy/ui/pages/server_details/charts/network_charts.dart';
|
||||
import 'package:selfprivacy/ui/pages/server_storage/storage_card.dart';
|
||||
import 'package:selfprivacy/utils/breakpoints.dart';
|
||||
import 'package:selfprivacy/utils/extensions/duration.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
import 'package:timezone/timezone.dart';
|
||||
import 'package:selfprivacy/ui/router/router.dart';
|
||||
|
||||
part 'charts/chart.dart';
|
||||
part 'server_settings.dart';
|
||||
part 'text_details.dart';
|
||||
part 'time_zone/time_zone.dart';
|
||||
|
||||
var navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
|
@ -83,7 +75,11 @@ class _ServerDetailsScreenState extends State<ServerDetailsScreen>
|
|||
diskStatus: context.watch<VolumesBloc>().state.diskStatus,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
const _ServerSettings(),
|
||||
ListTile(
|
||||
title: Text('server.settings'.tr()),
|
||||
leading: const Icon(BrandIcons.settings),
|
||||
onTap: () => context.pushRoute(const ServerSettingsRoute()),
|
||||
),
|
||||
const Divider(height: 32),
|
||||
Text(
|
||||
'server.resource_usage'.tr(),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
part of 'server_details_screen.dart';
|
||||
part of 'server_settings_screen.dart';
|
||||
|
||||
class _ServerSettings extends StatefulWidget {
|
||||
const _ServerSettings();
|
||||
|
@ -10,6 +10,8 @@ class _ServerSettings extends StatefulWidget {
|
|||
class _ServerSettingsState extends State<_ServerSettings> {
|
||||
bool? allowAutoUpgrade;
|
||||
bool? rebootAfterUpgrade;
|
||||
bool? enableSsh;
|
||||
bool? allowPasswordAuthentication;
|
||||
|
||||
@override
|
||||
Widget build(final BuildContext context) {
|
||||
|
@ -24,9 +26,15 @@ class _ServerSettingsState extends State<_ServerSettings> {
|
|||
rebootAfterUpgrade = serverDetailsState.autoUpgradeSettings.allowReboot;
|
||||
}
|
||||
|
||||
if (enableSsh == null || allowPasswordAuthentication == null) {
|
||||
enableSsh = serverDetailsState.sshSettings.enable;
|
||||
allowPasswordAuthentication =
|
||||
serverDetailsState.sshSettings.passwordAuthentication;
|
||||
}
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
value: allowAutoUpgrade ?? false,
|
||||
onChanged: (final switched) {
|
||||
context.read<JobsCubit>().addJob(
|
||||
|
@ -59,7 +67,7 @@ class _ServerSettingsState extends State<_ServerSettings> {
|
|||
),
|
||||
activeColor: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
SwitchListTile(
|
||||
SwitchListTile.adaptive(
|
||||
value: rebootAfterUpgrade ?? false,
|
||||
onChanged: (final switched) {
|
||||
context.read<JobsCubit>().addJob(
|
||||
|
@ -105,6 +113,71 @@ class _ServerSettingsState extends State<_ServerSettings> {
|
|||
);
|
||||
},
|
||||
),
|
||||
SwitchListTile.adaptive(
|
||||
value: enableSsh ?? true,
|
||||
onChanged: (final switched) {
|
||||
context.read<JobsCubit>().addJob(
|
||||
ChangeSshSettingsJob(
|
||||
enable: switched,
|
||||
passwordAuthentication:
|
||||
allowPasswordAuthentication ?? false,
|
||||
),
|
||||
);
|
||||
setState(() {
|
||||
enableSsh = switched;
|
||||
});
|
||||
},
|
||||
title: Text(
|
||||
'server.enable_ssh'.tr(),
|
||||
style: TextStyle(
|
||||
fontStyle: enableSsh != serverDetailsState.sshSettings.enable
|
||||
? FontStyle.italic
|
||||
: FontStyle.normal,
|
||||
),
|
||||
),
|
||||
subtitle: Text(
|
||||
'server.enable_ssh_hint'.tr(),
|
||||
style: TextStyle(
|
||||
fontStyle: enableSsh != serverDetailsState.sshSettings.enable
|
||||
? FontStyle.italic
|
||||
: FontStyle.normal,
|
||||
),
|
||||
),
|
||||
activeColor: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
SwitchListTile.adaptive(
|
||||
value: allowPasswordAuthentication ?? false,
|
||||
onChanged: (final switched) {
|
||||
context.read<JobsCubit>().addJob(
|
||||
ChangeSshSettingsJob(
|
||||
enable: enableSsh ?? true,
|
||||
passwordAuthentication: switched,
|
||||
),
|
||||
);
|
||||
setState(() {
|
||||
allowPasswordAuthentication = switched;
|
||||
});
|
||||
},
|
||||
title: Text(
|
||||
'server.allow_password_authentication'.tr(),
|
||||
style: TextStyle(
|
||||
fontStyle: allowPasswordAuthentication !=
|
||||
serverDetailsState.sshSettings.passwordAuthentication
|
||||
? FontStyle.italic
|
||||
: FontStyle.normal,
|
||||
),
|
||||
),
|
||||
subtitle: Text(
|
||||
'server.allow_password_authentication_hint'.tr(),
|
||||
style: TextStyle(
|
||||
fontStyle: allowPasswordAuthentication !=
|
||||
serverDetailsState.sshSettings.passwordAuthentication
|
||||
? FontStyle.italic
|
||||
: FontStyle.normal,
|
||||
),
|
||||
),
|
||||
activeColor: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
35
lib/ui/pages/server_details/server_settings_screen.dart
Normal file
|
@ -0,0 +1,35 @@
|
|||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
|
||||
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart';
|
||||
import 'package:selfprivacy/logic/models/job.dart';
|
||||
import 'package:selfprivacy/ui/components/brand_loader/brand_loader.dart';
|
||||
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||
import 'package:selfprivacy/utils/breakpoints.dart';
|
||||
import 'package:selfprivacy/utils/extensions/duration.dart';
|
||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||
import 'package:timezone/timezone.dart';
|
||||
|
||||
part 'server_settings.dart';
|
||||
part 'time_zone/time_zone.dart';
|
||||
|
||||
@RoutePage()
|
||||
class ServerSettingsScreen extends StatefulWidget {
|
||||
const ServerSettingsScreen({super.key});
|
||||
|
||||
@override
|
||||
State<ServerSettingsScreen> createState() => _ServerSettingsScreenState();
|
||||
}
|
||||
|
||||
class _ServerSettingsScreenState extends State<ServerSettingsScreen> {
|
||||
@override
|
||||
Widget build(final BuildContext context) => BrandHeroScreen(
|
||||
hasFlashButton: true,
|
||||
heroIcon: Icons.settings_outlined,
|
||||
heroTitle: 'server.settings'.tr(),
|
||||
children: const [
|
||||
_ServerSettings(),
|
||||
],
|
||||
);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
part of '../server_details_screen.dart';
|
||||
part of '../server_settings_screen.dart';
|
||||
|
||||
final List<Location> locations = timeZoneDatabase.locations.values.toList()
|
||||
..sort(
|
||||
|
|
|
@ -147,7 +147,7 @@ class _ServicesMigrationPageState extends State<ServicesMigrationPage> {
|
|||
padding: const EdgeInsets.all(16.0),
|
||||
children: <Widget>[
|
||||
if (widget.services.isEmpty)
|
||||
const Center(child: CircularProgressIndicator()),
|
||||
const Center(child: CircularProgressIndicator.adaptive()),
|
||||
...widget.services.map(
|
||||
(final service) => Column(
|
||||
children: [
|
||||
|
|
|
@ -71,7 +71,7 @@ class _ExtendingVolumePageState extends State<ExtendingVolumePage> {
|
|||
children: const [
|
||||
SizedBox(height: 16),
|
||||
Center(
|
||||
child: CircularProgressIndicator(),
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
|
|
@ -59,21 +59,23 @@ class StorageCard extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'storage.card_title'.tr(),
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
if (state != StateType.uninitialized)
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
diskStatus.isDiskOkay
|
||||
? 'storage.status_ok'.tr()
|
||||
: 'storage.status_error'.tr(),
|
||||
style: Theme.of(context).textTheme.bodyLarge,
|
||||
'storage.card_title'.tr(),
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
],
|
||||
if (state != StateType.uninitialized)
|
||||
Text(
|
||||
diskStatus.isDiskOkay
|
||||
? 'storage.status_ok'.tr()
|
||||
: 'storage.status_error'.tr(),
|
||||
style: Theme.of(context).textTheme.bodyLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (state != StateType.uninitialized)
|
||||
IconStatusMask(
|
||||
|
|