From 1eba2ae5ba8b641013e94cdf92d582e87e087d37 Mon Sep 17 00:00:00 2001 From: Gareth Date: Sun, 21 Dec 2025 23:59:25 -0800 Subject: [PATCH] more localization --- webui/messages/ar.json | 100 +- webui/messages/bn.json | 100 +- webui/messages/de.json | 100 +- webui/messages/en.json | 100 +- webui/messages/es.json | 100 +- webui/messages/fr.json | 100 +- webui/messages/hi.json | 100 +- webui/messages/id.json | 100 +- webui/messages/it.json | 100 +- webui/messages/pt.json | 100 +- webui/messages/ru.json | 100 +- webui/messages/zh.json | 100 +- webui/src/views/AddRepoModal.tsx | 179 +- webui/src/views/SummaryDashboard.tsx | 58 +- webui/stats.html | 4949 -------------------------- webui/vite.config.ts | 23 +- 16 files changed, 1309 insertions(+), 5100 deletions(-) delete mode 100644 webui/stats.html diff --git a/webui/messages/ar.json b/webui/messages/ar.json index b2f57713..a9650beb 100644 --- a/webui/messages/ar.json +++ b/webui/messages/ar.json @@ -155,5 +155,103 @@ "login_username_placeholder": "اسم المستخدم", "login_password_required": "الرجاء إدخال كلمة المرور الخاصة بك!", "login_password_placeholder": "كلمة المرور", - "login_button": "تسجيل الدخول" + "login_button": "تسجيل الدخول", + "add_repo_modal_title_edit": "تحرير مستودع Restic", + "add_repo_modal_title_add": "إضافة مستودع ريستيك", + "add_repo_modal_success_deleted": "تم حذف المستودع {id} من الإعدادات، لكن الملفات لا تزال موجودة. لتحرير مساحة التخزين، احذف الملفات يدويًا. URI: {uri}", + "add_repo_modal_success_updated": "تم تحديث إعدادات المستودع {uri}", + "add_repo_modal_success_added": "تمت إضافة المستودع {uri}", + "add_repo_modal_error_list_snapshots": "فشل عرض لقطات الشاشة للمستودع المحدث/المضاف: ", + "add_repo_modal_delete_tooltip": "يزيل المستودع من الإعدادات ولكنه لن يحذف مستودع restic.", + "add_repo_modal_test_config": "تكوين الاختبار", + "add_repo_modal_test_success_existing": "تم الاتصال بنجاح بـ {uri} وتم العثور على مستودع موجود.", + "add_repo_modal_test_success_new": "تم الاتصال بنجاح بـ {uri} . لم يتم العثور على مستودع موجود في هذا الموقع، وسيتم إنشاء مستودع جديد.", + "add_repo_modal_test_error": "خطأ في التحقق: ", + "add_repo_modal_guide_text_p1": "يرى ", + "add_repo_modal_guide_link_text": "دليل البدء السريع لاستخدام مسند الظهر", + "add_repo_modal_guide_text_p2": " للحصول على تعليمات تكوين المستودع أو تحقق من ", + "add_repo_modal_guide_restic_link_text": "وثائق ريستيك", + "add_repo_modal_guide_text_p3": " للحصول على مزيد من التفاصيل حول المستودعات.", + "add_repo_modal_field_repo_name": "اسم المستودع", + "add_repo_modal_field_repo_name_tooltip": "معرّف فريد يُحدد هذا المستودع في واجهة المستخدم الخلفية (مثلاً: s3-mybucket). لا يمكن تغيير هذا المعرّف بعد الإنشاء.", + "add_repo_modal_error_repo_name_required": "الرجاء إدخال اسم المستودع", + "add_repo_modal_error_repo_exists": "مستودع بهذا الاسم موجود بالفعل", + "add_repo_modal_field_uri": "معرّف الموارد الموحد للمستودع", + "add_repo_modal_field_uri_tooltip_title": "عناوين مستودعات البيانات الصالحة هي:", + "add_repo_modal_field_uri_tooltip_local": "مسار نظام الملفات المحلي", + "add_repo_modal_field_uri_tooltip_s3": "S3 على سبيل المثال s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP مثال: sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "يرى ", + "add_repo_modal_field_uri_tooltip_restic_docs": "أطباء ريستيك", + "add_repo_modal_field_uri_tooltip_info": " للمزيد من المعلومات.", + "add_repo_modal_error_uri_required": "يرجى إدخال عنوان مستودع الموارد الموحد (URI)", + "add_repo_modal_field_password": "كلمة المرور", + "add_repo_modal_field_password_tooltip_intro": "كلمة المرور هذه التي تشفر البيانات في مستودعك.", + "add_repo_modal_field_password_tooltip_entropy": "يوصى باختيار قيمة تبلغ 128 بت من الإنتروبيا (20 حرفًا أو أطول).", + "add_repo_modal_field_password_tooltip_env": "يمكنك بدلاً من ذلك تقديم بيانات اعتماد متغير البيئة على سبيل المثال RESTIC_PASSWORD أو RESTIC_PASSWORD_FILE أو RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "انقر على [إنشاء] لإنشاء كلمة مرور عشوائية من واجهة برمجة تطبيقات التشفير العشوائية الخاصة بمتصفحك.", + "add_repo_modal_button_generate": "[يولد]", + "add_repo_modal_field_env_vars": "متغيرات البيئة", + "add_repo_modal_field_env_vars_tooltip": "المتغيرات البيئية التي يتم تمريرها إلى restic (على سبيل المثال، لتوفير بيانات اعتماد S3 أو B2). يتم دعم المراجع إلى متغيرات بيئة العملية الأصلية على النحو التالي: FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "يجب أن يكون متغير البيئة بالصيغة KEY=VALUE", + "add_repo_modal_button_set_env": "ضبط متغيرات البيئة", + "add_repo_modal_field_flags": "الأعلام", + "add_repo_modal_error_flag_format": "يجب أن تكون القيمة علامة سطر أوامر، على سبيل المثال انظر restic --help", + "add_repo_modal_button_set_flag": "تعيين العلم", + "add_repo_modal_field_prune_policy": "سياسة التقليم", + "add_repo_modal_field_prune_policy_tooltip_p1": "الجدول الزمني لتنفيذ عمليات الحذف لهذا المستودع. اقرأ ", + "add_repo_modal_field_prune_policy_tooltip_link": "وثائق Restic حول تخصيص عمليات التقليم", + "add_repo_modal_field_prune_policy_tooltip_p2": " للمزيد من التفاصيل.", + "add_repo_modal_field_max_unused": "الحد الأقصى غير المستخدم بعد التقليم", + "add_repo_modal_field_max_unused_tooltip": "النسبة المئوية القصوى لحجم المستودع التي قد تبقى غير مستخدمة بعد اكتمال عملية الحذف. القيم العالية تقلل من النسخ على حساب مساحة التخزين.", + "add_repo_modal_field_check_policy": "سياسة التحقق", + "add_repo_modal_field_check_policy_tooltip": "يُحدد هذا الجدول الزمني عمليات فحص هذا المستودع. تتحقق عمليات فحص Restic من سلامة مستودعك عن طريق مسح هياكل البيانات الموجودة على القرص والتي تُشكل بيانات النسخ الاحتياطي. يُمكن ضبط الفحص اختياريًا لإعادة قراءة البيانات وإعادة تجزئتها، وهذه العملية بطيئة وقد تستهلك الكثير من عرض النطاق الترددي، ولكنها ستكشف أي تلف أو خلل خفي في وسيط التخزين.", + "add_repo_modal_field_read_data": "قراءة البيانات %", + "add_repo_modal_field_read_data_tooltip": "نسبة بيانات الحزمة في هذا المستودع التي ستُقرأ وتُدقّق. القيم الأعلى ستستهلك نطاقًا تردديًا أكبر (على سبيل المثال، 100% ستعيد قراءة المستودع بأكمله في كل عملية فحص).", + "add_repo_modal_field_command_modifiers": "مُعدِّلات الأوامر", + "add_repo_modal_field_command_modifiers_tooltip": "تعديلات لعملية النسخ الاحتياطي، على سبيل المثال، ضبط أولوية وحدة المعالجة المركزية أو الإدخال/الإخراج.", + "add_repo_modal_field_io_priority": "أولوية الإدخال/الإخراج:", + "add_repo_modal_field_io_priority_tooltip_intro": "أوضاع أولوية الإدخال/الإخراج المتاحة", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - يعمل بأولوية قرص أقل من الأولوية الافتراضية (سيعطي الأولوية للعمليات الأخرى)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - يعمل بأولوية قرص أعلى من الأولوية الافتراضية (أعلى قائمة انتظار إدخال/إخراج القرص)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - يتم تشغيله فقط عندما يكون عرض النطاق الترددي للقرص خاملاً (على سبيل المثال، لا توجد عمليات أخرى في قائمة الانتظار)", + "add_repo_modal_field_io_priority_placeholder": "حدد أولوية الإدخال/الإخراج", + "add_repo_modal_field_cpu_priority": "أولوية وحدة المعالجة المركزية:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "أوضاع أولوية وحدة المعالجة المركزية المتاحة:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - لا تغيير في الأولوية", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - أولوية أعلى من الأولوية الافتراضية (يجب تشغيل backrest كجذر)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - أولوية أقل من الأولوية الافتراضية", + "add_repo_modal_field_cpu_priority_placeholder": "حدد أولوية وحدة المعالجة المركزية", + "add_repo_modal_field_auto_unlock": "فتح تلقائي", + "add_repo_modal_field_auto_unlock_tooltip": "ستؤدي خاصية الفتح التلقائي إلى إزالة ملفات القفل عند بدء عمليات النسيان والحذف. قد يكون هذا غير آمن إذا تمت مشاركة المستودع من قبل عدة أجهزة عميلة. هذه الخاصية معطلة افتراضيًا.", + "add_repo_modal_preview_json": "ملف إعدادات المستودع بصيغة JSON", + "add_repo_modal_error_missing_password": "كلمة مرور المستودع مفقودة. يرجى إدخال كلمة مرور أو تعيين أحد متغيرات البيئة التالية: RESTIC_PASSWORD، RESTIC_PASSWORD_COMMAND، RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "فشل في جلب بيانات الملخص: ", + "dashboard_repos_title": "مستودعات", + "dashboard_repos_empty": "لم يتم العثور على أي مستودعات", + "dashboard_plans_title": "الخطط", + "dashboard_plans_empty": "لم يتم العثور على أي خطط", + "dashboard_system_info_title": "معلومات النظام", + "dashboard_config_path": "مسار التكوين", + "dashboard_data_dir": "دليل البيانات", + "dashboard_config_json": "ملف الإعدادات بصيغة JSON", + "dashboard_backup_tooltip_time": "النسخ الاحتياطي في {time}", + "dashboard_backup_tooltip_pending": "تم تحديد الموعد، في الانتظار.", + "dashboard_backup_tooltip_finished": "تم أخذ {duration} ، وتمت إضافة {bytes}", + "dashboard_card_backups_30d": "النسخ الاحتياطية (30 يومًا)", + "dashboard_card_backups_ok": "نعم", + "dashboard_card_backups_failed": "فشل", + "dashboard_card_backups_warning": "تحذير", + "dashboard_card_bytes_scanned_30d": "تم فحص البايتات (30 يومًا)", + "dashboard_card_bytes_added_30d": "تمت إضافة بايتات (30 يومًا)", + "dashboard_card_next_backup": "النسخ الاحتياطي المجدول التالي", + "dashboard_card_none_scheduled": "لا يوجد جدول زمني", + "dashboard_card_bytes_scanned_avg": "متوسط عدد البايتات الممسوحة ضوئياً", + "dashboard_card_bytes_added_avg": "متوسط حجم البيانات المضافة", + "dashboard_remote_hosts_title": "المضيفون البعيدون", + "dashboard_remote_clients_title": "العملاء عن بعد", + "dashboard_peer_instance_id": "معرّف المثيل", + "dashboard_peer_public_key_id": "معرّف المفتاح العام", + "dashboard_peer_last_state_update": "آخر تحديث للحالة", + "dashboard_peer_ago": "منذ" } \ No newline at end of file diff --git a/webui/messages/bn.json b/webui/messages/bn.json index 98978302..90280602 100644 --- a/webui/messages/bn.json +++ b/webui/messages/bn.json @@ -155,5 +155,103 @@ "login_username_placeholder": "ব্যবহারকারীর নাম", "login_password_required": "আপনার পাসওয়ার্ডটি প্রবেশ করান!", "login_password_placeholder": "পাসওয়ার্ড", - "login_button": "লগ ইন করুন" + "login_button": "লগ ইন করুন", + "add_repo_modal_title_edit": "রেস্টিক রিপোজিটরি সম্পাদনা করুন", + "add_repo_modal_title_add": "রেস্টিক রিপোজিটরি যোগ করুন", + "add_repo_modal_success_deleted": "কনফিগারেশন থেকে repo {id} মুছে ফেলা হয়েছে কিন্তু ফাইলগুলি রয়ে গেছে। স্টোরেজ রিলিজ করতে ফাইলগুলি ম্যানুয়ালি মুছে ফেলুন। URI: {uri}", + "add_repo_modal_success_updated": "আপডেট করা রেপো কনফিগারেশন {uri}", + "add_repo_modal_success_added": "যোগ করা হয়েছে repo {uri}", + "add_repo_modal_error_list_snapshots": "আপডেট/যোগ করা রেপোর জন্য স্ন্যাপশট তালিকাভুক্ত করতে ব্যর্থ: ", + "add_repo_modal_delete_tooltip": "কনফিগারেশন থেকে রেপো সরিয়ে দেয় কিন্তু রেস্টিক রিপোজিটরি মুছে ফেলবে না", + "add_repo_modal_test_config": "পরীক্ষা কনফিগারেশন", + "add_repo_modal_test_success_existing": "{uri} এর সাথে সফলভাবে সংযুক্ত হয়েছে এবং একটি বিদ্যমান রেপো খুঁজে পেয়েছে।", + "add_repo_modal_test_success_new": "{uri} এর সাথে সফলভাবে সংযুক্ত হয়েছে। এই অবস্থানে কোনও বিদ্যমান রেপো পাওয়া যায়নি, একটি নতুন রেপো শুরু করা হবে।", + "add_repo_modal_test_error": "ত্রুটি পরীক্ষা করুন: ", + "add_repo_modal_guide_text_p1": "দেখা ", + "add_repo_modal_guide_link_text": "ব্যাকরেস্ট শুরু করার নির্দেশিকা", + "add_repo_modal_guide_text_p2": " সংগ্রহস্থল কনফিগারেশন নির্দেশাবলীর জন্য অথবা পরীক্ষা করুন ", + "add_repo_modal_guide_restic_link_text": "রেস্টিক ডকুমেন্টেশন", + "add_repo_modal_guide_text_p3": " সংগ্রহস্থল সম্পর্কে আরও তথ্যের জন্য।", + "add_repo_modal_field_repo_name": "রেপো নাম", + "add_repo_modal_field_repo_name_tooltip": "ব্যাকরেস্ট UI-তে এই রেপো শনাক্তকারী অনন্য আইডি (যেমন s3-mybucket)। তৈরির পরে এটি পরিবর্তন করা যাবে না।", + "add_repo_modal_error_repo_name_required": "অনুগ্রহ করে রেপো নামটি লিখুন।", + "add_repo_modal_error_repo_exists": "নামের রেপো ইতিমধ্যেই বিদ্যমান", + "add_repo_modal_field_uri": "রিপোজিটরি ইউআরআই", + "add_repo_modal_field_uri_tooltip_title": "বৈধ রেপো ইউআরআইগুলি হল:", + "add_repo_modal_field_uri_tooltip_local": "স্থানীয় ফাইল সিস্টেম পাথ", + "add_repo_modal_field_uri_tooltip_s3": "S3 যেমন s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP যেমন sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "দেখা ", + "add_repo_modal_field_uri_tooltip_restic_docs": "রেস্টিক ডক্স", + "add_repo_modal_field_uri_tooltip_info": " আরও তথ্যের জন্য.", + "add_repo_modal_error_uri_required": "অনুগ্রহ করে রেপো ইউআরআই লিখুন।", + "add_repo_modal_field_password": "পাসওয়ার্ড", + "add_repo_modal_field_password_tooltip_intro": "এই পাসওয়ার্ডটি আপনার সংগ্রহস্থলের ডেটা এনক্রিপ্ট করে।", + "add_repo_modal_field_password_tooltip_entropy": "১২৮ বিট এনট্রপি (২০ অক্ষর বা তার বেশি) এর মান বাছাই করার পরামর্শ দেওয়া হচ্ছে।", + "add_repo_modal_field_password_tooltip_env": "আপনি বিকল্পভাবে env ভেরিয়েবল শংসাপত্র প্রদান করতে পারেন যেমন RESTIC_PASSWORD, RESTIC_PASSWORD_FILE, অথবা RESTIC_PASSWORD_COMMAND।", + "add_repo_modal_field_password_tooltip_generate": "আপনার ব্রাউজারের ক্রিপ্টো র‍্যান্ডম এপিআই থেকে একটি র‍্যান্ডম পাসওয়ার্ড তৈরি করতে [জেনারেট] এ ক্লিক করুন।", + "add_repo_modal_button_generate": "[জেনারেট করুন]", + "add_repo_modal_field_env_vars": "এনভ ভারস", + "add_repo_modal_field_env_vars_tooltip": "পরিবেশ ভেরিয়েবল যা restic-এ পাস করা হয় (যেমন S3 বা B2 শংসাপত্র প্রদান করার জন্য)। প্যারেন্ট-প্রসেস env ভেরিয়েবলের রেফারেন্সগুলি FOO=$ {MY_FOO_VAR} হিসাবে সমর্থিত।", + "add_repo_modal_error_env_format": "পরিবেশ পরিবর্তনশীল অবশ্যই KEY=VALUE ফর্ম্যাটে থাকতে হবে", + "add_repo_modal_button_set_env": "পরিবেশ পরিবর্তনশীল সেট করুন", + "add_repo_modal_field_flags": "পতাকা", + "add_repo_modal_error_flag_format": "মানটি একটি CLI পতাকা হওয়া উচিত, যেমন restic --help দেখুন", + "add_repo_modal_button_set_flag": "পতাকা সেট করুন", + "add_repo_modal_field_prune_policy": "ছাঁটাই নীতি", + "add_repo_modal_field_prune_policy_tooltip_p1": "এই সংগ্রহস্থলের জন্য প্রুন অপারেশনগুলি কোন সময়সূচীতে পরিচালিত হবে। পড়ুন ", + "add_repo_modal_field_prune_policy_tooltip_link": "প্রুন অপারেশন কাস্টমাইজ করার বিষয়ে বিশ্রামমূলক ডক্স", + "add_repo_modal_field_prune_policy_tooltip_p2": " আরও বিস্তারিত জানার জন্য।", + "add_repo_modal_field_max_unused": "ছাঁটাইয়ের পরে সর্বাধিক অব্যবহৃত", + "add_repo_modal_field_max_unused_tooltip": "প্রুন অপারেশন সম্পন্ন হওয়ার পর অব্যবহৃত হতে পারে এমন রেপো আকারের সর্বাধিক শতাংশ। উচ্চ মান সংরক্ষণের খরচে অনুলিপি হ্রাস করে।", + "add_repo_modal_field_check_policy": "নীতি পরীক্ষা করুন", + "add_repo_modal_field_check_policy_tooltip": "এই রিপোজিটরির জন্য চেক অপারেশনগুলি কোন সময়সূচীতে চালানো হবে। রেস্টিক চেক অপারেশনগুলি আপনার ব্যাকআপ ডেটা তৈরি করে এমন অন-ডিস্ক স্ট্রাকচারগুলি স্ক্যান করে আপনার রিপোজিটরির অখণ্ডতা যাচাই করে। চেকটি ঐচ্ছিকভাবে ডেটা পুনরায় পড়ার এবং পুনরায় হ্যাশ করার জন্য কনফিগার করা যেতে পারে, এটি ধীর এবং ব্যান্ডউইথ ব্যয়বহুল হতে পারে তবে স্টোরেজ মিডিয়ামে যেকোনো বিটরট বা নীরব দুর্নীতি ধরা পড়বে।", + "add_repo_modal_field_read_data": "তথ্য পঠন %", + "add_repo_modal_field_read_data_tooltip": "এই সংগ্রহস্থলে থাকা প্যাক ডেটার শতকরা হার যা পঠিত এবং যাচাই করা হবে। উচ্চতর মানগুলি আরও বেশি ব্যান্ডউইথ ব্যবহার করবে (যেমন 100% প্রতিটি চেকে সম্পূর্ণ সংগ্রহস্থলটি পুনরায় পড়বে)।", + "add_repo_modal_field_command_modifiers": "কমান্ড মডিফায়ার", + "add_repo_modal_field_command_modifiers_tooltip": "ব্যাকআপ অপারেশনের জন্য মডিফায়ার যেমন CPU বা IO অগ্রাধিকার সেট করা।", + "add_repo_modal_field_io_priority": "IO অগ্রাধিকার:", + "add_repo_modal_field_io_priority_tooltip_intro": "উপলব্ধ IO অগ্রাধিকার মোড", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - ডিফল্ট ডিস্ক অগ্রাধিকারের চেয়ে কম সময়ে চলে (অন্যান্য প্রক্রিয়াগুলিকে অগ্রাধিকার দেবে)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - ডিফল্ট ডিস্ক অগ্রাধিকারের চেয়ে বেশি (ডিস্ক IO সারির উপরে) রান করে।", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - শুধুমাত্র তখনই চলে যখন ডিস্ক ব্যান্ডউইথ নিষ্ক্রিয় থাকে (যেমন অন্য কোনও অপারেশন সারিবদ্ধ থাকে না)", + "add_repo_modal_field_io_priority_placeholder": "একটি IO অগ্রাধিকার নির্বাচন করুন", + "add_repo_modal_field_cpu_priority": "সিপিইউ অগ্রাধিকার:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "উপলব্ধ CPU অগ্রাধিকার মোড:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - অগ্রাধিকারে কোনও পরিবর্তন নেই", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - ডিফল্ট অগ্রাধিকারের চেয়ে বেশি (ব্যাকরেস্ট অবশ্যই রুট হিসেবে চলমান থাকতে হবে)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - ডিফল্ট অগ্রাধিকারের চেয়ে কম", + "add_repo_modal_field_cpu_priority_placeholder": "একটি CPU অগ্রাধিকার নির্বাচন করুন", + "add_repo_modal_field_auto_unlock": "অটো আনলক", + "add_repo_modal_field_auto_unlock_tooltip": "ফরগেট এবং প্রুন অপারেশনের শুরুতে অটো-আনলক লকফাইলগুলি সরিয়ে ফেলবে। একাধিক ক্লায়েন্ট ডিভাইস দ্বারা রেপো শেয়ার করা থাকলে এটি সম্ভাব্যভাবে অনিরাপদ। ডিফল্টরূপে অক্ষম।", + "add_repo_modal_preview_json": "JSON হিসেবে রেপো কনফিগারেশন", + "add_repo_modal_error_missing_password": "রেপো পাসওয়ার্ড নেই। হয় একটি পাসওয়ার্ড দিন অথবা env ভেরিয়েবলগুলির মধ্যে একটি সেট করুন: RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE।", + "dashboard_error_fetch": "সারাংশ তথ্য আনতে ব্যর্থ: ", + "dashboard_repos_title": "রেপোস", + "dashboard_repos_empty": "কোনও রিপো পাওয়া যায়নি", + "dashboard_plans_title": "পরিকল্পনা", + "dashboard_plans_empty": "কোনও পরিকল্পনা পাওয়া যায়নি", + "dashboard_system_info_title": "সিস্টেম তথ্য", + "dashboard_config_path": "কনফিগারেশন পাথ", + "dashboard_data_dir": "ডেটা ডিরেক্টরি", + "dashboard_config_json": "JSON হিসেবে কনফিগার করুন", + "dashboard_backup_tooltip_time": "{time} এ ব্যাকআপ নিন", + "dashboard_backup_tooltip_pending": "নির্ধারিত, অপেক্ষা।", + "dashboard_backup_tooltip_finished": "{duration} নিলাম, {bytes} যোগ করলাম", + "dashboard_card_backups_30d": "ব্যাকআপ (৩০ দিন)", + "dashboard_card_backups_ok": "ঠিক আছে", + "dashboard_card_backups_failed": "ব্যর্থ", + "dashboard_card_backups_warning": "সতর্কতা", + "dashboard_card_bytes_scanned_30d": "বাইট স্ক্যান করা হয়েছে (৩০দিন)", + "dashboard_card_bytes_added_30d": "বাইট যোগ করা হয়েছে (30d)", + "dashboard_card_next_backup": "পরবর্তী নির্ধারিত ব্যাকআপ", + "dashboard_card_none_scheduled": "কোনও সময়সূচী নেই", + "dashboard_card_bytes_scanned_avg": "বাইট স্ক্যান করা গড়", + "dashboard_card_bytes_added_avg": "বাইট যোগ করা হয়েছে গড়", + "dashboard_remote_hosts_title": "দূরবর্তী হোস্ট", + "dashboard_remote_clients_title": "দূরবর্তী ক্লায়েন্ট", + "dashboard_peer_instance_id": "ইনস্ট্যান্স আইডি", + "dashboard_peer_public_key_id": "পাবলিক কী আইডি", + "dashboard_peer_last_state_update": "সর্বশেষ রাজ্য আপডেট", + "dashboard_peer_ago": "আগে" } \ No newline at end of file diff --git a/webui/messages/de.json b/webui/messages/de.json index 3efd9b22..4652275e 100644 --- a/webui/messages/de.json +++ b/webui/messages/de.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Benutzername", "login_password_required": "Bitte geben Sie Ihr Passwort ein!", "login_password_placeholder": "Passwort", - "login_button": "Einloggen" + "login_button": "Einloggen", + "add_repo_modal_title_edit": "Restic-Repository bearbeiten", + "add_repo_modal_title_add": "Restic-Repository hinzufügen", + "add_repo_modal_success_deleted": "Das Repository {id} wurde aus der Konfiguration entfernt, die Dateien sind jedoch weiterhin vorhanden. Um Speicherplatz freizugeben, löschen Sie die Dateien manuell. URI: {uri}", + "add_repo_modal_success_updated": "Aktualisierte Repository-Konfiguration {uri}", + "add_repo_modal_success_added": "Repository hinzugefügt {uri}", + "add_repo_modal_error_list_snapshots": "Fehler beim Auflisten der Snapshots für das aktualisierte/hinzugefügte Repository: ", + "add_repo_modal_delete_tooltip": "Entfernt das Repository aus der Konfiguration, löscht aber nicht das restic-Repository.", + "add_repo_modal_test_config": "Testkonfiguration", + "add_repo_modal_test_success_existing": "Verbindung zu {uri} erfolgreich hergestellt und ein bestehendes Repository gefunden.", + "add_repo_modal_test_success_new": "Verbindung zu {uri} erfolgreich hergestellt. An diesem Speicherort wurde kein vorhandenes Repository gefunden; ein neues wird initialisiert.", + "add_repo_modal_test_error": "Prüffehler: ", + "add_repo_modal_guide_text_p1": "Sehen ", + "add_repo_modal_guide_link_text": "Anleitung für den Einstieg in die Rückenlehne", + "add_repo_modal_guide_text_p2": " Anweisungen zur Repository-Konfiguration finden Sie hier oder überprüfen Sie die ", + "add_repo_modal_guide_restic_link_text": "restic-Dokumentation", + "add_repo_modal_guide_text_p3": " Weitere Details zu Repositories finden Sie hier.", + "add_repo_modal_field_repo_name": "Repo-Name", + "add_repo_modal_field_repo_name_tooltip": "Eine eindeutige ID, die dieses Repository in der Backrest-Benutzeroberfläche identifiziert (z. B. s3-mybucket). Diese kann nach der Erstellung nicht mehr geändert werden.", + "add_repo_modal_error_repo_name_required": "Bitte geben Sie den Repository-Namen ein.", + "add_repo_modal_error_repo_exists": "Repository mit dem Namen existiert bereits", + "add_repo_modal_field_uri": "Repository-URI", + "add_repo_modal_field_uri_tooltip_title": "Gültige Repo-URIs sind:", + "add_repo_modal_field_uri_tooltip_local": "Lokaler Dateisystempfad", + "add_repo_modal_field_uri_tooltip_s3": "S3 z. B. s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP, z. B. sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "Sehen ", + "add_repo_modal_field_uri_tooltip_restic_docs": "restic-Dokumente", + "add_repo_modal_field_uri_tooltip_info": " Für weitere Informationen.", + "add_repo_modal_error_uri_required": "Bitte geben Sie die Repository-URI ein.", + "add_repo_modal_field_password": "Passwort", + "add_repo_modal_field_password_tooltip_intro": "Dieses Passwort verschlüsselt die Daten in Ihrem Repository.", + "add_repo_modal_field_password_tooltip_entropy": "Es wird empfohlen, einen Wert mit 128 Bit Entropie (20 Zeichen oder länger) zu wählen.", + "add_repo_modal_field_password_tooltip_env": "Alternativ können Sie auch Umgebungsvariablen als Zugangsdaten angeben, z. B. RESTIC_PASSWORD, RESTIC_PASSWORD_FILE oder RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Klicken Sie auf [Generieren], um ein zufälliges Passwort mithilfe der Krypto-Zufalls-API Ihres Browsers zu erstellen.", + "add_repo_modal_button_generate": "[Erzeugen]", + "add_repo_modal_field_env_vars": "Umgebungsvariablen", + "add_repo_modal_field_env_vars_tooltip": "Umgebungsvariablen, die an restic übergeben werden (z. B. zur Bereitstellung von S3- oder B2-Anmeldeinformationen). Verweise auf Umgebungsvariablen des übergeordneten Prozesses werden als FOO=$ {MY_FOO_VAR} unterstützt.", + "add_repo_modal_error_env_format": "Umgebungsvariablen müssen das Format SCHLÜSSEL=WERT haben.", + "add_repo_modal_button_set_env": "Umgebungsvariable setzen", + "add_repo_modal_field_flags": "Flaggen", + "add_repo_modal_error_flag_format": "Der Wert sollte ein CLI-Flag sein, z. B. siehe restic --help", + "add_repo_modal_button_set_flag": "Flagge setzen", + "add_repo_modal_field_prune_policy": "Beschneidungsrichtlinie", + "add_repo_modal_field_prune_policy_tooltip_p1": "Der Zeitplan, nach dem die Bereinigungsvorgänge für dieses Repository ausgeführt werden. Weiterlesen ", + "add_repo_modal_field_prune_policy_tooltip_link": "die restic-Dokumentation zum Anpassen von Prune-Operationen", + "add_repo_modal_field_prune_policy_tooltip_p2": " Weitere Einzelheiten.", + "add_repo_modal_field_max_unused": "Maximal ungenutzt nach dem Beschneiden", + "add_repo_modal_field_max_unused_tooltip": "Der maximale Prozentsatz der Repository-Größe, der nach Abschluss eines Bereinigungsvorgangs ungenutzt bleiben darf. Hohe Werte reduzieren das Kopieren, erhöhen aber den Speicherplatzbedarf.", + "add_repo_modal_field_check_policy": "Prüfrichtlinie", + "add_repo_modal_field_check_policy_tooltip": "Der Zeitplan für die Durchführung von Prüfvorgängen für dieses Repository. Restic-Prüfvorgänge verifizieren die Integrität Ihres Repositorys durch Scannen der Datenstrukturen auf der Festplatte, aus denen Ihre Sicherungsdaten bestehen. Optional kann die Prüfung so konfiguriert werden, dass Daten erneut gelesen und gehasht werden. Dies ist zwar langsam und kann bandbreitenintensiv sein, deckt aber jegliche Bitfehler oder unbemerkte Beschädigungen im Speichermedium auf.", + "add_repo_modal_field_read_data": "Gelesene Daten %", + "add_repo_modal_field_read_data_tooltip": "Der Prozentsatz der Paketdaten in diesem Repository, die gelesen und überprüft werden. Höhere Werte verbrauchen mehr Bandbreite (z. B. wird bei 100 % das gesamte Repository bei jeder Überprüfung neu gelesen).", + "add_repo_modal_field_command_modifiers": "Befehlsmodifikatoren", + "add_repo_modal_field_command_modifiers_tooltip": "Modifikatoren für den Sicherungsvorgang, z. B. Festlegung der CPU- oder E/A-Priorität.", + "add_repo_modal_field_io_priority": "E/A-Priorität:", + "add_repo_modal_field_io_priority_tooltip_intro": "Verfügbare E/A-Prioritätsmodi", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - wird mit einer niedrigeren als der standardmäßigen Festplattenpriorität ausgeführt (andere Prozesse werden priorisiert)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - wird mit höherer als der standardmäßigen Festplattenpriorität ausgeführt (ganz oben in der Festplatten-E/A-Warteschlange)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - wird nur ausgeführt, wenn die Festplattenbandbreite im Leerlauf ist (z. B. wenn keine anderen Operationen in der Warteschlange stehen).", + "add_repo_modal_field_io_priority_placeholder": "Wählen Sie eine E/A-Priorität aus.", + "add_repo_modal_field_cpu_priority": "CPU-Priorität:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Verfügbare CPU-Prioritätsmodi:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT – keine Prioritätsänderung", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - höhere Priorität als die Standardpriorität (Backrest muss als Root ausgeführt werden)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW – niedrigere Priorität als die Standardpriorität", + "add_repo_modal_field_cpu_priority_placeholder": "Wählen Sie eine CPU-Priorität aus.", + "add_repo_modal_field_auto_unlock": "Automatisches Entsperren", + "add_repo_modal_field_auto_unlock_tooltip": "Die automatische Entsperrung entfernt Sperrdateien zu Beginn von Lösch- und Bereinigungsvorgängen. Dies kann ein Sicherheitsrisiko darstellen, wenn das Repository von mehreren Clientgeräten gemeinsam genutzt wird. Standardmäßig deaktiviert.", + "add_repo_modal_preview_json": "Repository-Konfiguration als JSON", + "add_repo_modal_error_missing_password": "Fehlendes Repository-Passwort. Geben Sie entweder ein Passwort an oder setzen Sie eine der Umgebungsvariablen RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND oder RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Zusammenfassende Daten konnten nicht abgerufen werden: ", + "dashboard_repos_title": "Repos", + "dashboard_repos_empty": "Keine Repositories gefunden", + "dashboard_plans_title": "Pläne", + "dashboard_plans_empty": "Keine Pläne gefunden", + "dashboard_system_info_title": "Systeminformationen", + "dashboard_config_path": "Konfigurationspfad", + "dashboard_data_dir": "Datenverzeichnis", + "dashboard_config_json": "Konfiguration als JSON", + "dashboard_backup_tooltip_time": "Backup at {time}", + "dashboard_backup_tooltip_pending": "Geplant, warte.", + "dashboard_backup_tooltip_finished": "Nahm {duration} , fügte {bytes}", + "dashboard_card_backups_30d": "Backups (30 Tage)", + "dashboard_card_backups_ok": "OK", + "dashboard_card_backups_failed": "fehlgeschlagen", + "dashboard_card_backups_warning": "Warnung", + "dashboard_card_bytes_scanned_30d": "Gescannte Bytes (30 Tage)", + "dashboard_card_bytes_added_30d": "Hinzugefügte Bytes (30 Tage)", + "dashboard_card_next_backup": "Nächste geplante Datensicherung", + "dashboard_card_none_scheduled": "Keine Termine", + "dashboard_card_bytes_scanned_avg": "Durchschnitt der gescannten Bytes", + "dashboard_card_bytes_added_avg": "Hinzugefügte Bytes Durchschnitt", + "dashboard_remote_hosts_title": "Remote-Hosts", + "dashboard_remote_clients_title": "Remote-Clients", + "dashboard_peer_instance_id": "Instanz-ID", + "dashboard_peer_public_key_id": "Öffentlicher Schlüssel", + "dashboard_peer_last_state_update": "Letzte Aktualisierung des Status", + "dashboard_peer_ago": "vor" } \ No newline at end of file diff --git a/webui/messages/en.json b/webui/messages/en.json index c51b76b9..e92ab44c 100644 --- a/webui/messages/en.json +++ b/webui/messages/en.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Username", "login_password_required": "Please input your password!", "login_password_placeholder": "Password", - "login_button": "Log in" + "login_button": "Log in", + "add_repo_modal_title_edit": "Edit Restic Repository", + "add_repo_modal_title_add": "Add Restic Repository", + "add_repo_modal_success_deleted": "Deleted repo {id} from config but files remain. To release storage delete the files manually. URI: {uri}", + "add_repo_modal_success_updated": "Updated repo configuration {uri}", + "add_repo_modal_success_added": "Added repo {uri}", + "add_repo_modal_error_list_snapshots": "Failed to list snapshots for updated/added repo: ", + "add_repo_modal_delete_tooltip": "Removes the repo from the config but will not delete the restic repository", + "add_repo_modal_test_config": "Test Configuration", + "add_repo_modal_test_success_existing": "Connected successfully to {uri} and found an existing repo.", + "add_repo_modal_test_success_new": "Connected successfully to {uri}. No existing repo found at this location, a new one will be initialized", + "add_repo_modal_test_error": "Check error: ", + "add_repo_modal_guide_text_p1": "See ", + "add_repo_modal_guide_link_text": "backrest getting started guide", + "add_repo_modal_guide_text_p2": " for repository configuration instructions or check the ", + "add_repo_modal_guide_restic_link_text": "restic documentation", + "add_repo_modal_guide_text_p3": " for more details about repositories.", + "add_repo_modal_field_repo_name": "Repo Name", + "add_repo_modal_field_repo_name_tooltip": "Unique ID that identifies this repo in the backrest UI (e.g. s3-mybucket). This cannot be changed after creation.", + "add_repo_modal_error_repo_name_required": "Please input repo name", + "add_repo_modal_error_repo_exists": "Repo with name already exists", + "add_repo_modal_field_uri": "Repository URI", + "add_repo_modal_field_uri_tooltip_title": "Valid Repo URIs are:", + "add_repo_modal_field_uri_tooltip_local": "Local filesystem path", + "add_repo_modal_field_uri_tooltip_s3": "S3 e.g. s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP e.g. sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "See ", + "add_repo_modal_field_uri_tooltip_restic_docs": "restic docs", + "add_repo_modal_field_uri_tooltip_info": " for more info.", + "add_repo_modal_error_uri_required": "Please input repo URI", + "add_repo_modal_field_password": "Password", + "add_repo_modal_field_password_tooltip_intro": "This password that encrypts data in your repository.", + "add_repo_modal_field_password_tooltip_entropy": "Recommended to pick a value that is 128 bits of entropy (20 chars or longer)", + "add_repo_modal_field_password_tooltip_env": "You may alternatively provide env variable credentials e.g. RESTIC_PASSWORD, RESTIC_PASSWORD_FILE, or RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Click [Generate] to seed a random password from your browser's crypto random API.", + "add_repo_modal_button_generate": "[Generate]", + "add_repo_modal_field_env_vars": "Env Vars", + "add_repo_modal_field_env_vars_tooltip": "Environment variables that are passed to restic (e.g. to provide S3 or B2 credentials). References to parent-process env variables are supported as FOO=${MY_FOO_VAR}.", + "add_repo_modal_error_env_format": "Environment variable must be in format KEY=VALUE", + "add_repo_modal_button_set_env": "Set Environment Variable", + "add_repo_modal_field_flags": "Flags", + "add_repo_modal_error_flag_format": "Value should be a CLI flag e.g. see restic --help", + "add_repo_modal_button_set_flag": "Set Flag", + "add_repo_modal_field_prune_policy": "Prune Policy", + "add_repo_modal_field_prune_policy_tooltip_p1": "The schedule on which prune operations are run for this repository. Read ", + "add_repo_modal_field_prune_policy_tooltip_link": "the restic docs on customizing prune operations", + "add_repo_modal_field_prune_policy_tooltip_p2": " for more details.", + "add_repo_modal_field_max_unused": "Max Unused After Prune", + "add_repo_modal_field_max_unused_tooltip": "The maximum percentage of the repo size that may be unused after a prune operation completes. High values reduce copying at the expense of storage.", + "add_repo_modal_field_check_policy": "Check Policy", + "add_repo_modal_field_check_policy_tooltip": "The schedule on which check operations are run for this repository. Restic check operations verify the integrity of your repository by scanning the on-disk structures that make up your backup data. Check can optionally be configured to re-read and re-hash data, this is slow and can be bandwidth expensive but will catch any bitrot or silent corruption in the storage medium.", + "add_repo_modal_field_read_data": "Read Data %", + "add_repo_modal_field_read_data_tooltip": "The percentage of pack data in this repository that will be read and verified. Higher values will use more bandwidth (e.g. 100% will re-read the entire repository on each check).", + "add_repo_modal_field_command_modifiers": "Command Modifiers", + "add_repo_modal_field_command_modifiers_tooltip": "Modifiers for the backup operation e.g. set the CPU or IO priority.", + "add_repo_modal_field_io_priority": "IO Priority:", + "add_repo_modal_field_io_priority_tooltip_intro": "Available IO priority modes", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - runs at lower than default disk priority (will prioritize other processes)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - runs at higher than default disk priority (top of disk IO queue)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - only runs when disk bandwidth is idle (e.g. no other operations are queued)", + "add_repo_modal_field_io_priority_placeholder": "Select an IO priority", + "add_repo_modal_field_cpu_priority": "CPU Priority:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Available CPU priority modes:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - no change in priority", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - higher than default priority (backrest must be running as root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - lower than default priority", + "add_repo_modal_field_cpu_priority_placeholder": "Select a CPU priority", + "add_repo_modal_field_auto_unlock": "Auto Unlock", + "add_repo_modal_field_auto_unlock_tooltip": "Auto-unlock will remove lockfiles at the start of forget and prune operations. This is potentially unsafe if the repo is shared by multiple client devices. Disabled by default.", + "add_repo_modal_preview_json": "Repo Config as JSON", + "add_repo_modal_error_missing_password": "Missing repo password. Either provide a password or set one of the env variables RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Failed to fetch summary data: ", + "dashboard_repos_title": "Repos", + "dashboard_repos_empty": "No repos found", + "dashboard_plans_title": "Plans", + "dashboard_plans_empty": "No plans found", + "dashboard_system_info_title": "System Info", + "dashboard_config_path": "Config Path", + "dashboard_data_dir": "Data Directory", + "dashboard_config_json": "Config as JSON", + "dashboard_backup_tooltip_time": "Backup at {time}", + "dashboard_backup_tooltip_pending": "Scheduled, waiting.", + "dashboard_backup_tooltip_finished": "Took {duration}, added {bytes}", + "dashboard_card_backups_30d": "Backups (30d)", + "dashboard_card_backups_ok": "ok", + "dashboard_card_backups_failed": "failed", + "dashboard_card_backups_warning": "warning", + "dashboard_card_bytes_scanned_30d": "Bytes Scanned (30d)", + "dashboard_card_bytes_added_30d": "Bytes Added (30d)", + "dashboard_card_next_backup": "Next Scheduled Backup", + "dashboard_card_none_scheduled": "None Scheduled", + "dashboard_card_bytes_scanned_avg": "Bytes Scanned Avg", + "dashboard_card_bytes_added_avg": "Bytes Added Avg", + "dashboard_remote_hosts_title": "Remote Hosts", + "dashboard_remote_clients_title": "Remote Clients", + "dashboard_peer_instance_id": "Instance ID", + "dashboard_peer_public_key_id": "Public Key ID", + "dashboard_peer_last_state_update": "Last State Update", + "dashboard_peer_ago": "ago" } \ No newline at end of file diff --git a/webui/messages/es.json b/webui/messages/es.json index c76e2df1..6afe9a59 100644 --- a/webui/messages/es.json +++ b/webui/messages/es.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Nombre de usuario", "login_password_required": "¡Por favor ingrese su contraseña!", "login_password_placeholder": "Contraseña", - "login_button": "Acceso" + "login_button": "Acceso", + "add_repo_modal_title_edit": "Editar repositorio Restic", + "add_repo_modal_title_add": "Agregar repositorio Restic", + "add_repo_modal_success_deleted": "Se eliminó el repositorio {id} de la configuración, pero los archivos permanecen. Para liberar espacio, elimine los archivos manualmente. URI: {uri}", + "add_repo_modal_success_updated": "Configuración del repositorio actualizada {uri}", + "add_repo_modal_success_added": "Se agregó el repositorio {uri}", + "add_repo_modal_error_list_snapshots": "No se pudieron listar las instantáneas para el repositorio actualizado/agregado: ", + "add_repo_modal_delete_tooltip": "Elimina el repositorio de la configuración, pero no eliminará el repositorio restic.", + "add_repo_modal_test_config": "Configuración de prueba", + "add_repo_modal_test_success_existing": "Se conectó exitosamente a {uri} y encontró un repositorio existente.", + "add_repo_modal_test_success_new": "Conexión exitosa a {uri} . No se encontró ningún repositorio en esta ubicación; se inicializará uno nuevo.", + "add_repo_modal_test_error": "Error de comprobación: ", + "add_repo_modal_guide_text_p1": "Ver ", + "add_repo_modal_guide_link_text": "Guía de inicio del respaldo", + "add_repo_modal_guide_text_p2": " Para obtener instrucciones sobre la configuración del repositorio o consultar el ", + "add_repo_modal_guide_restic_link_text": "documentación restic", + "add_repo_modal_guide_text_p3": " Para más detalles sobre los repositorios.", + "add_repo_modal_field_repo_name": "Nombre del repositorio", + "add_repo_modal_field_repo_name_tooltip": "ID único que identifica este repositorio en la interfaz de usuario de Backrest (p. ej., s3-mybucket). No se puede modificar después de su creación.", + "add_repo_modal_error_repo_name_required": "Por favor ingrese el nombre del repositorio", + "add_repo_modal_error_repo_exists": "El repositorio con nombre ya existe", + "add_repo_modal_field_uri": "URI del repositorio", + "add_repo_modal_field_uri_tooltip_title": "Los URI de repositorio válidos son:", + "add_repo_modal_field_uri_tooltip_local": "Ruta del sistema de archivos local", + "add_repo_modal_field_uri_tooltip_s3": "S3 por ejemplo s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP, por ejemplo, sftp:usuario@host:/ruta-del-repositorio", + "add_repo_modal_field_uri_tooltip_see": "Ver ", + "add_repo_modal_field_uri_tooltip_restic_docs": "documentos restic", + "add_repo_modal_field_uri_tooltip_info": " Para más información.", + "add_repo_modal_error_uri_required": "Por favor ingrese la URI del repositorio", + "add_repo_modal_field_password": "Contraseña", + "add_repo_modal_field_password_tooltip_intro": "Esta contraseña encripta los datos en su repositorio.", + "add_repo_modal_field_password_tooltip_entropy": "Se recomienda elegir un valor que sea 128 bits de entropía (20 caracteres o más)", + "add_repo_modal_field_password_tooltip_env": "Alternativamente, puede proporcionar credenciales de variable env, por ejemplo, RESTIC_PASSWORD, RESTIC_PASSWORD_FILE o RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Haga clic en [Generar] para generar una contraseña aleatoria desde la API de criptografía aleatoria de su navegador.", + "add_repo_modal_button_generate": "[Generar]", + "add_repo_modal_field_env_vars": "Variables de entorno", + "add_repo_modal_field_env_vars_tooltip": "Variables de entorno que se pasan a restic (p. ej., para proporcionar credenciales S3 o B2). Se admiten referencias a variables de entorno del proceso principal como FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "La variable de entorno debe tener el formato CLAVE=VALOR", + "add_repo_modal_button_set_env": "Establecer variable de entorno", + "add_repo_modal_field_flags": "Banderas", + "add_repo_modal_error_flag_format": "El valor debe ser un indicador CLI, por ejemplo, consulte restic --help", + "add_repo_modal_button_set_flag": "Establecer bandera", + "add_repo_modal_field_prune_policy": "Política de poda", + "add_repo_modal_field_prune_policy_tooltip_p1": "El cronograma en el que se ejecutan las operaciones de poda para este repositorio. Leer ", + "add_repo_modal_field_prune_policy_tooltip_link": "La documentación de RESTIC sobre la personalización de las operaciones de poda", + "add_repo_modal_field_prune_policy_tooltip_p2": " Para más detalles.", + "add_repo_modal_field_max_unused": "Máximo sin usar después de la poda", + "add_repo_modal_field_max_unused_tooltip": "El porcentaje máximo del tamaño del repositorio que puede quedar sin usar tras una operación de poda. Los valores altos reducen la copia, a costa del almacenamiento.", + "add_repo_modal_field_check_policy": "Consultar política", + "add_repo_modal_field_check_policy_tooltip": "La programación según la cual se ejecutan las operaciones de verificación para este repositorio. Las operaciones de verificación de Restic verifican la integridad de su repositorio escaneando las estructuras en disco que conforman sus datos de respaldo. Opcionalmente, la verificación puede configurarse para releer y rehacer el hash de los datos. Esto es lento y puede consumir mucho ancho de banda, pero detectará cualquier bitrot o corrupción silenciosa en el medio de almacenamiento.", + "add_repo_modal_field_read_data": "Leer datos %", + "add_repo_modal_field_read_data_tooltip": "El porcentaje de datos del paquete en este repositorio que se leerá y verificará. Los valores más altos consumirán más ancho de banda (por ejemplo, el 100 % releerá todo el repositorio en cada verificación).", + "add_repo_modal_field_command_modifiers": "Modificadores de comandos", + "add_repo_modal_field_command_modifiers_tooltip": "Modificadores para la operación de copia de seguridad, por ejemplo, establecer la prioridad de CPU o IO.", + "add_repo_modal_field_io_priority": "Prioridad de E/S:", + "add_repo_modal_field_io_priority_tooltip_intro": "Modos de prioridad de E/S disponibles", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW: se ejecuta con una prioridad de disco menor que la predeterminada (priorizará otros procesos)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH: se ejecuta con una prioridad de disco mayor que la predeterminada (parte superior de la cola de E/S del disco)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE: solo se ejecuta cuando el ancho de banda del disco está inactivo (por ejemplo, no hay otras operaciones en cola)", + "add_repo_modal_field_io_priority_placeholder": "Seleccionar una prioridad de E/S", + "add_repo_modal_field_cpu_priority": "Prioridad de CPU:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Modos de prioridad de CPU disponibles:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - sin cambios en la prioridad", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH: prioridad más alta que la predeterminada (backrest debe ejecutarse como root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - prioridad inferior a la predeterminada", + "add_repo_modal_field_cpu_priority_placeholder": "Seleccionar una prioridad de CPU", + "add_repo_modal_field_auto_unlock": "Desbloqueo automático", + "add_repo_modal_field_auto_unlock_tooltip": "El desbloqueo automático eliminará los archivos de bloqueo al iniciar las operaciones de olvido y poda. Esto puede ser peligroso si el repositorio se comparte entre varios dispositivos cliente. Está deshabilitado por defecto.", + "add_repo_modal_preview_json": "Configuración del repositorio como JSON", + "add_repo_modal_error_missing_password": "Falta la contraseña del repositorio. Proporcione una contraseña o configure una de las variables de entorno RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND o RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "No se pudieron obtener los datos de resumen: ", + "dashboard_repos_title": "Repositorios", + "dashboard_repos_empty": "No se encontraron repositorios", + "dashboard_plans_title": "Planes", + "dashboard_plans_empty": "No se encontraron planes", + "dashboard_system_info_title": "Información del sistema", + "dashboard_config_path": "Ruta de configuración", + "dashboard_data_dir": "Directorio de datos", + "dashboard_config_json": "Configurar como JSON", + "dashboard_backup_tooltip_time": "Copia de seguridad a las {time}", + "dashboard_backup_tooltip_pending": "Programado, en espera.", + "dashboard_backup_tooltip_finished": "Tomó {duration} y agregó {bytes}", + "dashboard_card_backups_30d": "Copias de seguridad (30d)", + "dashboard_card_backups_ok": "OK", + "dashboard_card_backups_failed": "fallido", + "dashboard_card_backups_warning": "advertencia", + "dashboard_card_bytes_scanned_30d": "Bytes escaneados (30d)", + "dashboard_card_bytes_added_30d": "Bytes añadidos (30d)", + "dashboard_card_next_backup": "Próxima copia de seguridad programada", + "dashboard_card_none_scheduled": "Ninguno programado", + "dashboard_card_bytes_scanned_avg": "Bytes escaneados promedio", + "dashboard_card_bytes_added_avg": "Bytes añadidos promedio", + "dashboard_remote_hosts_title": "Hosts remotos", + "dashboard_remote_clients_title": "Clientes remotos", + "dashboard_peer_instance_id": "ID de instancia", + "dashboard_peer_public_key_id": "ID de clave pública", + "dashboard_peer_last_state_update": "Última actualización del estado", + "dashboard_peer_ago": "atrás" } \ No newline at end of file diff --git a/webui/messages/fr.json b/webui/messages/fr.json index 91442ea8..d2699155 100644 --- a/webui/messages/fr.json +++ b/webui/messages/fr.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Nom d'utilisateur", "login_password_required": "Veuillez saisir votre mot de passe !", "login_password_placeholder": "Mot de passe", - "login_button": "Se connecter" + "login_button": "Se connecter", + "add_repo_modal_title_edit": "Modifier le dépôt Restic", + "add_repo_modal_title_add": "Ajouter le dépôt Restic", + "add_repo_modal_success_deleted": "Le dépôt {id} a été supprimé de la configuration, mais des fichiers sont toujours présents. Pour libérer de l'espace de stockage, supprimez les fichiers manuellement. URI : {uri}", + "add_repo_modal_success_updated": "Configuration du dépôt mise à jour {uri}", + "add_repo_modal_success_added": "Ajout du dépôt {uri}", + "add_repo_modal_error_list_snapshots": "Impossible de lister les instantanés pour le dépôt mis à jour/ajouté : ", + "add_repo_modal_delete_tooltip": "Supprime le dépôt de la configuration mais ne supprimera pas le dépôt restic.", + "add_repo_modal_test_config": "Configuration de test", + "add_repo_modal_test_success_existing": "Connexion réussie à {uri} et un dépôt existant a été trouvé.", + "add_repo_modal_test_success_new": "Connexion réussie à {uri} . Aucun dépôt existant n'a été trouvé à cet emplacement ; un nouveau sera initialisé.", + "add_repo_modal_test_error": "Erreur de vérification : ", + "add_repo_modal_guide_text_p1": "Voir ", + "add_repo_modal_guide_link_text": "Guide de démarrage pour dossier", + "add_repo_modal_guide_text_p2": " Pour obtenir des instructions sur la configuration du dépôt, consultez le ", + "add_repo_modal_guide_restic_link_text": "documentation restic", + "add_repo_modal_guide_text_p3": " pour plus de détails sur les dépôts.", + "add_repo_modal_field_repo_name": "Nom du dépôt", + "add_repo_modal_field_repo_name_tooltip": "Identifiant unique permettant d'identifier ce dépôt dans l'interface utilisateur de Backrest (par exemple, s3-mybucket). Cet identifiant ne peut pas être modifié après la création du dépôt.", + "add_repo_modal_error_repo_name_required": "Veuillez saisir le nom du dépôt", + "add_repo_modal_error_repo_exists": "Le dépôt portant ce nom existe déjà.", + "add_repo_modal_field_uri": "URI du dépôt", + "add_repo_modal_field_uri_tooltip_title": "Les URI de dépôt valides sont :", + "add_repo_modal_field_uri_tooltip_local": "chemin du système de fichiers local", + "add_repo_modal_field_uri_tooltip_s3": "S3 par exemple s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP, par exemple sftp:utilisateur@hôte:/chemin-du-dépôt", + "add_repo_modal_field_uri_tooltip_see": "Voir ", + "add_repo_modal_field_uri_tooltip_restic_docs": "Documents restic", + "add_repo_modal_field_uri_tooltip_info": " Pour plus d'informations.", + "add_repo_modal_error_uri_required": "Veuillez saisir l'URI du dépôt", + "add_repo_modal_field_password": "Mot de passe", + "add_repo_modal_field_password_tooltip_intro": "Ce mot de passe sert à chiffrer les données de votre dépôt.", + "add_repo_modal_field_password_tooltip_entropy": "Il est recommandé de choisir une valeur d'entropie de 128 bits (20 caractères ou plus).", + "add_repo_modal_field_password_tooltip_env": "Vous pouvez également fournir des informations d'identification via des variables d'environnement, par exemple RESTIC_PASSWORD, RESTIC_PASSWORD_FILE ou RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Cliquez sur [Générer] pour générer un mot de passe aléatoire à partir de l'API crypto-aléatoire de votre navigateur.", + "add_repo_modal_button_generate": "[Générer]", + "add_repo_modal_field_env_vars": "Variables d'environnement", + "add_repo_modal_field_env_vars_tooltip": "Les variables d'environnement transmises à restic (par exemple pour fournir les informations d'identification S3 ou B2) sont prises en charge. Les références aux variables d'environnement du processus parent sont prises en charge sous la forme FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "La variable d'environnement doit être au format CLÉ=VALEUR", + "add_repo_modal_button_set_env": "Définir la variable d'environnement", + "add_repo_modal_field_flags": "drapeaux", + "add_repo_modal_error_flag_format": "La valeur doit être un paramètre de ligne de commande, par exemple, voir restic --help", + "add_repo_modal_button_set_flag": "Définir le drapeau", + "add_repo_modal_field_prune_policy": "Politique d'élagage", + "add_repo_modal_field_prune_policy_tooltip_p1": "Planification des opérations d'élagage pour ce dépôt. Lire ", + "add_repo_modal_field_prune_policy_tooltip_link": "la documentation de restic sur la personnalisation des opérations de purge", + "add_repo_modal_field_prune_policy_tooltip_p2": " pour plus de détails.", + "add_repo_modal_field_max_unused": "Max inutilisé après élagage", + "add_repo_modal_field_max_unused_tooltip": "Le pourcentage maximal de la taille du dépôt qui peut rester inutilisé après une opération d'élagage. Des valeurs élevées réduisent les copies au détriment de l'espace de stockage.", + "add_repo_modal_field_check_policy": "Vérifier la politique", + "add_repo_modal_field_check_policy_tooltip": "Planification des opérations de vérification pour ce dépôt. Les opérations de vérification Restic contrôlent l'intégrité de votre dépôt en analysant les structures sur disque qui composent vos données de sauvegarde. La vérification peut être configurée pour relire et recalculer les données ; cette opération est lente et gourmande en bande passante, mais elle permet de détecter toute altération ou corruption silencieuse du support de stockage.", + "add_repo_modal_field_read_data": "Lire les données %", + "add_repo_modal_field_read_data_tooltip": "Le pourcentage de données de paquets de ce dépôt qui seront lues et vérifiées. Des valeurs plus élevées consommeront plus de bande passante (par exemple, 100 % entraînera la relecture de l'intégralité du dépôt à chaque vérification).", + "add_repo_modal_field_command_modifiers": "Modificateurs de commande", + "add_repo_modal_field_command_modifiers_tooltip": "Modificateurs pour l'opération de sauvegarde, par exemple, définir la priorité du processeur ou des E/S.", + "add_repo_modal_field_io_priority": "Priorité E/S :", + "add_repo_modal_field_io_priority_tooltip_intro": "Modes de priorité d'E/S disponibles", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - s'exécute à une priorité disque inférieure à la priorité par défaut (priorisera les autres processus)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - s'exécute à une priorité disque supérieure à la priorité par défaut (en haut de la file d'attente des E/S disque)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - s'exécute uniquement lorsque la bande passante du disque est inactive (par exemple, lorsqu'aucune autre opération n'est en file d'attente).", + "add_repo_modal_field_io_priority_placeholder": "Sélectionnez une priorité d'E/S", + "add_repo_modal_field_cpu_priority": "Priorité du processeur :", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Modes de priorité du processeur disponibles :", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - aucune modification de la priorité", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - priorité supérieure à la priorité par défaut (le backrest doit être exécuté en tant que root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - priorité inférieure à la priorité par défaut", + "add_repo_modal_field_cpu_priority_placeholder": "Sélectionnez une priorité du processeur", + "add_repo_modal_field_auto_unlock": "Déverrouillage automatique", + "add_repo_modal_field_auto_unlock_tooltip": "Le déverrouillage automatique supprime les fichiers de verrouillage au début des opérations d'oubli et d'élagage. Cette opération peut s'avérer dangereuse si le dépôt est partagé par plusieurs appareils clients. Elle est désactivée par défaut.", + "add_repo_modal_preview_json": "Configuration du dépôt au format JSON", + "add_repo_modal_error_missing_password": "Mot de passe du dépôt manquant. Veuillez fournir un mot de passe ou définir l'une des variables d'environnement RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND ou RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Impossible de récupérer les données récapitulatives : ", + "dashboard_repos_title": "Repos", + "dashboard_repos_empty": "Aucun dépôt trouvé", + "dashboard_plans_title": "Plans", + "dashboard_plans_empty": "Aucun plan trouvé", + "dashboard_system_info_title": "Informations système", + "dashboard_config_path": "Chemin de configuration", + "dashboard_data_dir": "Répertoire de données", + "dashboard_config_json": "Configuration au format JSON", + "dashboard_backup_tooltip_time": "Sauvegarde à {time}", + "dashboard_backup_tooltip_pending": "Programmé, en attente.", + "dashboard_backup_tooltip_finished": "A pris {duration} , a ajouté {bytes}", + "dashboard_card_backups_30d": "Sauvegardes (30 jours)", + "dashboard_card_backups_ok": "d'accord", + "dashboard_card_backups_failed": "échoué", + "dashboard_card_backups_warning": "avertissement", + "dashboard_card_bytes_scanned_30d": "Octets analysés (30j)", + "dashboard_card_bytes_added_30d": "Octets ajoutés (30j)", + "dashboard_card_next_backup": "Prochaine sauvegarde planifiée", + "dashboard_card_none_scheduled": "Aucun événement prévu", + "dashboard_card_bytes_scanned_avg": "Octets scannés en moyenne", + "dashboard_card_bytes_added_avg": "Octets ajoutés en moyenne", + "dashboard_remote_hosts_title": "Hôtes distants", + "dashboard_remote_clients_title": "Clients à distance", + "dashboard_peer_instance_id": "ID d'instance", + "dashboard_peer_public_key_id": "ID de clé publique", + "dashboard_peer_last_state_update": "Dernière mise à jour de l'état", + "dashboard_peer_ago": "il y a" } \ No newline at end of file diff --git a/webui/messages/hi.json b/webui/messages/hi.json index f72485e5..828d2e40 100644 --- a/webui/messages/hi.json +++ b/webui/messages/hi.json @@ -155,5 +155,103 @@ "login_username_placeholder": "उपयोगकर्ता नाम", "login_password_required": "कृपया अपना पासवर्ड दर्ज करें!", "login_password_placeholder": "पासवर्ड", - "login_button": "लॉग इन करें" + "login_button": "लॉग इन करें", + "add_repo_modal_title_edit": "रेस्टिक रिपॉजिटरी संपादित करें", + "add_repo_modal_title_add": "रेस्टिक रिपॉजिटरी जोड़ें", + "add_repo_modal_success_deleted": "कॉन्फ़िगरेशन से रेपो {id} हटा दिया गया है, लेकिन फ़ाइलें मौजूद हैं। स्टोरेज खाली करने के लिए, फ़ाइलों को मैन्युअल रूप से हटा दें। URI: {uri}", + "add_repo_modal_success_updated": "अपडेटेड रेपो कॉन्फ़िगरेशन {uri}", + "add_repo_modal_success_added": "रिपॉजिटरी जोड़ी गई {uri}", + "add_repo_modal_error_list_snapshots": "अपडेट किए गए/जोड़े गए रिपॉजिटरी के लिए स्नैपशॉट सूचीबद्ध करने में विफल: ", + "add_repo_modal_delete_tooltip": "यह कॉन्फ़िगरेशन से रिपॉज़िटरी को हटा देता है, लेकिन रेस्टिक रिपॉज़िटरी को डिलीट नहीं करेगा।", + "add_repo_modal_test_config": "परीक्षण विन्यास", + "add_repo_modal_test_success_existing": "{uri} से सफलतापूर्वक कनेक्ट हो गया और एक मौजूदा रिपॉजिटरी मिल गई।", + "add_repo_modal_test_success_new": "{uri} से सफलतापूर्वक कनेक्ट हो गया। इस स्थान पर कोई मौजूदा रिपॉजिटरी नहीं मिली, एक नई रिपॉजिटरी बनाई जाएगी।", + "add_repo_modal_test_error": "जाँच त्रुटि: ", + "add_repo_modal_guide_text_p1": "देखना ", + "add_repo_modal_guide_link_text": "बैकरेस्ट के साथ शुरुआत करने के लिए गाइड", + "add_repo_modal_guide_text_p2": " रिपॉजिटरी कॉन्फ़िगरेशन निर्देशों के लिए या जाँच करें ", + "add_repo_modal_guide_restic_link_text": "रेस्टिक दस्तावेज़ीकरण", + "add_repo_modal_guide_text_p3": " रिपॉजिटरी के बारे में अधिक जानकारी के लिए।", + "add_repo_modal_field_repo_name": "रेपो का नाम", + "add_repo_modal_field_repo_name_tooltip": "यह एक विशिष्ट आईडी है जो बैकरेस्ट यूआई (जैसे s3-mybucket) में इस रिपॉजिटरी की पहचान करती है। इसे बनाने के बाद बदला नहीं जा सकता।", + "add_repo_modal_error_repo_name_required": "कृपया रिपॉजिटरी का नाम दर्ज करें", + "add_repo_modal_error_repo_exists": "इस नाम से रिपॉज़िटरी पहले से मौजूद है", + "add_repo_modal_field_uri": "रिपॉजिटरी यूआरआई", + "add_repo_modal_field_uri_tooltip_title": "मान्य रेपो यूआरआई इस प्रकार हैं:", + "add_repo_modal_field_uri_tooltip_local": "स्थानीय फ़ाइल सिस्टम पथ", + "add_repo_modal_field_uri_tooltip_s3": "S3 eg s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP उदाहरण: sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "देखना ", + "add_repo_modal_field_uri_tooltip_restic_docs": "रेस्टिक डॉक्स", + "add_repo_modal_field_uri_tooltip_info": " अधिक जानकारी के लिए।", + "add_repo_modal_error_uri_required": "कृपया रेपो यूआरआई दर्ज करें", + "add_repo_modal_field_password": "पासवर्ड", + "add_repo_modal_field_password_tooltip_intro": "यह पासवर्ड आपके डेटाबेस में मौजूद डेटा को एन्क्रिप्ट करता है।", + "add_repo_modal_field_password_tooltip_entropy": "128 बिट्स एंट्रॉपी (20 अक्षर या उससे अधिक) वाला मान चुनने की सलाह दी जाती है।", + "add_repo_modal_field_password_tooltip_env": "आप वैकल्पिक रूप से env वेरिएबल क्रेडेंशियल्स जैसे RESTIC_PASSWORD, RESTIC_PASSWORD_FILE, या RESTIC_PASSWORD_COMMAND प्रदान कर सकते हैं।", + "add_repo_modal_field_password_tooltip_generate": "अपने ब्राउज़र के क्रिप्टो रैंडम एपीआई से एक रैंडम पासवर्ड प्राप्त करने के लिए [जनरेट] पर क्लिक करें।", + "add_repo_modal_button_generate": "[उत्पन्न]", + "add_repo_modal_field_env_vars": "पर्यावरण चर", + "add_repo_modal_field_env_vars_tooltip": "पर्यावरण चर जो restic को पास किए जाते हैं (उदाहरण के लिए S3 या B2 क्रेडेंशियल प्रदान करने के लिए)। पैरेंट-प्रोसेस पर्यावरण चर के संदर्भ FOO=$ {MY_FOO_VAR} के रूप में समर्थित हैं।", + "add_repo_modal_error_env_format": "पर्यावरण चर का प्रारूप KEY=VALUE होना चाहिए।", + "add_repo_modal_button_set_env": "पर्यावरण चर सेट करें", + "add_repo_modal_field_flags": "झंडे", + "add_repo_modal_error_flag_format": "मान एक CLI फ़्लैग होना चाहिए, उदाहरण के लिए restic --help देखें।", + "add_repo_modal_button_set_flag": "झंडा सेट करें", + "add_repo_modal_field_prune_policy": "छंटाई नीति", + "add_repo_modal_field_prune_policy_tooltip_p1": "इस रिपॉजिटरी के लिए प्रून ऑपरेशन चलाने का शेड्यूल। पढ़ें ", + "add_repo_modal_field_prune_policy_tooltip_link": "प्रून ऑपरेशन को अनुकूलित करने के बारे में रेस्टिक दस्तावेज़", + "add_repo_modal_field_prune_policy_tooltip_p2": " अधिक जानकारी के लिए।", + "add_repo_modal_field_max_unused": "छंटाई के बाद अधिकतम अप्रयुक्त", + "add_repo_modal_field_max_unused_tooltip": "प्रूनिंग ऑपरेशन पूरा होने के बाद रिपॉजिटरी के आकार का अधिकतम प्रतिशत जो अप्रयुक्त रह सकता है। उच्च मान स्टोरेज की कीमत पर कॉपी करने की प्रक्रिया को कम करते हैं।", + "add_repo_modal_field_check_policy": "नीति जांचें", + "add_repo_modal_field_check_policy_tooltip": "इस रिपॉजिटरी के लिए चेक ऑपरेशन चलाने का शेड्यूल। रेस्टिक चेक ऑपरेशन आपके बैकअप डेटा को बनाने वाले ऑन-डिस्क स्ट्रक्चर को स्कैन करके आपकी रिपॉजिटरी की अखंडता को सत्यापित करते हैं। चेक को वैकल्पिक रूप से डेटा को पुनः पढ़ने और पुनः हैश करने के लिए कॉन्फ़िगर किया जा सकता है; यह धीमा है और बैंडविड्थ के लिए महंगा हो सकता है, लेकिन स्टोरेज माध्यम में किसी भी बिटरोट या साइलेंट करप्शन का पता लगा लेगा।", + "add_repo_modal_field_read_data": "डेटा पढ़ें %", + "add_repo_modal_field_read_data_tooltip": "इस रिपॉजिटरी में मौजूद पैक डेटा का वह प्रतिशत जिसे पढ़ा और सत्यापित किया जाएगा। उच्च मान अधिक बैंडविड्थ का उपयोग करेंगे (उदाहरण के लिए, 100% प्रत्येक जांच पर पूरी रिपॉजिटरी को दोबारा पढ़ेगा)।", + "add_repo_modal_field_command_modifiers": "कमांड संशोधक", + "add_repo_modal_field_command_modifiers_tooltip": "बैकअप ऑपरेशन के लिए मॉडिफायर, उदाहरण के लिए सीपीयू या आईओ प्राथमिकता निर्धारित करना।", + "add_repo_modal_field_io_priority": "आईओ प्राथमिकता:", + "add_repo_modal_field_io_priority_tooltip_intro": "उपलब्ध IO प्राथमिकता मोड", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - डिफ़ॉल्ट डिस्क प्राथमिकता से कम पर चलता है (अन्य प्रक्रियाओं को प्राथमिकता देगा)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - डिफ़ॉल्ट डिस्क प्राथमिकता (डिस्क IO कतार के शीर्ष पर) से उच्चतर प्राथमिकता पर चलता है।", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - यह केवल तभी चलता है जब डिस्क बैंडविड्थ निष्क्रिय हो (उदाहरण के लिए, कोई अन्य ऑपरेशन कतार में न हो)।", + "add_repo_modal_field_io_priority_placeholder": "एक IO प्राथमिकता चुनें", + "add_repo_modal_field_cpu_priority": "सीपीयू प्राथमिकता:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "उपलब्ध सीपीयू प्राथमिकता मोड:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - प्राथमिकता में कोई बदलाव नहीं", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - डिफ़ॉल्ट प्राथमिकता से अधिक (बैकरेस्ट को रूट के रूप में चलना चाहिए)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - डिफ़ॉल्ट प्राथमिकता से कम", + "add_repo_modal_field_cpu_priority_placeholder": "सीपीयू प्राथमिकता का चयन करें", + "add_repo_modal_field_auto_unlock": "ऑटो अनलॉक", + "add_repo_modal_field_auto_unlock_tooltip": "ऑटो-अनलॉक, फॉरगेट और प्रून ऑपरेशन शुरू होने पर लॉकफाइल हटा देगा। यदि रिपॉजिटरी कई क्लाइंट डिवाइसों द्वारा साझा की जाती है, तो यह संभावित रूप से असुरक्षित हो सकता है। डिफ़ॉल्ट रूप से अक्षम।", + "add_repo_modal_preview_json": "JSON फॉर्मेट में रेपो कॉन्फ़िगरेशन", + "add_repo_modal_error_missing_password": "रिपॉजिटरी पासवर्ड गायब है। कृपया पासवर्ड प्रदान करें या RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND या RESTIC_PASSWORD_FILE में से किसी एक एनवायरनमेंट वेरिएबल को सेट करें।", + "dashboard_error_fetch": "सारांश डेटा प्राप्त करने में विफल: ", + "dashboard_repos_title": "रेपोस", + "dashboard_repos_empty": "कोई रिपॉजिटरी नहीं मिली", + "dashboard_plans_title": "योजनाओं", + "dashboard_plans_empty": "कोई योजना नहीं मिली", + "dashboard_system_info_title": "व्यवस्था की सूचना", + "dashboard_config_path": "कॉन्फ़िगरेशन पथ", + "dashboard_data_dir": "डेटा निर्देशिका", + "dashboard_config_json": "कॉन्फ़िगरेशन को JSON के रूप में प्रस्तुत करें", + "dashboard_backup_tooltip_time": "बैकअप {time} पर", + "dashboard_backup_tooltip_pending": "निर्धारित है, प्रतीक्षा कर रहे हैं।", + "dashboard_backup_tooltip_finished": "{duration} लिया, {bytes} जोड़ा", + "dashboard_card_backups_30d": "बैकअप (30 दिन)", + "dashboard_card_backups_ok": "ठीक है", + "dashboard_card_backups_failed": "असफल", + "dashboard_card_backups_warning": "चेतावनी", + "dashboard_card_bytes_scanned_30d": "स्कैन किए गए बाइट्स (30 दिन)", + "dashboard_card_bytes_added_30d": "जोड़े गए बाइट्स (30 दिन)", + "dashboard_card_next_backup": "अगला निर्धारित बैकअप", + "dashboard_card_none_scheduled": "कोई निर्धारित नहीं", + "dashboard_card_bytes_scanned_avg": "स्कैन किए गए बाइट्स का औसत", + "dashboard_card_bytes_added_avg": "जोड़े गए बाइट्स औसत", + "dashboard_remote_hosts_title": "रिमोट होस्ट", + "dashboard_remote_clients_title": "दूरस्थ ग्राहक", + "dashboard_peer_instance_id": "उदाहरण आईडी", + "dashboard_peer_public_key_id": "सार्वजनिक कुंजी आईडी", + "dashboard_peer_last_state_update": "नवीनतम राज्य अद्यतन", + "dashboard_peer_ago": "पहले" } \ No newline at end of file diff --git a/webui/messages/id.json b/webui/messages/id.json index 4bf7e610..5e8ef101 100644 --- a/webui/messages/id.json +++ b/webui/messages/id.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Nama belakang", "login_password_required": "Silakan masukkan kata sandi Anda!", "login_password_placeholder": "Kata sandi", - "login_button": "Masuk" + "login_button": "Masuk", + "add_repo_modal_title_edit": "Edit Repositori Restic", + "add_repo_modal_title_add": "Tambahkan Repositori Restic", + "add_repo_modal_success_deleted": "Repositori {id} telah dihapus dari konfigurasi, tetapi file tetap ada. Untuk membebaskan penyimpanan, hapus file secara manual. URI: {uri}", + "add_repo_modal_success_updated": "Konfigurasi repo yang diperbarui {uri}", + "add_repo_modal_success_added": "Repo {uri} telah ditambahkan.", + "add_repo_modal_error_list_snapshots": "Gagal menampilkan snapshot untuk repositori yang diperbarui/ditambahkan: ", + "add_repo_modal_delete_tooltip": "Menghapus repositori dari konfigurasi tetapi tidak akan menghapus repositori restic.", + "add_repo_modal_test_config": "Konfigurasi Pengujian", + "add_repo_modal_test_success_existing": "Berhasil terhubung ke {uri} dan menemukan repositori yang sudah ada.", + "add_repo_modal_test_success_new": "Terhubung berhasil ke {uri} . Tidak ditemukan repositori yang ada di lokasi ini, repositori baru akan diinisialisasi.", + "add_repo_modal_test_error": "Periksa kesalahan: ", + "add_repo_modal_guide_text_p1": "Melihat ", + "add_repo_modal_guide_link_text": "panduan memulai sandaran punggung", + "add_repo_modal_guide_text_p2": " untuk petunjuk konfigurasi repositori atau periksa ", + "add_repo_modal_guide_restic_link_text": "dokumentasi restic", + "add_repo_modal_guide_text_p3": " untuk detail selengkapnya tentang repositori.", + "add_repo_modal_field_repo_name": "Nama Repositori", + "add_repo_modal_field_repo_name_tooltip": "ID unik yang mengidentifikasi repositori ini di UI backend (misalnya s3-mybucket). ID ini tidak dapat diubah setelah pembuatan.", + "add_repo_modal_error_repo_name_required": "Silakan masukkan nama repositori", + "add_repo_modal_error_repo_exists": "Repositori dengan nama sudah ada.", + "add_repo_modal_field_uri": "URI Repositori", + "add_repo_modal_field_uri_tooltip_title": "URI Repo yang valid adalah:", + "add_repo_modal_field_uri_tooltip_local": "Jalur sistem file lokal", + "add_repo_modal_field_uri_tooltip_s3": "S3 misalnya s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP contohnya sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "Melihat ", + "add_repo_modal_field_uri_tooltip_restic_docs": "dokumen restic", + "add_repo_modal_field_uri_tooltip_info": " untuk info selengkapnya.", + "add_repo_modal_error_uri_required": "Silakan masukkan URI repositori", + "add_repo_modal_field_password": "Kata sandi", + "add_repo_modal_field_password_tooltip_intro": "Kata sandi ini digunakan untuk mengenkripsi data di repositori Anda.", + "add_repo_modal_field_password_tooltip_entropy": "Disarankan untuk memilih nilai entropi 128 bit (20 karakter atau lebih panjang).", + "add_repo_modal_field_password_tooltip_env": "Sebagai alternatif, Anda dapat memberikan kredensial variabel lingkungan, misalnya RESTIC_PASSWORD, RESTIC_PASSWORD_FILE, atau RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Klik [Hasilkan] untuk membuat kata sandi acak dari API kriptografi acak peramban Anda.", + "add_repo_modal_button_generate": "[Menghasilkan]", + "add_repo_modal_field_env_vars": "Variabel Lingkungan", + "add_repo_modal_field_env_vars_tooltip": "Variabel lingkungan yang diteruskan ke restic (misalnya untuk menyediakan kredensial S3 atau B2). Referensi ke variabel lingkungan proses induk didukung sebagai FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "Variabel lingkungan harus dalam format KEY=VALUE", + "add_repo_modal_button_set_env": "Atur Variabel Lingkungan", + "add_repo_modal_field_flags": "Bendera", + "add_repo_modal_error_flag_format": "Nilainya harus berupa flag CLI, misalnya lihat restic --help", + "add_repo_modal_button_set_flag": "Tetapkan Bendera", + "add_repo_modal_field_prune_policy": "Kebijakan Pemangkasan", + "add_repo_modal_field_prune_policy_tooltip_p1": "Jadwal pelaksanaan operasi pembersihan untuk repositori ini. Baca ", + "add_repo_modal_field_prune_policy_tooltip_link": "Dokumentasi Restic tentang kustomisasi operasi pemangkasan.", + "add_repo_modal_field_prune_policy_tooltip_p2": " untuk lebih jelasnya.", + "add_repo_modal_field_max_unused": "Maksimum yang Tidak Terpakai Setelah Pemangkasan", + "add_repo_modal_field_max_unused_tooltip": "Persentase maksimum ukuran repositori yang boleh tidak terpakai setelah operasi pembersihan selesai. Nilai tinggi mengurangi penyalinan dengan mengorbankan ruang penyimpanan.", + "add_repo_modal_field_check_policy": "Periksa Kebijakan", + "add_repo_modal_field_check_policy_tooltip": "Jadwal pelaksanaan operasi pengecekan untuk repositori ini. Operasi pengecekan Restic memverifikasi integritas repositori Anda dengan memindai struktur pada disk yang membentuk data cadangan Anda. Pengecekan dapat dikonfigurasi secara opsional untuk membaca ulang dan melakukan hashing ulang data; proses ini lambat dan dapat memakan bandwidth yang besar, tetapi akan mendeteksi kerusakan data atau korupsi tersembunyi pada media penyimpanan.", + "add_repo_modal_field_read_data": "Persentase Pembacaan Data", + "add_repo_modal_field_read_data_tooltip": "Persentase data paket dalam repositori ini yang akan dibaca dan diverifikasi. Nilai yang lebih tinggi akan menggunakan lebih banyak bandwidth (misalnya 100% akan membaca ulang seluruh repositori pada setiap pengecekan).", + "add_repo_modal_field_command_modifiers": "Pengubah Perintah", + "add_repo_modal_field_command_modifiers_tooltip": "Pengubah untuk operasi pencadangan, misalnya mengatur prioritas CPU atau IO.", + "add_repo_modal_field_io_priority": "Prioritas IO:", + "add_repo_modal_field_io_priority_tooltip_intro": "Mode prioritas IO yang tersedia", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - berjalan pada prioritas disk yang lebih rendah dari default (akan memprioritaskan proses lain)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - berjalan pada prioritas disk yang lebih tinggi dari default (di bagian atas antrian IO disk)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - hanya berjalan saat bandwidth disk sedang menganggur (misalnya, tidak ada operasi lain yang sedang mengantre)", + "add_repo_modal_field_io_priority_placeholder": "Pilih prioritas IO", + "add_repo_modal_field_cpu_priority": "Prioritas CPU:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Mode prioritas CPU yang tersedia:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - tidak ada perubahan prioritas", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - prioritas lebih tinggi dari default (backrest harus dijalankan sebagai root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - prioritas lebih rendah dari prioritas default", + "add_repo_modal_field_cpu_priority_placeholder": "Pilih prioritas CPU", + "add_repo_modal_field_auto_unlock": "Buka Kunci Otomatis", + "add_repo_modal_field_auto_unlock_tooltip": "Fitur buka kunci otomatis akan menghapus file kunci di awal operasi lupakan dan pangkas. Ini berpotensi tidak aman jika repositori digunakan bersama oleh beberapa perangkat klien. Dinonaktifkan secara default.", + "add_repo_modal_preview_json": "Konfigurasi Repositori sebagai JSON", + "add_repo_modal_error_missing_password": "Kata sandi repositori hilang. Berikan kata sandi atau atur salah satu variabel lingkungan RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Gagal mengambil data ringkasan: ", + "dashboard_repos_title": "Repositori", + "dashboard_repos_empty": "Tidak ditemukan repositori.", + "dashboard_plans_title": "Rencana", + "dashboard_plans_empty": "Tidak ditemukan rencana.", + "dashboard_system_info_title": "Informasi Sistem", + "dashboard_config_path": "Jalur Konfigurasi", + "dashboard_data_dir": "Direktori Data", + "dashboard_config_json": "Konfigurasi sebagai JSON", + "dashboard_backup_tooltip_time": "Pencadangan pada {time}", + "dashboard_backup_tooltip_pending": "Terjadwal, menunggu.", + "dashboard_backup_tooltip_finished": "Mengambil {duration} , menambahkan {bytes}", + "dashboard_card_backups_30d": "Cadangan (30 hari)", + "dashboard_card_backups_ok": "Oke", + "dashboard_card_backups_failed": "gagal", + "dashboard_card_backups_warning": "peringatan", + "dashboard_card_bytes_scanned_30d": "Byte yang Dipindai (30d)", + "dashboard_card_bytes_added_30d": "Byte Ditambahkan (30d)", + "dashboard_card_next_backup": "Pencadangan Terjadwal Berikutnya", + "dashboard_card_none_scheduled": "Tidak ada jadwal", + "dashboard_card_bytes_scanned_avg": "Rata-rata Byte yang Dipindai", + "dashboard_card_bytes_added_avg": "Rata-rata Byte yang Ditambahkan", + "dashboard_remote_hosts_title": "Host Jarak Jauh", + "dashboard_remote_clients_title": "Klien Jarak Jauh", + "dashboard_peer_instance_id": "ID Instansi", + "dashboard_peer_public_key_id": "ID Kunci Publik", + "dashboard_peer_last_state_update": "Pembaruan Status Terakhir", + "dashboard_peer_ago": "yang lalu" } \ No newline at end of file diff --git a/webui/messages/it.json b/webui/messages/it.json index bb839b71..791648ec 100644 --- a/webui/messages/it.json +++ b/webui/messages/it.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Nome utente", "login_password_required": "Inserisci la tua password!", "login_password_placeholder": "Password", - "login_button": "Login" + "login_button": "Login", + "add_repo_modal_title_edit": "Modifica repository Restic", + "add_repo_modal_title_add": "Aggiungi repository Restic", + "add_repo_modal_success_deleted": "Eliminato il repository {id} dalla configurazione, ma i file rimangono. Per liberare spazio, elimina i file manualmente. URI: {uri}", + "add_repo_modal_success_updated": "Configurazione del repository aggiornata {uri}", + "add_repo_modal_success_added": "Aggiunto repo {uri}", + "add_repo_modal_error_list_snapshots": "Impossibile elencare gli snapshot per il repository aggiornato/aggiunto: ", + "add_repo_modal_delete_tooltip": "Rimuove il repository dalla configurazione ma non eliminerà il repository restic", + "add_repo_modal_test_config": "Configurazione di prova", + "add_repo_modal_test_success_existing": "Connessione riuscita a {uri} e trovato un repository esistente.", + "add_repo_modal_test_success_new": "Connessione riuscita a {uri} . Nessun repository esistente trovato in questa posizione, ne verrà inizializzato uno nuovo.", + "add_repo_modal_test_error": "Errore di controllo: ", + "add_repo_modal_guide_text_p1": "Vedere ", + "add_repo_modal_guide_link_text": "guida introduttiva allo schienale", + "add_repo_modal_guide_text_p2": " per le istruzioni di configurazione del repository o controllare il ", + "add_repo_modal_guide_restic_link_text": "documentazione restistica", + "add_repo_modal_guide_text_p3": " per maggiori dettagli sui repository.", + "add_repo_modal_field_repo_name": "Nome del repository", + "add_repo_modal_field_repo_name_tooltip": "ID univoco che identifica questo repository nell'interfaccia utente di Backrest (ad esempio s3-mybucket). Non può essere modificato dopo la creazione.", + "add_repo_modal_error_repo_name_required": "Inserisci il nome del repository", + "add_repo_modal_error_repo_exists": "Il repository con nome esiste già", + "add_repo_modal_field_uri": "URI del repository", + "add_repo_modal_field_uri_tooltip_title": "Gli URI Repo validi sono:", + "add_repo_modal_field_uri_tooltip_local": "Percorso del file system locale", + "add_repo_modal_field_uri_tooltip_s3": "S3 ad esempio s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP ad esempio sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "Vedere ", + "add_repo_modal_field_uri_tooltip_restic_docs": "documenti restic", + "add_repo_modal_field_uri_tooltip_info": " per maggiori informazioni.", + "add_repo_modal_error_uri_required": "Inserisci l'URI del repository", + "add_repo_modal_field_password": "Password", + "add_repo_modal_field_password_tooltip_intro": "Questa password crittografa i dati nel tuo repository.", + "add_repo_modal_field_password_tooltip_entropy": "Si consiglia di scegliere un valore pari a 128 bit di entropia (20 caratteri o più)", + "add_repo_modal_field_password_tooltip_env": "In alternativa, è possibile fornire credenziali variabili di ambiente, ad esempio RESTIC_PASSWORD, RESTIC_PASSWORD_FILE o RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Fai clic su [Genera] per generare una password casuale dall'API crittografica casuale del tuo browser.", + "add_repo_modal_button_generate": "[Generare]", + "add_repo_modal_field_env_vars": "Env Vars", + "add_repo_modal_field_env_vars_tooltip": "Variabili di ambiente che vengono passate a restic (ad esempio per fornire credenziali S3 o B2). I riferimenti alle variabili di ambiente del processo padre sono supportati come FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "La variabile d'ambiente deve essere nel formato CHIAVE=VALORE", + "add_repo_modal_button_set_env": "Imposta variabile d'ambiente", + "add_repo_modal_field_flags": "Bandiere", + "add_repo_modal_error_flag_format": "Il valore dovrebbe essere un flag CLI, ad esempio vedere restic --help", + "add_repo_modal_button_set_flag": "Imposta bandiera", + "add_repo_modal_field_prune_policy": "Politica di potatura", + "add_repo_modal_field_prune_policy_tooltip_p1": "La pianificazione in base alla quale vengono eseguite le operazioni di potatura per questo repository. Leggi ", + "add_repo_modal_field_prune_policy_tooltip_link": "la documentazione restic sulla personalizzazione delle operazioni di potatura", + "add_repo_modal_field_prune_policy_tooltip_p2": " per maggiori dettagli.", + "add_repo_modal_field_max_unused": "Max inutilizzato dopo la potatura", + "add_repo_modal_field_max_unused_tooltip": "Percentuale massima della dimensione del repository che può rimanere inutilizzata dopo il completamento di un'operazione di pruning. Valori elevati riducono la copia a scapito dello spazio di archiviazione.", + "add_repo_modal_field_check_policy": "Controlla la politica", + "add_repo_modal_field_check_policy_tooltip": "La pianificazione in base alla quale vengono eseguite le operazioni di controllo per questo repository. Le operazioni di controllo Restic verificano l'integrità del repository analizzando le strutture su disco che compongono i dati di backup. Il controllo può essere opzionalmente configurato per rileggere e rieseguire l'hash dei dati. Questa operazione è lenta e può richiedere un dispendio di banda, ma rileverà eventuali bitrot o danneggiamenti silenti nel supporto di archiviazione.", + "add_repo_modal_field_read_data": "% di dati letti", + "add_repo_modal_field_read_data_tooltip": "La percentuale di dati del pacchetto in questo repository che verrà letta e verificata. Valori più alti utilizzeranno più larghezza di banda (ad esempio, il 100% rileggerà l'intero repository a ogni controllo).", + "add_repo_modal_field_command_modifiers": "Modificatori di comando", + "add_repo_modal_field_command_modifiers_tooltip": "Modificatori per l'operazione di backup, ad esempio impostano la priorità della CPU o dell'IO.", + "add_repo_modal_field_io_priority": "Priorità IO:", + "add_repo_modal_field_io_priority_tooltip_intro": "Modalità di priorità IO disponibili", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - viene eseguito con una priorità del disco inferiore a quella predefinita (darà priorità ad altri processi)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - viene eseguito con una priorità del disco superiore a quella predefinita (in cima alla coda IO del disco)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - viene eseguito solo quando la larghezza di banda del disco è inattiva (ad esempio, non ci sono altre operazioni in coda)", + "add_repo_modal_field_io_priority_placeholder": "Seleziona una priorità IO", + "add_repo_modal_field_cpu_priority": "Priorità CPU:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Modalità di priorità CPU disponibili:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - nessuna modifica alla priorità", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - priorità superiore a quella predefinita (backrest deve essere eseguito come root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - priorità inferiore a quella predefinita", + "add_repo_modal_field_cpu_priority_placeholder": "Seleziona una priorità della CPU", + "add_repo_modal_field_auto_unlock": "Sblocco automatico", + "add_repo_modal_field_auto_unlock_tooltip": "Lo sblocco automatico rimuoverà i file di blocco all'inizio delle operazioni di forget e prune. Questa opzione è potenzialmente pericolosa se il repository è condiviso da più dispositivi client. Disabilitata per impostazione predefinita.", + "add_repo_modal_preview_json": "Configurazione del repository come JSON", + "add_repo_modal_error_missing_password": "Password del repository mancante. Fornire una password o impostare una delle variabili di ambiente RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Impossibile recuperare i dati di riepilogo: ", + "dashboard_repos_title": "Riposo", + "dashboard_repos_empty": "Nessun repository trovato", + "dashboard_plans_title": "Piani", + "dashboard_plans_empty": "Nessun piano trovato", + "dashboard_system_info_title": "Informazioni di sistema", + "dashboard_config_path": "Percorso di configurazione", + "dashboard_data_dir": "Directory dei dati", + "dashboard_config_json": "Configurazione come JSON", + "dashboard_backup_tooltip_time": "Backup a {time}", + "dashboard_backup_tooltip_pending": "Programmato, in attesa.", + "dashboard_backup_tooltip_finished": "Ha preso {duration} , ha aggiunto {bytes}", + "dashboard_card_backups_30d": "Backup (30g)", + "dashboard_card_backups_ok": "OK", + "dashboard_card_backups_failed": "fallito", + "dashboard_card_backups_warning": "avvertimento", + "dashboard_card_bytes_scanned_30d": "Byte scansionati (30d)", + "dashboard_card_bytes_added_30d": "Byte aggiunti (30g)", + "dashboard_card_next_backup": "Prossimo backup pianificato", + "dashboard_card_none_scheduled": "Nessuno programmato", + "dashboard_card_bytes_scanned_avg": "Media byte scansionati", + "dashboard_card_bytes_added_avg": "Byte aggiunti in media", + "dashboard_remote_hosts_title": "Host remoti", + "dashboard_remote_clients_title": "Clienti remoti", + "dashboard_peer_instance_id": "ID istanza", + "dashboard_peer_public_key_id": "ID chiave pubblica", + "dashboard_peer_last_state_update": "Ultimo aggiornamento di stato", + "dashboard_peer_ago": "fa" } \ No newline at end of file diff --git a/webui/messages/pt.json b/webui/messages/pt.json index 1dad0486..11193c09 100644 --- a/webui/messages/pt.json +++ b/webui/messages/pt.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Nome de usuário", "login_password_required": "Por favor, digite sua senha!", "login_password_placeholder": "Senha", - "login_button": "Conecte-se" + "login_button": "Conecte-se", + "add_repo_modal_title_edit": "Editar repositório Restic", + "add_repo_modal_title_add": "Adicionar repositório Restic", + "add_repo_modal_success_deleted": "O repositório {id} foi excluído da configuração, mas os arquivos permanecem. Para liberar espaço de armazenamento, exclua os arquivos manualmente. URI: {uri}", + "add_repo_modal_success_updated": "Configuração do repositório atualizada {uri}", + "add_repo_modal_success_added": "Repositório adicionado {uri}", + "add_repo_modal_error_list_snapshots": "Falha ao listar snapshots para o repositório atualizado/adicionado: ", + "add_repo_modal_delete_tooltip": "Remove o repositório da configuração, mas não excluirá o repositório restic.", + "add_repo_modal_test_config": "Configuração de teste", + "add_repo_modal_test_success_existing": "Conexão estabelecida com sucesso com {uri} e repositório existente encontrado.", + "add_repo_modal_test_success_new": "Conexão estabelecida com sucesso com {uri} . Nenhum repositório existente foi encontrado neste local; um novo será inicializado.", + "add_repo_modal_test_error": "Erro de verificação: ", + "add_repo_modal_guide_text_p1": "Ver ", + "add_repo_modal_guide_link_text": "Guia de primeiros passos para encosto", + "add_repo_modal_guide_text_p2": " Para obter instruções de configuração do repositório ou verifique o ", + "add_repo_modal_guide_restic_link_text": "documentação restante", + "add_repo_modal_guide_text_p3": " Para obter mais detalhes sobre repositórios.", + "add_repo_modal_field_repo_name": "Nome do repositório", + "add_repo_modal_field_repo_name_tooltip": "ID exclusivo que identifica este repositório na interface do Backrest (ex.: s3-mybucket). Este ID não pode ser alterado após a criação.", + "add_repo_modal_error_repo_name_required": "Por favor, insira o nome do repositório.", + "add_repo_modal_error_repo_exists": "Repositório com o nome já existe", + "add_repo_modal_field_uri": "URI do repositório", + "add_repo_modal_field_uri_tooltip_title": "Os URIs de repositório válidos são:", + "add_repo_modal_field_uri_tooltip_local": "Caminho do sistema de arquivos local", + "add_repo_modal_field_uri_tooltip_s3": "S3 por exemplo s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP, por exemplo, sftp:user@host:/caminho-do-repositório", + "add_repo_modal_field_uri_tooltip_see": "Ver ", + "add_repo_modal_field_uri_tooltip_restic_docs": "documentos restic", + "add_repo_modal_field_uri_tooltip_info": " Para mais informações.", + "add_repo_modal_error_uri_required": "Por favor, insira o URI do repositório.", + "add_repo_modal_field_password": "Senha", + "add_repo_modal_field_password_tooltip_intro": "Esta senha criptografa os dados em seu repositório.", + "add_repo_modal_field_password_tooltip_entropy": "Recomenda-se escolher um valor com 128 bits de entropia (20 caracteres ou mais).", + "add_repo_modal_field_password_tooltip_env": "Você também pode fornecer credenciais de variáveis de ambiente, como RESTIC_PASSWORD, RESTIC_PASSWORD_FILE ou RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Clique em [Gerar] para gerar uma senha aleatória a partir da API de criptografia aleatória do seu navegador.", + "add_repo_modal_button_generate": "[Gerar]", + "add_repo_modal_field_env_vars": "Variáveis de ambiente", + "add_repo_modal_field_env_vars_tooltip": "Variáveis de ambiente que são passadas para o restic (por exemplo, para fornecer credenciais S3 ou B2). Referências a variáveis de ambiente do processo pai são suportadas como FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "A variável de ambiente deve estar no formato CHAVE=VALOR.", + "add_repo_modal_button_set_env": "Definir variável de ambiente", + "add_repo_modal_field_flags": "Bandeiras", + "add_repo_modal_error_flag_format": "O valor deve ser um parâmetro da linha de comando, por exemplo, consulte restic --help.", + "add_repo_modal_button_set_flag": "Definir bandeira", + "add_repo_modal_field_prune_policy": "Política de poda", + "add_repo_modal_field_prune_policy_tooltip_p1": "O cronograma de execução das operações de poda neste repositório. Leia ", + "add_repo_modal_field_prune_policy_tooltip_link": "a documentação restante sobre a personalização de operações de poda", + "add_repo_modal_field_prune_policy_tooltip_p2": " Para obter mais detalhes.", + "add_repo_modal_field_max_unused": "Máximo não utilizado após a poda", + "add_repo_modal_field_max_unused_tooltip": "A porcentagem máxima do tamanho do repositório que pode permanecer não utilizada após a conclusão de uma operação de limpeza. Valores altos reduzem a cópia, mas aumentam o espaço de armazenamento.", + "add_repo_modal_field_check_policy": "Política de verificação", + "add_repo_modal_field_check_policy_tooltip": "O agendamento de execução das operações de verificação para este repositório. As operações de verificação do Restic verificam a integridade do seu repositório, analisando as estruturas em disco que compõem seus dados de backup. A verificação pode ser configurada opcionalmente para reler e recalcular o hash dos dados; esse processo é lento e pode consumir muita largura de banda, mas detectará qualquer deterioração de dados ou corrupção silenciosa na mídia de armazenamento.", + "add_repo_modal_field_read_data": "Dados de leitura %", + "add_repo_modal_field_read_data_tooltip": "A porcentagem de dados de pacotes neste repositório que serão lidos e verificados. Valores mais altos usarão mais largura de banda (por exemplo, 100% significa que todo o repositório será lido novamente a cada verificação).", + "add_repo_modal_field_command_modifiers": "Modificadores de comando", + "add_repo_modal_field_command_modifiers_tooltip": "Modificadores para a operação de backup, por exemplo, definir a prioridade da CPU ou de E/S.", + "add_repo_modal_field_io_priority": "Prioridade de E/S:", + "add_repo_modal_field_io_priority_tooltip_intro": "Modos de prioridade de E/S disponíveis", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - executa com prioridade de disco inferior à padrão (priorizará outros processos)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - executa com prioridade de disco superior à padrão (topo da fila de E/S do disco)", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - só é executado quando a largura de banda do disco está ociosa (ou seja, quando nenhuma outra operação está na fila).", + "add_repo_modal_field_io_priority_placeholder": "Selecione uma prioridade de E/S", + "add_repo_modal_field_cpu_priority": "Prioridade da CPU:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Modos de prioridade de CPU disponíveis:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - sem alteração na prioridade", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - prioridade maior que a padrão (o backrest deve estar sendo executado como root)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - prioridade inferior à padrão", + "add_repo_modal_field_cpu_priority_placeholder": "Selecione uma prioridade de CPU", + "add_repo_modal_field_auto_unlock": "Desbloqueio automático", + "add_repo_modal_field_auto_unlock_tooltip": "O desbloqueio automático removerá os arquivos de bloqueio no início das operações de esquecimento e limpeza. Isso pode ser inseguro se o repositório for compartilhado por vários dispositivos clientes. Desativado por padrão.", + "add_repo_modal_preview_json": "Configuração do repositório em formato JSON", + "add_repo_modal_error_missing_password": "Senha do repositório ausente. Forneça uma senha ou defina uma das variáveis de ambiente RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND ou RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Falha ao obter os dados resumidos: ", + "dashboard_repos_title": "Repositórios", + "dashboard_repos_empty": "Nenhum repositório encontrado", + "dashboard_plans_title": "Planos", + "dashboard_plans_empty": "Nenhum plano encontrado", + "dashboard_system_info_title": "Informações do sistema", + "dashboard_config_path": "Caminho de configuração", + "dashboard_data_dir": "Diretório de Dados", + "dashboard_config_json": "Configuração em formato JSON", + "dashboard_backup_tooltip_time": "Backup em {time}", + "dashboard_backup_tooltip_pending": "Agendado, aguardando.", + "dashboard_backup_tooltip_finished": "Took {duration} , added {bytes}", + "dashboard_card_backups_30d": "Cópias de segurança (30 dias)", + "dashboard_card_backups_ok": "OK", + "dashboard_card_backups_failed": "fracassado", + "dashboard_card_backups_warning": "aviso", + "dashboard_card_bytes_scanned_30d": "Bytes escaneados (30d)", + "dashboard_card_bytes_added_30d": "Bytes adicionados (30 dias)", + "dashboard_card_next_backup": "Próximo backup agendado", + "dashboard_card_none_scheduled": "Nenhuma agendada", + "dashboard_card_bytes_scanned_avg": "Bytes escaneados em média", + "dashboard_card_bytes_added_avg": "Bytes adicionados em média", + "dashboard_remote_hosts_title": "Anfitriões remotos", + "dashboard_remote_clients_title": "Clientes remotos", + "dashboard_peer_instance_id": "ID da instância", + "dashboard_peer_public_key_id": "ID da chave pública", + "dashboard_peer_last_state_update": "Última atualização do estado", + "dashboard_peer_ago": "atrás" } \ No newline at end of file diff --git a/webui/messages/ru.json b/webui/messages/ru.json index 61020642..c7d993c4 100644 --- a/webui/messages/ru.json +++ b/webui/messages/ru.json @@ -155,5 +155,103 @@ "login_username_placeholder": "Имя пользователя", "login_password_required": "Пожалуйста, введите свой пароль!", "login_password_placeholder": "Пароль", - "login_button": "Авторизоваться" + "login_button": "Авторизоваться", + "add_repo_modal_title_edit": "Редактировать репозиторий Restic", + "add_repo_modal_title_add": "Добавить репозиторий Restic", + "add_repo_modal_success_deleted": "Удалён репозиторий {id} из конфигурации, но файлы остались. Для освобождения места удалите файлы вручную. URI: {uri}", + "add_repo_modal_success_updated": "Обновлена конфигурация репозитория {uri}", + "add_repo_modal_success_added": "Добавлен репозиторий {uri}", + "add_repo_modal_error_list_snapshots": "Не удалось отобразить снимки состояния обновленного/добавленного репозитория: ", + "add_repo_modal_delete_tooltip": "Удаляет репозиторий из конфигурации, но не удаляет репозиторий restic.", + "add_repo_modal_test_config": "Конфигурация теста", + "add_repo_modal_test_success_existing": "Успешно установлено соединение с {uri} и найден существующий репозиторий.", + "add_repo_modal_test_success_new": "Успешно установлено соединение с {uri} . В этом месте не найдено ни одного существующего репозитория, будет инициализирован новый.", + "add_repo_modal_test_error": "Ошибка проверки: ", + "add_repo_modal_guide_text_p1": "Видеть ", + "add_repo_modal_guide_link_text": "Руководство по началу работы со спинкой", + "add_repo_modal_guide_text_p2": " Инструкции по настройке репозитория см. в соответствующем разделе или проверьте там. ", + "add_repo_modal_guide_restic_link_text": "документация restic", + "add_repo_modal_guide_text_p3": " Для получения более подробной информации о репозиториях.", + "add_repo_modal_field_repo_name": "Название репозитория", + "add_repo_modal_field_repo_name_tooltip": "Уникальный идентификатор, который идентифицирует этот репозиторий в административной панели (например, s3-mybucket). Его нельзя изменить после создания.", + "add_repo_modal_error_repo_name_required": "Пожалуйста, введите название репозитория.", + "add_repo_modal_error_repo_exists": "Репозиторий с таким именем уже существует.", + "add_repo_modal_field_uri": "URI репозитория", + "add_repo_modal_field_uri_tooltip_title": "Допустимые URI репозитория:", + "add_repo_modal_field_uri_tooltip_local": "Путь к локальной файловой системе", + "add_repo_modal_field_uri_tooltip_s3": "S3 eg s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP, например, sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "Видеть ", + "add_repo_modal_field_uri_tooltip_restic_docs": "restic docs", + "add_repo_modal_field_uri_tooltip_info": " для получения дополнительной информации.", + "add_repo_modal_error_uri_required": "Пожалуйста, введите URI репозитория.", + "add_repo_modal_field_password": "Пароль", + "add_repo_modal_field_password_tooltip_intro": "Этот пароль используется для шифрования данных в вашем репозитории.", + "add_repo_modal_field_password_tooltip_entropy": "Рекомендуется выбрать значение энтропии, равное 128 битам (20 символов или более).", + "add_repo_modal_field_password_tooltip_env": "В качестве альтернативы вы можете указать учетные данные переменных окружения, например, RESTIC_PASSWORD, RESTIC_PASSWORD_FILE или RESTIC_PASSWORD_COMMAND.", + "add_repo_modal_field_password_tooltip_generate": "Нажмите [Сгенерировать], чтобы задать случайный пароль с помощью API генерации криптографических случайных чисел вашего браузера.", + "add_repo_modal_button_generate": "[Сгенерировать]", + "add_repo_modal_field_env_vars": "Переменные среды", + "add_repo_modal_field_env_vars_tooltip": "Переменные среды, передаваемые в restic (например, для предоставления учетных данных S3 или B2). Поддерживаются ссылки на переменные среды родительского процесса в формате FOO=$ {MY_FOO_VAR} .", + "add_repo_modal_error_env_format": "Переменная среды должна иметь формат KEY=VALUE.", + "add_repo_modal_button_set_env": "Установить переменную среды", + "add_repo_modal_field_flags": "Флаги", + "add_repo_modal_error_flag_format": "Значение должно быть флагом командной строки, например, см. restic --help", + "add_repo_modal_button_set_flag": "Установить флаг", + "add_repo_modal_field_prune_policy": "Политика обрезки", + "add_repo_modal_field_prune_policy_tooltip_p1": "Расписание, по которому выполняются операции очистки для этого репозитория. Читать ", + "add_repo_modal_field_prune_policy_tooltip_link": "Документация Restic по настройке операций обрезки", + "add_repo_modal_field_prune_policy_tooltip_p2": " для получения более подробной информации.", + "add_repo_modal_field_max_unused": "Максимальное количество неиспользованных средств после обрезки", + "add_repo_modal_field_max_unused_tooltip": "Максимальный процент размера репозитория, который может оставаться неиспользованным после завершения операции очистки. Высокие значения уменьшают объем копирования за счет увеличения объема хранилища.", + "add_repo_modal_field_check_policy": "Проверить политику", + "add_repo_modal_field_check_policy_tooltip": "Расписание выполнения операций проверки для этого репозитория. Операции проверки Restic проверяют целостность вашего репозитория, сканируя структуры на диске, составляющие ваши резервные данные. Проверка может быть дополнительно настроена на повторное чтение и хеширование данных; это медленный процесс, требующий больших затрат пропускной способности, но он позволит обнаружить любые повреждения данных или скрытые искажения на носителе информации.", + "add_repo_modal_field_read_data": "Прочитанные данные %", + "add_repo_modal_field_read_data_tooltip": "Процент данных пакета в этом репозитории, которые будут прочитаны и проверены. Более высокие значения будут использовать больше пропускной способности (например, 100% приведет к повторному чтению всего репозитория при каждой проверке).", + "add_repo_modal_field_command_modifiers": "Модификаторы команд", + "add_repo_modal_field_command_modifiers_tooltip": "Модификаторы для операции резервного копирования, например, устанавливают приоритет ЦП или ввода-вывода.", + "add_repo_modal_field_io_priority": "Приоритет ввода-вывода:", + "add_repo_modal_field_io_priority_tooltip_intro": "Доступные режимы приоритета ввода-вывода", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW — работает с более низким приоритетом диска, чем по умолчанию (будет отдавать приоритет другим процессам).", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH — выполняет операции с более высоким приоритетом диска, чем по умолчанию (в начале очереди дискового ввода-вывода).", + "add_repo_modal_field_io_priority_idle": "IO_IDLE — запускается только тогда, когда пропускная способность диска не используется (например, когда в очереди нет других операций).", + "add_repo_modal_field_io_priority_placeholder": "Выберите приоритет ввода-вывода", + "add_repo_modal_field_cpu_priority": "Приоритет ЦП:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "Доступные режимы приоритета ЦП:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - приоритет не изменяется", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH — более высокий приоритет, чем по умолчанию (backrest должен работать от имени root).", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - более низкий приоритет, чем по умолчанию", + "add_repo_modal_field_cpu_priority_placeholder": "Выберите приоритет ЦП", + "add_repo_modal_field_auto_unlock": "Автоматическая разблокировка", + "add_repo_modal_field_auto_unlock_tooltip": "Функция автоматической разблокировки удалит файлы блокировки в начале операций удаления и очистки. Это потенциально небезопасно, если репозиторий используется несколькими клиентскими устройствами. По умолчанию отключено.", + "add_repo_modal_preview_json": "Конфигурация репозитория в формате JSON", + "add_repo_modal_error_missing_password": "Отсутствует пароль репозитория. Укажите пароль или задайте одну из переменных окружения RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE.", + "dashboard_error_fetch": "Не удалось получить сводные данные: ", + "dashboard_repos_title": "Репо", + "dashboard_repos_empty": "Репозитории не найдены", + "dashboard_plans_title": "Планы", + "dashboard_plans_empty": "Планы не найдены", + "dashboard_system_info_title": "Информация о системе", + "dashboard_config_path": "Путь к конфигурации", + "dashboard_data_dir": "Каталог данных", + "dashboard_config_json": "Конфигурация в формате JSON", + "dashboard_backup_tooltip_time": "Резервная копия по адресу {time}", + "dashboard_backup_tooltip_pending": "Запланировано, ожидание.", + "dashboard_backup_tooltip_finished": "Взял {duration} , добавил {bytes}", + "dashboard_card_backups_30d": "Резервные копии (30 дней)", + "dashboard_card_backups_ok": "хорошо", + "dashboard_card_backups_failed": "неуспешный", + "dashboard_card_backups_warning": "предупреждение", + "dashboard_card_bytes_scanned_30d": "Просканировано байтов (30d)", + "dashboard_card_bytes_added_30d": "Добавлено байтов (30d)", + "dashboard_card_next_backup": "Следующее запланированное резервное копирование", + "dashboard_card_none_scheduled": "Нет запланированных мероприятий", + "dashboard_card_bytes_scanned_avg": "Среднее количество отсканированных байтов", + "dashboard_card_bytes_added_avg": "Среднее количество добавленных байтов", + "dashboard_remote_hosts_title": "Удаленные хосты", + "dashboard_remote_clients_title": "Удаленные клиенты", + "dashboard_peer_instance_id": "Идентификатор экземпляра", + "dashboard_peer_public_key_id": "Идентификатор открытого ключа", + "dashboard_peer_last_state_update": "Последнее обновление данных по штату", + "dashboard_peer_ago": "назад" } \ No newline at end of file diff --git a/webui/messages/zh.json b/webui/messages/zh.json index ce4f77bb..f8ece410 100644 --- a/webui/messages/zh.json +++ b/webui/messages/zh.json @@ -155,5 +155,103 @@ "login_username_placeholder": "用户名", "login_password_required": "请输入您的密码!", "login_password_placeholder": "密码", - "login_button": "登录" + "login_button": "登录", + "add_repo_modal_title_edit": "编辑 Restic 仓库", + "add_repo_modal_title_add": "添加 Restic 存储库", + "add_repo_modal_success_deleted": "已从配置中删除仓库{id}但文件仍然存在。要释放存储空间,请手动删除这些文件。URI: {uri}", + "add_repo_modal_success_updated": "已更新仓库配置{uri}", + "add_repo_modal_success_added": "已添加仓库{uri}", + "add_repo_modal_error_list_snapshots": "无法列出已更新/已添加仓库的快照: ", + "add_repo_modal_delete_tooltip": "从配置中移除仓库,但不会删除 restic 仓库。", + "add_repo_modal_test_config": "测试配置", + "add_repo_modal_test_success_existing": "已成功连接到{uri} ,并找到了一个现有的存储库。", + "add_repo_modal_test_success_new": "已成功连接到{uri} 。在此位置未找到现有仓库,将初始化一个新的仓库。", + "add_repo_modal_test_error": "检查错误: ", + "add_repo_modal_guide_text_p1": "看 ", + "add_repo_modal_guide_link_text": "靠背入门指南", + "add_repo_modal_guide_text_p2": " 有关存储库配置说明,请查看或检查 ", + "add_repo_modal_guide_restic_link_text": "restic 文档", + "add_repo_modal_guide_text_p3": " 有关存储库的更多详细信息。", + "add_repo_modal_field_repo_name": "仓库名称", + "add_repo_modal_field_repo_name_tooltip": "用于在后端用户界面中标识此存储库的唯一 ID(例如 s3-mybucket)。创建后无法更改。", + "add_repo_modal_error_repo_name_required": "请输入仓库名称", + "add_repo_modal_error_repo_exists": "同名仓库已存在", + "add_repo_modal_field_uri": "存储库 URI", + "add_repo_modal_field_uri_tooltip_title": "有效的仓库 URI 为:", + "add_repo_modal_field_uri_tooltip_local": "本地文件系统路径", + "add_repo_modal_field_uri_tooltip_s3": "S3 例如 s3:// ...", + "add_repo_modal_field_uri_tooltip_sftp": "SFTP 例如 sftp:user@host:/repo-path", + "add_repo_modal_field_uri_tooltip_see": "看 ", + "add_repo_modal_field_uri_tooltip_restic_docs": "restic 文档", + "add_repo_modal_field_uri_tooltip_info": " 了解更多信息。", + "add_repo_modal_error_uri_required": "请输入仓库 URI", + "add_repo_modal_field_password": "密码", + "add_repo_modal_field_password_tooltip_intro": "用于加密存储库中数据的密码。", + "add_repo_modal_field_password_tooltip_entropy": "建议选择熵值为 128 位(20 个字符或更长)的值。", + "add_repo_modal_field_password_tooltip_env": "您也可以提供环境变量凭据,例如 RESTIC_PASSWORD、RESTIC_PASSWORD_FILE 或 RESTIC_PASSWORD_COMMAND。", + "add_repo_modal_field_password_tooltip_generate": "点击【生成】按钮,即可从浏览器的加密随机 API 生成一个随机密码。", + "add_repo_modal_button_generate": "[产生]", + "add_repo_modal_field_env_vars": "环境变量", + "add_repo_modal_field_env_vars_tooltip": "传递给 restic 的环境变量(例如,用于提供 S3 或 B2 凭据)。支持引用父进程环境变量,格式为 FOO=$ {MY_FOO_VAR} 。", + "add_repo_modal_error_env_format": "环境变量必须采用键=值格式。", + "add_repo_modal_button_set_env": "设置环境变量", + "add_repo_modal_field_flags": "旗帜", + "add_repo_modal_error_flag_format": "该值应为 CLI 标志,例如,请参阅 restic --help", + "add_repo_modal_button_set_flag": "设置标志", + "add_repo_modal_field_prune_policy": "修剪策略", + "add_repo_modal_field_prune_policy_tooltip_p1": "此代码库的修剪操作运行计划。 ", + "add_repo_modal_field_prune_policy_tooltip_link": "restic 文档中关于自定义修剪操作的说明", + "add_repo_modal_field_prune_policy_tooltip_p2": " 更多详情请见下文。", + "add_repo_modal_field_max_unused": "修剪后未使用的最大数量", + "add_repo_modal_field_max_unused_tooltip": "清理操作完成后,仓库空间中可剩余的最大百分比。数值越高,复制操作越少,但存储空间也会相应增加。", + "add_repo_modal_field_check_policy": "查看政策", + "add_repo_modal_field_check_policy_tooltip": "此存储库的检查操作运行计划。Restic 检查操作通过扫描构成备份数据的磁盘结构来验证存储库的完整性。检查操作可以配置为重新读取和重新哈希数据,这速度较慢且可能消耗大量带宽,但可以捕获存储介质中的任何位衰减或静默损坏。", + "add_repo_modal_field_read_data": "读取数据百分比", + "add_repo_modal_field_read_data_tooltip": "此存储库中将被读取和验证的数据包百分比。值越高,将占用更多带宽(例如,100% 将在每次检查时重新读取整个存储库)。", + "add_repo_modal_field_command_modifiers": "命令修饰符", + "add_repo_modal_field_command_modifiers_tooltip": "备份操作的修饰符,例如设置 CPU 或 IO 优先级。", + "add_repo_modal_field_io_priority": "IO优先级:", + "add_repo_modal_field_io_priority_tooltip_intro": "可用的 I/O 优先级模式", + "add_repo_modal_field_io_priority_low": "IO_BEST_EFFORT_LOW - 以低于默认磁盘优先级运行(将优先考虑其他进程)", + "add_repo_modal_field_io_priority_high": "IO_BEST_EFFORT_HIGH - 以高于默认磁盘优先级(磁盘 I/O 队列顶部)运行", + "add_repo_modal_field_io_priority_idle": "IO_IDLE - 仅当磁盘带宽空闲时运行(例如,没有其他操作排队)", + "add_repo_modal_field_io_priority_placeholder": "选择 I/O 优先级", + "add_repo_modal_field_cpu_priority": "CPU优先级:", + "add_repo_modal_field_cpu_priority_tooltip_intro": "可用的CPU优先级模式:", + "add_repo_modal_field_cpu_priority_default": "CPU_DEFAULT - 优先级不变", + "add_repo_modal_field_cpu_priority_high": "CPU_HIGH - 优先级高于默认优先级(后台必须以 root 用户身份运行)", + "add_repo_modal_field_cpu_priority_low": "CPU_LOW - 优先级低于默认优先级", + "add_repo_modal_field_cpu_priority_placeholder": "选择 CPU 优先级", + "add_repo_modal_field_auto_unlock": "自动解锁", + "add_repo_modal_field_auto_unlock_tooltip": "自动解锁功能会在执行遗忘和清理操作时移除锁定文件。如果多个客户端设备共享同一个仓库,这可能存在安全隐患。此功能默认禁用。", + "add_repo_modal_preview_json": "仓库配置(JSON 格式)", + "add_repo_modal_error_missing_password": "缺少仓库密码。请提供密码或设置环境变量 RESTIC_PASSWORD、RESTIC_PASSWORD_COMMAND 或 RESTIC_PASSWORD_FILE 之一。", + "dashboard_error_fetch": "获取摘要数据失败: ", + "dashboard_repos_title": "仓库", + "dashboard_repos_empty": "未找到存储库", + "dashboard_plans_title": "计划", + "dashboard_plans_empty": "未找到任何计划", + "dashboard_system_info_title": "系统信息", + "dashboard_config_path": "配置路径", + "dashboard_data_dir": "数据目录", + "dashboard_config_json": "配置格式为 JSON", + "dashboard_backup_tooltip_time": "备份于{time}", + "dashboard_backup_tooltip_pending": "已安排,等待中。", + "dashboard_backup_tooltip_finished": "已获取{duration} ,已添加{bytes}", + "dashboard_card_backups_30d": "备份(30天)", + "dashboard_card_backups_ok": "好的", + "dashboard_card_backups_failed": "失败的", + "dashboard_card_backups_warning": "警告", + "dashboard_card_bytes_scanned_30d": "扫描字节数(30天)", + "dashboard_card_bytes_added_30d": "新增字节数(30天)", + "dashboard_card_next_backup": "下次计划备份", + "dashboard_card_none_scheduled": "无安排", + "dashboard_card_bytes_scanned_avg": "平均扫描字节数", + "dashboard_card_bytes_added_avg": "平均新增字节数", + "dashboard_remote_hosts_title": "远程主机", + "dashboard_remote_clients_title": "远程客户端", + "dashboard_peer_instance_id": "实例 ID", + "dashboard_peer_public_key_id": "公钥 ID", + "dashboard_peer_last_state_update": "最新状态更新", + "dashboard_peer_ago": "前" } \ No newline at end of file diff --git a/webui/src/views/AddRepoModal.tsx b/webui/src/views/AddRepoModal.tsx index 33877021..e871aeba 100644 --- a/webui/src/views/AddRepoModal.tsx +++ b/webui/src/views/AddRepoModal.tsx @@ -46,6 +46,7 @@ import { } from "../components/ScheduleFormItem"; import { isWindows } from "../state/buildcfg"; import { create, fromJson, JsonValue, toJson } from "@bufbuild/protobuf"; +import * as m from "../paraglide/messages"; const repoDefaults = create(RepoSchema, { prunePolicy: { @@ -104,13 +105,10 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { ); showModal(null); alertsApi.success( - "Deleted repo " + - template!.id! + - " from config but files remain. To release storage delete the files manually. URI: " + - template!.uri + m.add_repo_modal_success_deleted({ id: template!.id!, uri: template!.uri }) ); } catch (e: any) { - alertsApi.error(formatErrorAlert(e, "Operation error: "), 15); + alertsApi.error(formatErrorAlert(e, m.add_plan_modal_error_destroy_prefix()), 15); } finally { setConfirmLoading(false); } @@ -129,12 +127,12 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { // We are in the update repo flow, update the repo via the service setConfig(await backrestService.addRepo(repo)); showModal(null); - alertsApi.success("Updated repo configuration " + repo.uri); + alertsApi.success(m.add_repo_modal_success_updated({ uri: repo.uri })); } else { // We are in the create repo flow, create the new repo via the service setConfig(await backrestService.addRepo(repo)); showModal(null); - alertsApi.success("Added repo " + repo.uri); + alertsApi.success(m.add_repo_modal_success_added({ uri: repo.uri })); } try { @@ -145,13 +143,13 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { alertsApi.error( formatErrorAlert( e, - "Failed to list snapshots for updated/added repo: " + m.add_repo_modal_error_list_snapshots() ), 10 ); } } catch (e: any) { - alertsApi.error(formatErrorAlert(e, "Operation error: "), 10); + alertsApi.error(formatErrorAlert(e, m.add_plan_modal_error_operation_prefix()), 10); } finally { setConfirmLoading(false); } @@ -166,25 +164,25 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - Cancel + {m.add_plan_modal_button_cancel()} , template != null ? ( - Delete + {m.add_plan_modal_button_delete()} ) : null, @@ -200,25 +198,21 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { const exists = await backrestService.checkRepoExists(repo); if (exists.value) { alertsApi.success( - "Connected successfully to " + - repo.uri + - " and found an existing repo.", + m.add_repo_modal_test_success_existing({ uri: repo.uri }), 10 ); } else { alertsApi.success( - "Connected successfully to " + - repo.uri + - ". No existing repo found at this location, a new one will be initialized", + m.add_repo_modal_test_success_new({ uri: repo.uri }), 10 ); } } catch (e: any) { - alertsApi.error(formatErrorAlert(e, "Check error: "), 10); + alertsApi.error(formatErrorAlert(e, m.add_repo_modal_test_error()), 10); } }} > - Test Configuration + {m.add_repo_modal_test_config()} , , ]} maskClosable={false} >

- See{" "} + {m.add_repo_modal_guide_text_p1()} - backrest getting started guide + {m.add_repo_modal_guide_link_text()} {" "} - for repository configuration instructions or check the{" "} + {m.add_repo_modal_guide_text_p2()} - restic documentation + {m.add_repo_modal_guide_restic_link_text()} {" "} - for more details about repositories. + {m.add_repo_modal_guide_text_p3()}


{ {/* Repo.id */} hasFeedback name="id" - label="Repo Name" + label={m.add_repo_modal_field_repo_name()} validateTrigger={["onChange", "onBlur"]} rules={[ { required: true, - message: "Please input repo name", + message: m.add_repo_modal_error_repo_name_required(), }, { validator: async (_, value) => { @@ -276,12 +270,12 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { throw new Error(); } }, - message: "Repo with name already exists", + message: m.add_repo_modal_error_repo_exists(), }, { pattern: namePattern, message: - "Name must be alphanumeric with dashes or underscores as separators", + m.add_plan_modal_validation_plan_name_pattern(), }, ]} > @@ -301,20 +295,20 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - Valid Repo URIs are: + {m.add_repo_modal_field_uri_tooltip_title()}
    -
  • Local filesystem path
  • -
  • S3 e.g. s3:// ...
  • -
  • SFTP e.g. sftp:user@host:/repo-path
  • +
  • {m.add_repo_modal_field_uri_tooltip_local()}
  • +
  • {m.add_repo_modal_field_uri_tooltip_s3()}
  • +
  • {m.add_repo_modal_field_uri_tooltip_sftp()}
  • - See{" "} + {m.add_repo_modal_field_uri_tooltip_see()} - restic docs + {m.add_repo_modal_field_uri_tooltip_restic_docs()} {" "} - for more info. + {m.add_repo_modal_field_uri_tooltip_info()}
@@ -323,12 +317,12 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { hasFeedback name="uri" - label="Repository URI" + label={m.add_repo_modal_field_uri()} validateTrigger={["onChange", "onBlur"]} rules={[ { required: true, - message: "Please input repo URI", + message: m.add_repo_modal_error_uri_required(), }, ]} > @@ -340,26 +334,22 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - This password that encrypts data in your repository. + {m.add_repo_modal_field_password_tooltip_intro()}
  • - Recommended to pick a value that is 128 bits of entropy (20 - chars or longer) + {m.add_repo_modal_field_password_tooltip_entropy()}
  • - You may alternatively provide env variable credentials e.g. - RESTIC_PASSWORD, RESTIC_PASSWORD_FILE, or - RESTIC_PASSWORD_COMMAND. + {m.add_repo_modal_field_password_tooltip_env()}
  • - Click [Generate] to seed a random password from your - browser's crypto random API. + {m.add_repo_modal_field_password_tooltip_generate()}
} > - + @@ -384,7 +374,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { }); }} > - [Generate] + {m.add_repo_modal_button_generate()} @@ -394,10 +384,10 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { {/* Repo.env */} - + { whitespace: true, pattern: /^[\w-]+=.*$/, message: - "Environment variable must be in format KEY=VALUE", + m.add_repo_modal_error_env_format(), }, ]} noStyle @@ -449,7 +439,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { style={{ width: "90%" }} icon={} > - Set Environment Variable + {m.add_repo_modal_button_set_env()} @@ -460,7 +450,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { {/* Repo.flags */} - + {(fields, { add, remove }, { errors }) => ( <> @@ -477,7 +467,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { whitespace: true, pattern: /^\-\-?.*$/, message: - "Value should be a CLI flag e.g. see restic --help", + m.add_repo_modal_error_flag_format(), }, ]} noStyle @@ -502,7 +492,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { style={{ width: "90%" }} icon={} > - Set Flag + {m.add_repo_modal_button_set_flag()} @@ -517,19 +507,18 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - The schedule on which prune operations are run for this - repository. Read{" "} + {m.add_repo_modal_field_prune_policy_tooltip_p1()} - the restic docs on customizing prune operations + {m.add_repo_modal_field_prune_policy_tooltip_link()} {" "} - for more details. + {m.add_repo_modal_field_prune_policy_tooltip_p2()} } > - Prune Policy + {m.add_repo_modal_field_prune_policy()} } > @@ -540,8 +529,8 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { > -
Max Unused After Prune
+ +
{m.add_repo_modal_field_max_unused()}
} /> @@ -558,17 +547,11 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - The schedule on which check operations are run for this - repository. Restic check operations verify the integrity of - your repository by scanning the on-disk structures that make - up your backup data. Check can optionally be configured to - re-read and re-hash data, this is slow and can be bandwidth - expensive but will catch any bitrot or silent corruption in - the storage medium. + {m.add_repo_modal_field_check_policy_tooltip()} } > - Check Policy + {m.add_repo_modal_field_check_policy()} } > @@ -579,8 +562,8 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { > -
Read Data %
+ +
{m.add_repo_modal_field_read_data()}
} /> @@ -598,12 +581,11 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - Modifiers for the backup operation e.g. set the CPU or IO - priority. + {m.add_repo_modal_field_command_modifiers_tooltip()} } > - Command Modifiers + {m.add_repo_modal_field_command_modifiers()} } colon={false} @@ -613,25 +595,22 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { - Available IO priority modes + {m.add_repo_modal_field_io_priority_tooltip_intro()}
  • - IO_BEST_EFFORT_LOW - runs at lower than default disk - priority (will prioritize other processes) + {m.add_repo_modal_field_io_priority_low()}
  • - IO_BEST_EFFORT_HIGH - runs at higher than default - disk priority (top of disk IO queue) + {m.add_repo_modal_field_io_priority_high()}
  • - IO_IDLE - only runs when disk bandwidth is idle - (e.g. no other operations are queued) + {m.add_repo_modal_field_io_priority_idle()}
} > - IO Priority: + {m.add_repo_modal_field_io_priority()}
{ ({ label: v.name, @@ -695,11 +673,10 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { label={ - Auto Unlock + {m.add_repo_modal_field_auto_unlock()} } name="autoUnlock" @@ -709,7 +686,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { Hooks
} + label={{m.add_plan_modal_field_hooks()}} >
@@ -721,7 +698,7 @@ export const AddRepoModal = ({ template }: { template: Repo | null }) => { items={[ { key: "1", - label: "Repo Config as JSON", + label: m.add_repo_modal_preview_json(), children: (
@@ -787,7 +764,7 @@ const envVarSetValidator = (form: FormInstance, envVars: string[]) => {
   ) {
     return Promise.reject(
       new Error(
-        "Missing repo password. Either provide a password or set one of the env variables RESTIC_PASSWORD, RESTIC_PASSWORD_COMMAND, RESTIC_PASSWORD_FILE."
+        m.add_repo_modal_error_missing_password()
       )
     );
   }
diff --git a/webui/src/views/SummaryDashboard.tsx b/webui/src/views/SummaryDashboard.tsx
index fc8bdcc1..44c4e708 100644
--- a/webui/src/views/SummaryDashboard.tsx
+++ b/webui/src/views/SummaryDashboard.tsx
@@ -44,6 +44,7 @@ import { ConfigSchema, Multihost } from "../../gen/ts/v1/config_pb";
 import { useSyncStates } from "../state/peerstates";
 import { PeerState } from "../../gen/ts/v1sync/syncservice_pb";
 import { PeerStateConnectionStatusIcon } from "../components/SyncStateIcon";
+import * as m from "../paraglide/messages";
 
 export const SummaryDashboard = () => {
   const config = useConfig()[0];
@@ -65,7 +66,7 @@ export const SummaryDashboard = () => {
         const data = await backrestService.getSummaryDashboard({});
         setSummaryData(data);
       } catch (e) {
-        alertApi.error("Failed to fetch summary data: " + e);
+        alertApi.error(m.dashboard_error_fetch() + e);
       }
     };
 
@@ -105,37 +106,37 @@ export const SummaryDashboard = () => {
         
 
         {/* Repos and plans section */}
-        Repos
+        {m.dashboard_repos_title()}
         {summaryData && summaryData.repoSummaries.length > 0 ? (
           summaryData.repoSummaries.map((summary) => (
             
           ))
         ) : (
-          
+          
         )}
-        Plans
+        {m.dashboard_plans_title()}
         {summaryData && summaryData.planSummaries.length > 0 ? (
           summaryData.planSummaries.map((summary) => (
             
           ))
         ) : (
-          
+          
         )}
 
         {/* System Info Section */}
-        System Info
+        {m.dashboard_system_info_title()}
          {
           size="small"
           items={[
             {
-              label: "Config as JSON",
+              label: m.dashboard_config_json(),
               children: (
                 
                   {config &&
@@ -205,16 +206,15 @@ const SummaryPanel = ({
 
     return (
       
-        Backup at {formatTime(entry.time)}{" "}
+        {m.dashboard_backup_tooltip_time({ time: formatTime(entry.time) })}{" "}
         
{isPending ? ( - Scheduled, waiting. + {m.dashboard_backup_tooltip_pending()} ) : ( - Took {formatDuration(entry.durationMs)}, added{" "} - {formatBytes(entry.bytesAdded)} + {m.dashboard_backup_tooltip_finished({ duration: formatDuration(entry.durationMs), bytes: formatBytes(entry.bytesAdded) })} )}
@@ -227,22 +227,22 @@ const SummaryPanel = ({ cardInfo.push( { key: 1, - label: "Backups (30d)", + label: m.dashboard_card_backups_30d(), children: ( <> {summary.backupsSuccessLast30days ? ( - {summary.backupsSuccessLast30days + ""} ok + {summary.backupsSuccessLast30days + " " + m.dashboard_card_backups_ok()} ) : undefined} {summary.backupsFailed30days ? ( - {summary.backupsFailed30days + ""} failed + {summary.backupsFailed30days + " " + m.dashboard_card_backups_failed()} ) : undefined} {summary.backupsWarningLast30days ? ( - {summary.backupsWarningLast30days + ""} warning + {summary.backupsWarningLast30days + " " + m.dashboard_card_backups_warning()} ) : undefined} @@ -250,12 +250,12 @@ const SummaryPanel = ({ }, { key: 2, - label: "Bytes Scanned (30d)", + label: m.dashboard_card_bytes_scanned_30d(), children: formatBytes(Number(summary.bytesScannedLast30days)), }, { key: 3, - label: "Bytes Added (30d)", + label: m.dashboard_card_bytes_added_30d(), children: formatBytes(Number(summary.bytesAddedLast30days)), } ); @@ -265,19 +265,19 @@ const SummaryPanel = ({ cardInfo.push( { key: 4, - label: "Next Scheduled Backup", + label: m.dashboard_card_next_backup(), children: summary.nextBackupTimeMs ? formatTime(Number(summary.nextBackupTimeMs)) - : "None Scheduled", + : m.dashboard_card_none_scheduled(), }, { key: 5, - label: "Bytes Scanned Avg", + label: m.dashboard_card_bytes_scanned_avg(), children: formatBytes(Number(summary.bytesScannedAvg)), }, { key: 6, - label: "Bytes Added Avg", + label: m.dashboard_card_bytes_added_avg(), children: formatBytes(Number(summary.bytesAddedAvg)), } ); @@ -352,7 +352,7 @@ const MultihostSummary = ({ <> {knownHostTiles.length > 0 ? ( <> - Remote Hosts + {m.dashboard_remote_hosts_title()} {knownHostTiles} @@ -360,7 +360,7 @@ const MultihostSummary = ({ ) : null} {authorizedClientTiles.length > 0 ? ( <> - Remote Clients + {m.dashboard_remote_clients_title()} {authorizedClientTiles} @@ -408,17 +408,17 @@ const PeerStateTile = ({ peerState }: { peerState: PeerState }) => { items={[ { key: 1, - label: "Instance ID", + label: m.dashboard_peer_instance_id(), children: peerState.peerInstanceId, }, { key: 2, - label: "Public Key ID", + label: m.dashboard_peer_public_key_id(), children: peerState.peerKeyid, }, { key: 3, - label: "Last State Update", + label: m.dashboard_peer_last_state_update(), children: ( - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/webui/vite.config.ts b/webui/vite.config.ts index 1805449b..dc3e1dcb 100644 --- a/webui/vite.config.ts +++ b/webui/vite.config.ts @@ -33,15 +33,20 @@ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ''); return { - plugins: [paraglideVitePlugin({ project: './project.inlang', outdir: './src/paraglide' }), - react(), - viteCompression({ algorithm: 'gzip', ext: '.gz', deleteOriginFile: true }), - // viteCompression({ algorithm: 'brotliCompress', ext: '.br' }), - visualizer({ - open: false, - gzipSize: true, - // brotliSize: true, - }) as PluginOption, + plugins: [paraglideVitePlugin({ + project: './project.inlang', outdir: './src/paraglide', strategy: [ + 'preferredLanguage', + 'baseLocale', + ] + }), + react(), + viteCompression({ algorithm: 'gzip', ext: '.gz', deleteOriginFile: true }), + // viteCompression({ algorithm: 'brotliCompress', ext: '.br' }), + visualizer({ + open: false, + gzipSize: true, + // brotliSize: true, + }) as PluginOption, ], base: './', build: {