From 5e7b56f5ffd64cc469622b5cc16649bf1f42fdff Mon Sep 17 00:00:00 2001 From: MmD Date: Tue, 9 Jun 2026 10:30:37 +0330 Subject: [PATCH 1/2] feat(i18n): add persian translation for all ui strings --- resources/languages/fa.json | 1037 +++++++++++++++++------------------ 1 file changed, 518 insertions(+), 519 deletions(-) diff --git a/resources/languages/fa.json b/resources/languages/fa.json index 2af4735..2e8e290 100644 --- a/resources/languages/fa.json +++ b/resources/languages/fa.json @@ -2,534 +2,533 @@ "_name": "فارسی", "_rtl": true, "app_title": "UniTool", - "act_add": "+ Add Folder", - "act_add_tip": "Add a folder or drive to scan", - "act_remove": "− Remove", - "act_remove_tip": "Remove selected folder", - "act_scan": "▶ Scan", - "act_scan_tip": "Start scanning for duplicates", - "act_stop": "■ Stop", - "act_stop_tip": "Abort current scan", - "act_auto": "☑ Auto-select Dupes", - "act_auto_tip": "Mark all duplicates, keep oldest", - "act_none": "☐ Deselect All", - "act_none_tip": "Unmark everything", - "act_delete": "🗑 Delete Selected", - "act_delete_tip": "Move checked files to Recycle Bin", - "grp_locations": "Scan Locations", - "grp_filetype": "File Type Filter", - "grp_detection": "Detection Options", - "btn_add": "+ Add", - "btn_remove": "− Remove", - "folder_list_tip": "Drag folders here or click + Add", - "ft_All Files": "All Files", - "ft_Images": "Images", - "ft_Videos": "Videos", - "ft_Documents": "Documents", - "ft_Audio": "Audio", - "ft_Archives": "Archives", - "cb_hash": "Content hash (always on)", - "cb_prefilter": "Size pre-filter (always on)", - "cb_similarity": "Filename copy detection", - "stat_groups": "Groups: {v}", - "stat_dupes": "Duplicates: {v}", - "stat_size": "Reclaimable: {v}", - "stat_selected": "Selected: {v}", - "stat_groups_lbl": "Groups", - "stat_dupes_lbl": "Duplicates", - "stat_size_lbl": "Reclaimable", - "stat_selected_lbl": "Selected", - "col_name": "File Name", - "col_size": "Size", - "col_modified": "Modified", - "col_match": "Match Type", - "col_path": "Full Path", - "reason_content": "Identical content", - "reason_filename": "Filename copy", - "group_header": " Group {n} — {count} files — {size} wasted — [{reason}]", - "status_ready": "Ready", - "status_scanning": "Scanning…", - "status_stopped": "Scan stopped.", - "status_done": "Moved {n:,} file(s) to Recycle Bin.", - "status_complete": "Scan complete — {groups} groups, {dupes} duplicates, {size} reclaimable.", - "ctx_view": "Open File", - "ctx_open": "Open Containing Folder", - "ctx_keep": "Keep This — Delete Others in Group", - "ctx_mark": "Mark This for Deletion", - "ctx_unmark": "Unmark (Keep) This File", - "dlg_no_folders": "No Folders", - "dlg_no_folders_msg": "Add at least one folder to scan.", - "dlg_nothing": "Nothing Selected", - "dlg_nothing_msg": "No files are marked for deletion.", - "dlg_confirm": "Confirm Deletion", - "dlg_confirm_msg": "Move {n:,} file(s) ({size}) to the Recycle Bin?\n\nFiles can be restored from the Recycle Bin afterwards.", - "dlg_no_pkg": "Missing Package", - "dlg_no_pkg_msg": "send2trash is not installed.\n\nRun: pip install send2trash", - "dlg_errors": "Done (with errors)", - "dlg_scan_err": "Scan Error", - "del_progress": "Deleting {done:,} / {total:,} — {name}", - "scan_collecting": "Collecting files…", - "scan_found": "Found {n:,} files. Grouping by size…", - "scan_no_dupes": "No potential duplicates found.", - "scan_partial_start": "{n:,} size-matched files. Partial hashing…", - "scan_partial": "Partial hash: {done:,}/{total:,}", - "scan_full_start": "{n:,} files need full hash…", - "scan_full": "Full hash: {done:,}/{total:,}", - "scan_sim_start": "Checking filename copy patterns…", - "scan_sim": "Similarity: {done:,}/{total:,}", - "scan_done": "Done — {n} duplicate groups found.", - "session_banner": "🕐 Saved scan from {date} — {folders} — {groups} duplicate groups", - "session_restore": "Restore", + "act_add": "+ افزودن پوشه", + "act_add_tip": "یک پوشه یا درایو برای اسکن اضافه کنید", + "act_remove": "− حذف", + "act_remove_tip": "پوشه انتخاب‌شده را حذف کنید", + "act_scan": "▶ اسکن", + "act_scan_tip": "جستجو برای فایل‌های تکراری را شروع کنید", + "act_stop": "■ توقف", + "act_stop_tip": "اسکن جاری را متوقف کنید", + "act_auto": "☑ انتخاب خودکار تکراری‌ها", + "act_auto_tip": "همه تکراری‌ها را علامت بزن، قدیمی‌ترین را نگه دار", + "act_none": "☐ لغو انتخاب همه", + "act_none_tip": "علامت همه چیز را بردار", + "act_delete": "🗑 حذف انتخاب‌شده‌ها", + "act_delete_tip": "فایل‌های تیک‌خورده را به سطل بازیافت منتقل کن", + "grp_locations": "مکان‌های اسکن", + "grp_filetype": "فیلتر نوع فایل", + "grp_detection": "تنظیمات شناسایی", + "btn_add": "+ افزودن", + "btn_remove": "− حذف", + "folder_list_tip": "پوشه‌ها را اینجا بکشید یا + افزودن را بزنید", + "ft_All Files": "همه فایل‌ها", + "ft_Images": "تصاویر", + "ft_Videos": "ویدیوها", + "ft_Documents": "اسناد", + "ft_Audio": "صوتی", + "ft_Archives": "آرشیوها", + "cb_hash": "هش محتوا (همیشه فعال)", + "cb_prefilter": "پیش‌فیلتر حجم (همیشه فعال)", + "cb_similarity": "تشخیص کپی نام فایل", + "stat_groups": "گروه‌ها: {v}", + "stat_dupes": "تکراری‌ها: {v}", + "stat_size": "قابل بازیابی: {v}", + "stat_selected": "انتخاب‌شده: {v}", + "stat_groups_lbl": "گروه‌ها", + "stat_dupes_lbl": "تکراری‌ها", + "stat_size_lbl": "قابل بازیابی", + "stat_selected_lbl": "انتخاب‌شده", + "col_name": "نام فایل", + "col_size": "حجم", + "col_modified": "تغییر یافته", + "col_match": "نوع تطابق", + "col_path": "مسیر کامل", + "reason_content": "محتوای یکسان", + "reason_filename": "کپی نام فایل", + "group_header": " گروه {n} — {count} فایل — {size} اتلاف — [{reason}]", + "status_ready": "آماده", + "status_scanning": "در حال اسکن…", + "status_stopped": "اسکن متوقف شد.", + "status_done": "{n:,} فایل به سطل بازیافت منتقل شد.", + "status_complete": "اسکن کامل شد — {groups} گروه، {dupes} تکراری، {size} قابل بازیابی.", + "ctx_view": "باز کردن فایل", + "ctx_open": "باز کردن پوشه محتوی", + "ctx_keep": "این را نگه دار — بقیه گروه را حذف کن", + "ctx_mark": "علامت‌گذاری برای حذف", + "ctx_unmark": "لغو علامت (نگه داشتن) این فایل", + "dlg_no_folders": "پوشه‌ای وجود ندارد", + "dlg_no_folders_msg": "حداقل یک پوشه برای اسکن اضافه کنید.", + "dlg_nothing": "چیزی انتخاب نشده", + "dlg_nothing_msg": "هیچ فایلی برای حذف علامت‌گذاری نشده.", + "dlg_confirm": "تأیید حذف", + "dlg_confirm_msg": "{n:,} فایل ({size}) به سطل بازیافت منتقل شود؟\n\nفایل‌ها بعداً از سطل بازیافت قابل بازگشت هستند.", + "dlg_no_pkg": "پکیج مفقود", + "dlg_no_pkg_msg": "send2trash نصب نشده.\n\nاجرا کنید: pip install send2trash", + "dlg_errors": "انجام شد (با خطا)", + "dlg_scan_err": "خطای اسکن", + "del_progress": "در حال حذف {done:,} / {total:,} — {name}", + "scan_collecting": "در حال جمع‌آوری فایل‌ها…", + "scan_found": "{n:,} فایل پیدا شد. گروه‌بندی بر اساس حجم…", + "scan_no_dupes": "هیچ تکراری بالقوه‌ای یافت نشد.", + "scan_partial_start": "{n:,} فایل هم‌حجم. هش جزئی…", + "scan_partial": "هش جزئی: {done:,}/{total:,}", + "scan_full_start": "{n:,} فایل نیاز به هش کامل دارند…", + "scan_full": "هش کامل: {done:,}/{total:,}", + "scan_sim_start": "بررسی الگوهای کپی نام فایل…", + "scan_sim": "شباهت: {done:,}/{total:,}", + "scan_done": "تمام — {n} گروه تکراری پیدا شد.", + "session_banner": "🕐 اسکن ذخیره‌شده از {date} — {folders} — {groups} گروه تکراری", + "session_restore": "بازگردانی", "session_dismiss": "✕", - "session_restored": "Restored {groups} groups from {date} scan. Files may have changed.", - "session_note": "Results from a previous session — re-scan to refresh", - "tab_duplicates": "Duplicate Finder", - "tab_search": "File Search", - "srch_placeholder": "Search files by name…", - "srch_index_btn": "Index Folders", - "srch_stop_btn": "Stop", - "srch_type_lbl": "Type:", - "srch_size_lbl": "Size:", - "srch_date_lbl": "Modified:", - "srch_size_any": "Any size", - "srch_size_lt1": "< 1 MB", - "srch_size_1_10": "1 – 10 MB", - "srch_size_10_100": "10 – 100 MB", - "srch_size_gt100": "> 100 MB", - "srch_date_any": "Any date", - "srch_date_today": "Today", - "srch_date_week": "This week", - "srch_date_month": "This month", - "srch_date_year": "This year", - "srch_col_name": "Name", - "srch_col_size": "Size", - "srch_col_date": "Modified", - "srch_col_path": "Path", - "srch_status_empty": "Index folders first, then type to search.", + "session_restored": "{groups} گروه از اسکن {date} بازگردانده شد. ممکن است فایل‌ها تغییر کرده باشند.", + "session_note": "نتایج از یک جلسه قبلی — برای به‌روزرسانی اسکن مجدد کنید", + "tab_duplicates": "پیداکننده تکراری", + "tab_search": "جستجوی فایل", + "srch_placeholder": "جستجوی فایل بر اساس نام…", + "srch_index_btn": "ایندکس پوشه‌ها", + "srch_stop_btn": "توقف", + "srch_type_lbl": "نوع:", + "srch_size_lbl": "حجم:", + "srch_date_lbl": "تغییر یافته:", + "srch_size_any": "هر حجمی", + "srch_size_lt1": "< ۱ مگابایت", + "srch_size_1_10": "۱ – ۱۰ مگابایت", + "srch_size_10_100": "۱۰ – ۱۰۰ مگابایت", + "srch_size_gt100": "> ۱۰۰ مگابایت", + "srch_date_any": "هر تاریخی", + "srch_date_today": "امروز", + "srch_date_week": "این هفته", + "srch_date_month": "این ماه", + "srch_date_year": "امسال", + "srch_col_name": "نام", + "srch_col_size": "حجم", + "srch_col_date": "تغییر یافته", + "srch_col_path": "مسیر", + "srch_status_empty": "ابتدا پوشه‌ها را ایندکس کنید، سپس تایپ کنید تا جستجو شود.", "srch_status_ready": "{n:,} فایل ایندکس شده و آماده است.", - "srch_indexing_progress": "Indexing: {folder} ({count:,} files)", - "srch_index_done": "Index ready — {count:,} files in {folders} folder(s).", - "srch_no_folders": "Add folders in the Scan Locations panel first.", - "srch_reindex": "Re-index", - "srch_no_index": "Nothing indexed yet — add folders in Settings and click Index Now.", - "srch_grp_type": "FILE TYPE", - "srch_grp_date": "DATE MODIFIED", - "srch_grp_size": "FILE SIZE", - "srch_date_enable": "Enable date filter", - "srch_size_enable": "Enable size filter", - "srch_from": "From", - "srch_to": "To", - "srch_min": "Min", - "srch_max": "Max", - "srch_search_btn": "Search", + "srch_indexing_progress": "ایندکس‌سازی: {folder} ({count:,} فایل)", + "srch_index_done": "ایندکس آماده است — {count:,} فایل در {folders} پوشه.", + "srch_no_folders": "ابتدا پوشه‌ها را در پنل مکان‌های اسکن اضافه کنید.", + "srch_reindex": "ایندکس مجدد", + "srch_no_index": "هنوز چیزی ایندکس نشده — پوشه‌ها را در تنظیمات اضافه کنید و روی ایندکس الان کلیک کنید.", + "srch_grp_type": "نوع فایل", + "srch_grp_date": "تاریخ تغییر", + "srch_grp_size": "حجم فایل", + "srch_date_enable": "فعال‌سازی فیلتر تاریخ", + "srch_size_enable": "فعال‌سازی فیلتر حجم", + "srch_from": "از", + "srch_to": "تا", + "srch_min": "حداقل", + "srch_max": "حداکثر", + "srch_search_btn": "جستجو", "srch_col_num": "#", - "srch_col_folder": "Folder", - "srch_preview_title": "PREVIEW", - "srch_no_preview": "Select a file to preview", - "srch_stat_found": "Found: {n:,}", - "srch_stat_time": "{ms} ms", - "srch_stat_size": "Size: {size}", - "srch_stat_sel": "Selected: {n}", - "tab_settings": "Settings", - "set_grp_locations": "Index Locations", - "set_grp_options": "Index Options", - "set_grp_stats": "Index Statistics", - "set_exclude_hidden": "Skip hidden files & folders", - "set_exclude_system": "Skip system folders (Windows, $Recycle.Bin…)", - "set_min_size_lbl": "Minimum file size:", - "set_minsize_any": "No minimum", - "set_minsize_gt1kb": "> 1 KB", - "set_minsize_gt10kb": "> 10 KB", - "set_minsize_gt100kb": "> 100 KB", - "set_minsize_gt1mb": "> 1 MB", - "set_index_now": "Index Now", - "set_clear_index": "Clear Index", - "set_clear_title": "Clear Index", - "set_clear_msg": "Delete all indexed data? You will need to re-index to search files.", - "set_index_cleared": "Index cleared.", - "set_stat_files": "Indexed files: {n}", - "set_stat_folders": "Indexed locations: {n}", - "set_stat_dbsize": "Database size: {size}", - "set_stat_last": "Last indexed: {when}", - "tab_privacy": "Privacy", - "prv_tab_traces": "Traces", - "prv_tab_telemetry": "Telemetry", - "prv_tab_privacy": "Privacy Settings", - "prv_tab_features": "Windows Features", - "prv_tab_ram": "RAM", - "prv_check_state": "◉ Check State", - "prv_apply_sel": "✓ Apply Selected", - "prv_revert_sel": "↩ Revert Selected", - "prv_select_all": "Select All", - "prv_deselect_all": "Deselect All", - "prv_state_applied": "Applied", - "prv_state_not_applied": "Not Applied", - "prv_state_unknown": "Unknown", - "prv_win_only": "These settings are only available on Windows.", - "prv_no_settings": "No settings available for this platform in this category.", - "prv_toggle_checking": "Checking current state…", - "prv_toggle_applying": "Applying changes…", - "prv_toggle_reverting": "Reverting changes…", - "prv_toggle_n_applied": "{n} of {total} settings applied", - "prv_toggle_none_sel": "Select at least one setting.", - "prv_apply_title": "Apply Settings", - "prv_apply_msg": "Apply {n} setting(s)?\n\nSome changes require administrator privileges — a UAC prompt will appear.", - "prv_revert_title": "Revert Settings", - "prv_revert_msg": "Revert {n} setting(s) to Windows defaults?", - "prv_toggle_done": "Done.", - "prv_toggle_error": "Error applying settings:\n{err}", - "prv_cat_shell": "Shell History", - "prv_cat_usb": "USB Traces", - "prv_cat_network": "Fingerprints", - "prv_cat_creds": "Credentials", - "prv_cat_cloud": "Cloud Sync", - "prv_cat_ram": "RAM Cleaner", - "prv_scan_btn": "▶ Scan All", - "prv_clean_btn": "🗑 Clean Selected", - "prv_secure_lbl": "Secure delete", - "prv_col_item": "Item", - "prv_col_path": "Path", - "prv_col_size": "Size", - "prv_col_status": "Status", - "prv_status_idle": "Scan to discover privacy artifacts.", - "prv_status_scanning": "Scanning…", - "prv_status_found": "{n} artifact(s) found — {size} total", - "prv_status_cleaned": "Cleaned {n} item(s).", - "prv_status_not_found": "Not found", - "prv_status_found_item": "Found", - "prv_status_manual": "Manual only", - "prv_confirm_title": "Confirm Clean", - "prv_confirm_msg": "Clean {n} item(s) ({size})?\n\nThis cannot be undone.", - "prv_admin": "Administrator", + "srch_col_folder": "پوشه", + "srch_preview_title": "پیش‌نمایش", + "srch_no_preview": "یک فایل انتخاب کنید تا پیش‌نمایش ببینید", + "srch_stat_found": "پیدا شد: {n:,}", + "srch_stat_time": "{ms} میلی‌ثانیه", + "srch_stat_size": "حجم: {size}", + "srch_stat_sel": "انتخاب‌شده: {n}", + "tab_settings": "تنظیمات", + "set_grp_locations": "مکان‌های ایندکس", + "set_grp_options": "گزینه‌های ایندکس", + "set_grp_stats": "آمار ایندکس", + "set_exclude_hidden": "نادیده گرفتن فایل‌ها و پوشه‌های مخفی", + "set_exclude_system": "نادیده گرفتن پوشه‌های سیستمی (Windows، $Recycle.Bin…)", + "set_min_size_lbl": "حداقل حجم فایل:", + "set_minsize_any": "بدون محدودیت", + "set_minsize_gt1kb": "> ۱ کیلوبایت", + "set_minsize_gt10kb": "> ۱۰ کیلوبایت", + "set_minsize_gt100kb": "> ۱۰۰ کیلوبایت", + "set_minsize_gt1mb": "> ۱ مگابایت", + "set_index_now": "ایندکس الان", + "set_clear_index": "پاک کردن ایندکس", + "set_clear_title": "پاک کردن ایندکس", + "set_clear_msg": "تمام داده‌های ایندکس‌شده حذف شود؟ برای جستجوی فایل‌ها باید دوباره ایندکس کنید.", + "set_index_cleared": "ایندکس پاک شد.", + "set_stat_files": "فایل‌های ایندکس‌شده: {n}", + "set_stat_folders": "مکان‌های ایندکس‌شده: {n}", + "set_stat_dbsize": "حجم پایگاه داده: {size}", + "set_stat_last": "آخرین ایندکس: {when}", + "tab_privacy": "حریم خصوصی", + "prv_tab_traces": "ردپاها", + "prv_tab_telemetry": "تله‌متری", + "prv_tab_privacy": "تنظیمات حریم خصوصی", + "prv_tab_features": "ویژگی‌های ویندوز", + "prv_tab_ram": "رم", + "prv_check_state": "◉ بررسی وضعیت", + "prv_apply_sel": "✓ اعمال انتخاب‌شده‌ها", + "prv_revert_sel": "↩ برگرداندن انتخاب‌شده‌ها", + "prv_select_all": "انتخاب همه", + "prv_deselect_all": "لغو انتخاب همه", + "prv_state_applied": "اعمال شده", + "prv_state_not_applied": "اعمال نشده", + "prv_state_unknown": "نامشخص", + "prv_win_only": "این تنظیمات فقط در ویندوز در دسترس هستند.", + "prv_no_settings": "در این دسته‌بندی برای این سیستم‌عامل تنظیماتی موجود نیست.", + "prv_toggle_checking": "در حال بررسی وضعیت فعلی…", + "prv_toggle_applying": "در حال اعمال تغییرات…", + "prv_toggle_reverting": "در حال برگرداندن تغییرات…", + "prv_toggle_n_applied": "{n} از {total} تنظیم اعمال شده", + "prv_toggle_none_sel": "حداقل یک تنظیم انتخاب کنید.", + "prv_apply_title": "اعمال تنظیمات", + "prv_apply_msg": "{n} تنظیم اعمال شود؟\n\nبرخی تغییرات نیاز به دسترسی مدیر دارند — یک پنجره UAC ظاهر می‌شود.", + "prv_revert_title": "برگرداندن تنظیمات", + "prv_revert_msg": "{n} تنظیم به پیش‌فرض ویندوز برگردانده شود؟", + "prv_toggle_done": "انجام شد.", + "prv_toggle_error": "خطا در اعمال تنظیمات:\n{err}", + "prv_cat_shell": "تاریخچه Shell", + "prv_cat_usb": "ردپاهای USB", + "prv_cat_network": "اثر انگشت شبکه", + "prv_cat_creds": "اعتبارنامه‌ها", + "prv_cat_cloud": "همگام‌سازی ابری", + "prv_cat_ram": "پاک‌کننده رم", + "prv_scan_btn": "▶ اسکن همه", + "prv_clean_btn": "🗑 پاک کردن انتخاب‌شده‌ها", + "prv_secure_lbl": "حذف امن", + "prv_col_item": "آیتم", + "prv_col_path": "مسیر", + "prv_col_size": "حجم", + "prv_col_status": "وضعیت", + "prv_status_idle": "برای کشف آثار حریم خصوصی اسکن کنید.", + "prv_status_scanning": "در حال اسکن…", + "prv_status_found": "{n} آیتم پیدا شد — {size} در مجموع", + "prv_status_cleaned": "{n} آیتم پاک شد.", + "prv_status_not_found": "پیدا نشد", + "prv_status_found_item": "پیدا شد", + "prv_status_manual": "فقط دستی", + "prv_confirm_title": "تأیید پاک‌سازی", + "prv_confirm_msg": "{n} آیتم ({size}) پاک شود؟\n\nاین عمل قابل برگشت نیست.", + "prv_admin": "مدیر", "prv_root": "root", - "prv_std_user": "Standard user", - "prv_ssd_note": "Note: on SSDs, file overwrite is ineffective due to wear levelling. Use OS-level secure erase (TRIM / blkdiscard) for true erasure on SSDs.", - "prv_cat_clipboard": "Clipboard", - "prv_cb_text_label": "Clipboard Text ({lines} line(s) · {size})", - "prv_cb_image_label": "Clipboard Image ({w}×{h} px)", - "prv_cb_image_note": "Image data is in memory — clear the clipboard to remove it.", - "prv_cb_files_label": "Clipboard File List ({n} file(s))", - "prv_cb_other_label": "Clipboard Data [{fmt}]", - "prv_preview_title": "PREVIEW", - "prv_preview_loading": "Loading…", - "prv_no_preview": "Select a row to preview its contents", - "prv_ctx_preview": "Preview", - "prv_ctx_copy_path": "Copy Path", - "prv_ctx_open_folder": "Open Containing Folder", - "prv_ctx_clean": "Clean This Item", - "prv_ram_title": "RAM Cleaner", - "prv_ram_total": "Total RAM", - "prv_ram_used": "Used", - "prv_ram_free": "Available", - "prv_ram_refresh": "Refresh", - "prv_ram_clean": "🧹 Free RAM", - "prv_ram_cleaning": "Freeing RAM…", - "prv_ram_freed": "Freed {size} of RAM", - "prv_ram_already_clean": "RAM already at optimal usage.", - "prv_ram_admin_note": "Note: Running as a standard user limits how much RAM can be freed. For maximum effect, run UniTool as Administrator / root.", - "tab_junk": "Junk Cleaner", - "jnk_cat_temp": "Temp Files", - "jnk_cat_windows": "Windows Junk", - "jnk_cat_browser": "Browser Caches", - "jnk_cat_crash": "Crash Dumps", - "jnk_cat_logs": "Log Files", - "jnk_scan_btn": "▶ Scan", - "jnk_clean_btn": "🗑 Clean Selected", - "jnk_status_idle": "Scan to find junk files.", - "jnk_status_scanning": "Scanning…", - "jnk_status_found": "{n} item(s) found — {size} total", - "jnk_status_cleaned": "Cleaned {n} item(s).", - "jnk_status_not_found": "Nothing found", - "jnk_status_found_item": "Found", - "jnk_col_item": "Item", - "jnk_col_path": "Path", - "jnk_col_size": "Size", - "jnk_col_status": "Status", - "jnk_confirm_title": "Confirm Clean", - "jnk_confirm_msg": "Delete {n} item(s) ({size})?\n\nThis cannot be undone.", - "jnk_preview_title": "PREVIEW", - "jnk_preview_loading": "Loading…", - "jnk_no_preview": "Select a row to preview its contents", - "jnk_ctx_preview": "Preview", - "jnk_ctx_copy": "Copy Path", - "jnk_ctx_open": "Open Containing Folder", - "jnk_ctx_clean": "Clean This Item", - "jnk_ssd_note": "Note: secure overwrite is ineffective on SSDs due to wear levelling.", - "tab_startup": "Startup Manager", - "strt_refresh": "↺ Refresh", - "strt_enable": "Enable", - "strt_disable": "Disable", - "strt_delete": "Delete Entry", + "prv_std_user": "کاربر عادی", + "prv_ssd_note": "توجه: روی SSDها، بازنویسی فایل به دلیل wear levelling بی‌اثر است. برای پاک‌سازی واقعی از روش‌های سطح OS (TRIM / blkdiscard) استفاده کنید.", + "prv_cat_clipboard": "کلیپ‌بورد", + "prv_cb_text_label": "متن کلیپ‌بورد ({lines} خط · {size})", + "prv_cb_image_label": "تصویر کلیپ‌بورد ({w}×{h} پیکسل)", + "prv_cb_image_note": "داده تصویر در حافظه است — برای حذف آن کلیپ‌بورد را پاک کنید.", + "prv_cb_files_label": "لیست فایل‌های کلیپ‌بورد ({n} فایل)", + "prv_cb_other_label": "داده کلیپ‌بورد [{fmt}]", + "prv_preview_title": "پیش‌نمایش", + "prv_preview_loading": "در حال بارگذاری…", + "prv_no_preview": "یک ردیف انتخاب کنید تا محتوای آن را ببینید", + "prv_ctx_preview": "پیش‌نمایش", + "prv_ctx_copy_path": "کپی مسیر", + "prv_ctx_open_folder": "باز کردن پوشه محتوی", + "prv_ctx_clean": "پاک کردن این آیتم", + "prv_ram_title": "پاک‌کننده رم", + "prv_ram_total": "کل رم", + "prv_ram_used": "استفاده‌شده", + "prv_ram_free": "در دسترس", + "prv_ram_refresh": "بازآوری", + "prv_ram_clean": "🧹 آزادسازی رم", + "prv_ram_cleaning": "در حال آزادسازی رم…", + "prv_ram_freed": "{size} از رم آزاد شد", + "prv_ram_already_clean": "رم در حال حاضر در وضعیت بهینه است.", + "prv_ram_admin_note": "توجه: اجرا به عنوان کاربر عادی میزان رم قابل آزادسازی را محدود می‌کند. برای حداکثر تأثیر، UniTool را به عنوان مدیر / root اجرا کنید.", + "tab_junk": "پاک‌کننده جانک", + "jnk_cat_temp": "فایل‌های موقت", + "jnk_cat_windows": "جانک ویندوز", + "jnk_cat_browser": "کش مرورگرها", + "jnk_cat_crash": "گزارش‌های خرابی", + "jnk_cat_logs": "فایل‌های لاگ", + "jnk_scan_btn": "▶ اسکن", + "jnk_clean_btn": "🗑 پاک کردن انتخاب‌شده‌ها", + "jnk_status_idle": "برای یافتن فایل‌های جانک اسکن کنید.", + "jnk_status_scanning": "در حال اسکن…", + "jnk_status_found": "{n} آیتم پیدا شد — {size} در مجموع", + "jnk_status_cleaned": "{n} آیتم پاک شد.", + "jnk_status_not_found": "چیزی پیدا نشد", + "jnk_status_found_item": "پیدا شد", + "jnk_col_item": "آیتم", + "jnk_col_path": "مسیر", + "jnk_col_size": "حجم", + "jnk_col_status": "وضعیت", + "jnk_confirm_title": "تأیید پاک‌سازی", + "jnk_confirm_msg": "{n} آیتم ({size}) حذف شود؟\n\nاین عمل قابل برگشت نیست.", + "jnk_preview_title": "پیش‌نمایش", + "jnk_preview_loading": "در حال بارگذاری…", + "jnk_no_preview": "یک ردیف انتخاب کنید تا محتوای آن را ببینید", + "jnk_ctx_preview": "پیش‌نمایش", + "jnk_ctx_copy": "کپی مسیر", + "jnk_ctx_open": "باز کردن پوشه محتوی", + "jnk_ctx_clean": "پاک کردن این آیتم", + "jnk_ssd_note": "توجه: بازنویسی امن روی SSDها به دلیل wear levelling بی‌اثر است.", + "tab_startup": "مدیر استارتاپ", + "strt_refresh": "↺ بازآوری", + "strt_enable": "فعال‌سازی", + "strt_disable": "غیرفعال‌سازی", + "strt_delete": "حذف ورودی", "strt_col_status": "", - "strt_col_name": "Name", - "strt_col_publisher": "Publisher", - "strt_col_source": "Source", - "strt_col_command": "Command", - "strt_status": "{n} startup entries", - "strt_loading": "Loading startup entries…", - "strt_confirm_delete": "Delete Startup Entry", - "strt_confirm_msg": "Remove \"{name}\" from startup?\n\nThe application itself will not be deleted.", - "strt_admin_warn": "Administrator Required", - "strt_admin_msg": "Modifying system-wide startup entries (HKLM) requires administrator privileges.", - "strt_ctx_enable": "Enable", - "strt_ctx_disable": "Disable", - "strt_ctx_delete": "Delete Entry", - "strt_ctx_open": "Open File Location", - "strt_ctx_copy": "Copy Command", - "tab_browser": "Browser Cleaner", - "bsr_scan_btn": "▶ Scan", - "bsr_clean_btn": "🗑 Clean Selected", - "bsr_col_type": "Data Type", - "bsr_col_size": "Size", - "bsr_col_status": "Status", - "bsr_col_path": "Path", - "bsr_status_idle": "Select a browser and click Scan.", - "bsr_status_scanning": "Scanning…", - "bsr_status_found": "{n} item(s) found — {size} total", - "bsr_status_cleaned": "Cleaned {n} item(s).", - "bsr_status_not_found": "Nothing found", - "bsr_status_found_item": "Found", - "bsr_status_manual": "Manual only", - "bsr_running_warn": "Warning: {browser} appears to be running. Close it before cleaning to avoid data loss.", - "bsr_confirm_title": "Confirm Clean", - "bsr_confirm_msg": "Delete {n} item(s) ({size})?\n\nThis cannot be undone.", - "bsr_password_warn_title": "Saved Passwords", - "bsr_password_warn_msg": "Deleting saved passwords will remove all stored login credentials. Continue?", - "bsr_profile_lbl": "Profile:", - "bsr_no_browsers": "No supported browsers detected.", - "bsr_ctx_preview": "Preview", - "bsr_ctx_copy": "Copy Path", - "bsr_ctx_open": "Open Containing Folder", - "bsr_ctx_clean": "Clean This Item", - "bsr_preview_title": "PREVIEW", - "bsr_preview_loading": "Loading…", - "bsr_no_preview": "Select a row to preview its contents", - "tab_uninstaller": "Uninstaller", - "unst_search_placeholder": "Search applications…", - "unst_show_system": "Show system components", - "unst_refresh": "↺ Refresh", - "unst_col_name": "Name", - "unst_col_publisher": "Publisher", - "unst_col_version": "Version", - "unst_col_size": "Size", - "unst_col_date": "Installed", - "unst_status": "{n} application(s)", - "unst_loading": "Loading installed applications…", - "unst_uninstall_btn": "🗑 Uninstall", - "unst_advanced_btn": "Advanced…", - "unst_confirm_title": "Confirm Uninstall", - "unst_confirm_msg": "Uninstall \"{name}\"?\n\nThe application's own uninstaller will be launched.", - "unst_launched_title": "Uninstaller Launched", - "unst_launched_msg": "The uninstaller for \"{name}\" has been launched.\n\nRefresh the list after it completes.", - "unst_leftovers_title": "Leftover Files — {name}", - "unst_leftovers_close": "Close", - "unst_leftovers_clean": "🗑 Delete Leftovers", - "unst_leftovers_loading": "Searching for leftover files…", - "unst_leftovers_none": "No leftover files found.", - "unst_leftovers_col_path": "Path", - "unst_leftovers_col_size": "Size", - "unst_ctx_uninstall": "Uninstall", - "unst_ctx_leftovers": "Find Leftovers…", - "unst_ctx_copy_name": "Copy Name", - "unst_ctx_copy_pub": "Copy Publisher", - "tab_syscheck": "System Check", - "sc_scan_btn": "▶ Scan All", - "sc_fix_btn": "🔧 Fix Selected", - "sc_report_btn": "📄 Save Report", - "sc_all_categories": "All Categories", - "sc_cat_startup": "Startup Persistence", - "sc_cat_integrity": "System Integrity", - "sc_cat_hosts": "Hosts File", - "sc_cat_processes": "Running Processes", - "sc_cat_tasks": "Scheduled Tasks", - "sc_cat_network": "Network / LSP", - "sc_cat_indicators": "Known Indicators", - "sc_cat_browser": "Browser Hijacks", - "sc_cat_rootkit": "Rootkit Detection", - "sc_status_idle": "Scan to check for security issues.", - "sc_status_scanning": "Scanning…", - "sc_status_found": "{n} finding(s) — {high} high, {medium} medium, {low} low", - "sc_status_clean": "No issues found — system appears clean.", - "sc_col_risk": "Risk", - "sc_col_title": "Finding", - "sc_col_category": "Category", - "sc_col_location": "Location", - "sc_risk_high": "HIGH", - "sc_risk_medium": "MEDIUM", - "sc_risk_low": "LOW", - "sc_risk_info": "INFO", - "sc_detail_title": "DETAIL", - "sc_detail_empty": "Select a finding for details.", - "sc_no_fixable": "No fixable items are checked.", - "sc_fix_confirm_title": "Confirm Fix", - "sc_fix_confirm_msg": "Fix {n} finding(s)?\n\nThis will modify registry values or files.", - "sc_fix_done": "Fixed {ok} of {total} item(s).", - "sc_report_title": "Save Report", - "sc_report_saved": "Report saved to:\n{path}", - "sc_report_error": "Could not save report:\n{err}", - "tab_installer": "App Installer", - "tab_netmon": "Net Monitor", - "nm_btn_live": "▶ Live", - "nm_btn_stop": "■ Stop", - "nm_filter_ph": "Filter by process, IP, port…", - "nm_block_proc": "🚫 Block Process", - "nm_block_ip": "⛔ Block IP", - "nm_unblock_all": "✓ Unblock All", - "nm_export_csv": "↗ Export CSV", - "nm_stat_conns": "Connections", - "nm_stat_procs": "Processes", - "nm_stat_countries": "Countries", - "nm_detail_title": "Connection Detail", - "nm_sect_process": "PROCESS", - "nm_sect_network": "NETWORK", - "nm_sect_geo": "GEO / ASN", - "nm_lbl_name": "Name", + "strt_col_name": "نام", + "strt_col_publisher": "ناشر", + "strt_col_source": "منبع", + "strt_col_command": "دستور", + "strt_status": "{n} ورودی استارتاپ", + "strt_loading": "در حال بارگذاری ورودی‌های استارتاپ…", + "strt_confirm_delete": "حذف ورودی استارتاپ", + "strt_confirm_msg": "«{name}» از استارتاپ حذف شود؟\n\nخود برنامه حذف نمی‌شود.", + "strt_admin_warn": "نیاز به دسترسی مدیر", + "strt_admin_msg": "تغییر ورودی‌های استارتاپ سراسری (HKLM) نیاز به دسترسی مدیر دارد.", + "strt_ctx_enable": "فعال‌سازی", + "strt_ctx_disable": "غیرفعال‌سازی", + "strt_ctx_delete": "حذف ورودی", + "strt_ctx_open": "باز کردن مکان فایل", + "strt_ctx_copy": "کپی دستور", + "tab_browser": "پاک‌کننده مرورگر", + "bsr_scan_btn": "▶ اسکن", + "bsr_clean_btn": "🗑 پاک کردن انتخاب‌شده‌ها", + "bsr_col_type": "نوع داده", + "bsr_col_size": "حجم", + "bsr_col_status": "وضعیت", + "bsr_col_path": "مسیر", + "bsr_status_idle": "یک مرورگر انتخاب کنید و روی اسکن کلیک کنید.", + "bsr_status_scanning": "در حال اسکن…", + "bsr_status_found": "{n} آیتم پیدا شد — {size} در مجموع", + "bsr_status_cleaned": "{n} آیتم پاک شد.", + "bsr_status_not_found": "چیزی پیدا نشد", + "bsr_status_found_item": "پیدا شد", + "bsr_status_manual": "فقط دستی", + "bsr_running_warn": "هشدار: {browser} در حال اجرا به نظر می‌رسد. قبل از پاک‌سازی آن را ببندید تا داده‌ای از دست نرود.", + "bsr_confirm_title": "تأیید پاک‌سازی", + "bsr_confirm_msg": "{n} آیتم ({size}) حذف شود؟\n\nاین عمل قابل برگشت نیست.", + "bsr_password_warn_title": "رمزهای عبور ذخیره‌شده", + "bsr_password_warn_msg": "حذف رمزهای عبور ذخیره‌شده، تمام اعتبارنامه‌های ورود را پاک می‌کند. ادامه می‌دهید؟", + "bsr_profile_lbl": "پروفایل:", + "bsr_no_browsers": "هیچ مرورگر پشتیبانی‌شده‌ای شناسایی نشد.", + "bsr_ctx_preview": "پیش‌نمایش", + "bsr_ctx_copy": "کپی مسیر", + "bsr_ctx_open": "باز کردن پوشه محتوی", + "bsr_ctx_clean": "پاک کردن این آیتم", + "bsr_preview_title": "پیش‌نمایش", + "bsr_preview_loading": "در حال بارگذاری…", + "bsr_no_preview": "یک ردیف انتخاب کنید تا محتوای آن را ببینید", + "tab_uninstaller": "حذف‌کننده برنامه", + "unst_search_placeholder": "جستجوی برنامه‌ها…", + "unst_show_system": "نمایش کامپوننت‌های سیستمی", + "unst_refresh": "↺ بازآوری", + "unst_col_name": "نام", + "unst_col_publisher": "ناشر", + "unst_col_version": "نسخه", + "unst_col_size": "حجم", + "unst_col_date": "تاریخ نصب", + "unst_status": "{n} برنامه", + "unst_loading": "در حال بارگذاری برنامه‌های نصب‌شده…", + "unst_uninstall_btn": "🗑 حذف برنامه", + "unst_advanced_btn": "پیشرفته…", + "unst_confirm_title": "تأیید حذف", + "unst_confirm_msg": "«{name}» حذف شود؟\n\nحذف‌کننده خود برنامه اجرا می‌شود.", + "unst_launched_title": "حذف‌کننده اجرا شد", + "unst_launched_msg": "حذف‌کننده «{name}» اجرا شد.\n\nپس از اتمام، لیست را بازآوری کنید.", + "unst_leftovers_title": "فایل‌های باقیمانده — {name}", + "unst_leftovers_close": "بستن", + "unst_leftovers_clean": "🗑 حذف باقیمانده‌ها", + "unst_leftovers_loading": "در حال جستجو برای فایل‌های باقیمانده…", + "unst_leftovers_none": "هیچ فایل باقیمانده‌ای پیدا نشد.", + "unst_leftovers_col_path": "مسیر", + "unst_leftovers_col_size": "حجم", + "unst_ctx_uninstall": "حذف برنامه", + "unst_ctx_leftovers": "پیدا کردن باقیمانده‌ها…", + "unst_ctx_copy_name": "کپی نام", + "unst_ctx_copy_pub": "کپی ناشر", + "tab_syscheck": "بررسی سیستم", + "sc_scan_btn": "▶ اسکن همه", + "sc_fix_btn": "🔧 رفع مشکلات انتخاب‌شده", + "sc_report_btn": "📄 ذخیره گزارش", + "sc_all_categories": "همه دسته‌بندی‌ها", + "sc_cat_startup": "پایداری استارتاپ", + "sc_cat_integrity": "یکپارچگی سیستم", + "sc_cat_hosts": "فایل Hosts", + "sc_cat_processes": "پروسه‌های در حال اجرا", + "sc_cat_tasks": "وظایف زمان‌بندی‌شده", + "sc_cat_network": "شبکه / LSP", + "sc_cat_indicators": "شاخص‌های شناخته‌شده", + "sc_cat_browser": "هایجک مرورگر", + "sc_cat_rootkit": "شناسایی روت‌کیت", + "sc_status_idle": "برای بررسی مشکلات امنیتی اسکن کنید.", + "sc_status_scanning": "در حال اسکن…", + "sc_status_found": "{n} یافته — {high} بحرانی، {medium} متوسط، {low} کم‌خطر", + "sc_status_clean": "هیچ مشکلی پیدا نشد — سیستم سالم به نظر می‌رسد.", + "sc_col_risk": "ریسک", + "sc_col_title": "یافته", + "sc_col_category": "دسته‌بندی", + "sc_col_location": "مکان", + "sc_risk_high": "بحرانی", + "sc_risk_medium": "متوسط", + "sc_risk_low": "کم‌خطر", + "sc_risk_info": "اطلاعات", + "sc_detail_title": "جزئیات", + "sc_detail_empty": "یک یافته را انتخاب کنید تا جزئیات ببینید.", + "sc_no_fixable": "هیچ آیتم قابل رفعی انتخاب نشده.", + "sc_fix_confirm_title": "تأیید رفع", + "sc_fix_confirm_msg": "{n} یافته رفع شود؟\n\nاین مقادیر رجیستری یا فایل‌ها را تغییر می‌دهد.", + "sc_fix_done": "{ok} از {total} آیتم رفع شد.", + "sc_report_title": "ذخیره گزارش", + "sc_report_saved": "گزارش در این مسیر ذخیره شد:\n{path}", + "sc_report_error": "گزارش ذخیره نشد:\n{err}", + "tab_installer": "نصب برنامه", + "tab_netmon": "مانیتور شبکه", + "nm_btn_live": "▶ زنده", + "nm_btn_stop": "■ توقف", + "nm_filter_ph": "فیلتر بر اساس پروسه، IP، پورت…", + "nm_block_proc": "🚫 بلاک کردن پروسه", + "nm_block_ip": "⛔ بلاک کردن IP", + "nm_unblock_all": "✓ رفع بلاک همه", + "nm_export_csv": "↗ خروجی CSV", + "nm_stat_conns": "اتصالات", + "nm_stat_procs": "پروسه‌ها", + "nm_stat_countries": "کشورها", + "nm_detail_title": "جزئیات اتصال", + "nm_sect_process": "پروسه", + "nm_sect_network": "شبکه", + "nm_sect_geo": "موقعیت جغرافیایی / ASN", + "nm_lbl_name": "نام", "nm_lbl_pid": "PID", - "nm_lbl_path": "Path", - "nm_lbl_proto": "Protocol", - "nm_lbl_local": "Local", - "nm_lbl_remote": "Remote", - "nm_lbl_state": "State", - "nm_lbl_country": "Country", - "nm_lbl_city": "City", - "nm_lbl_hostname": "Hostname", - "nm_lbl_org": "Org / ASN", - "nm_col_proto": "Proto", - "nm_col_local": "Local", - "nm_col_remote": "Remote", - "nm_col_state": "State", - "nm_col_proc": "Process", - "nm_col_country": "Country", - "nm_col_org": "Org", - "nm_col_since": "Since", - "nm_dlg_block_proc": "Block Process", - "nm_err_no_path": "Process executable path is not available.", - "nm_dlg_block_proc_msg": "Block all network access for:\n\n {name}\n {path}", - "nm_dlg_blocked": "Blocked", - "nm_dlg_blocked_proc": "All traffic for {name} has been blocked.", - "nm_dlg_block_ip": "Block IP", - "nm_dlg_block_ip_msg": "Block all traffic to/from:\n\n {addr}", - "nm_dlg_blocked_ip": "{addr} has been blocked.", - "nm_dlg_unblocked": "Unblocked", - "nm_dlg_unblocked_proc": "{name} is now allowed.", - "nm_dlg_unblocked_ip": "{addr} is now allowed.", - "nm_dlg_unblock_all": "Unblock All", - "nm_dlg_no_rules": "No UniTool firewall rules found.", - "nm_dlg_remove_rules": "Remove {n} UniTool firewall rule(s)?", - "nm_dlg_removed": "Removed {n} rule(s).", - "nm_dlg_export": "Export", - "nm_dlg_no_conns": "No connections to export.", - "nm_dlg_export_title": "Export Connections", - "nm_dlg_exported": "Exported", - "nm_dlg_saved": "Saved to:\n{path}", - "nm_dlg_error": "Error", - "nm_ctx_unblock_proc": "✓ Unblock {name}", - "nm_ctx_block_proc": "🚫 Block {name}", - "nm_ctx_unblock_ip": "✓ Unblock {addr}", - "nm_ctx_block_ip": "⛔ Block {addr}", - "nm_ctx_copy_ip": "Copy IP — {addr}", - "nm_ctx_copy_path": "Copy Process Path", - "inst_cat_browsers": "Browsers", - "inst_cat_communication": "Communication", - "inst_cat_media": "Media", - "inst_cat_dev": "Dev Tools", - "inst_cat_utilities": "Utilities", - "inst_cat_security": "Security", - "inst_cat_gaming": "Gaming", - "inst_cat_office": "Office", - "inst_all_apps": "All Apps", - "inst_check_btn": "↺ Check Status", - "inst_install_btn": "⬇ Install Selected", - "inst_update_selected_btn": "⬆ Update Selected", - "inst_update_all_btn": "⬆ Update All", - "inst_col_name": "Application", - "inst_col_publisher": "Publisher", - "inst_col_desc": "Description", - "inst_col_status": "Status", - "inst_status_installed": "Installed", - "inst_status_update": "Update Available", - "inst_status_idle": "Select apps and click Install, or check for updates.", - "inst_status_checking": "Checking installed apps…", - "inst_status_ready": "{installed} installed, {updates} update(s) available.", - "inst_status_no_winget": "winget not found. Install App Installer from the Microsoft Store.", - "inst_installing": "Installing {name}…", - "inst_done": "{ok} of {total} app(s) installed successfully.", - "inst_none_selected": "Select at least one app to install.", - "inst_log_title": "INSTALL LOG", - "inst_cancel_btn": "Cancel", + "nm_lbl_path": "مسیر", + "nm_lbl_proto": "پروتکل", + "nm_lbl_local": "محلی", + "nm_lbl_remote": "راه دور", + "nm_lbl_state": "وضعیت", + "nm_lbl_country": "کشور", + "nm_lbl_city": "شهر", + "nm_lbl_hostname": "نام میزبان", + "nm_lbl_org": "سازمان / ASN", + "nm_col_proto": "پروتکل", + "nm_col_local": "محلی", + "nm_col_remote": "راه دور", + "nm_col_state": "وضعیت", + "nm_col_proc": "پروسه", + "nm_col_country": "کشور", + "nm_col_org": "سازمان", + "nm_col_since": "از", + "nm_dlg_block_proc": "بلاک کردن پروسه", + "nm_err_no_path": "مسیر فایل اجرایی پروسه در دسترس نیست.", + "nm_dlg_block_proc_msg": "بلاک کردن تمام دسترسی‌های شبکه برای:\n\n {name}\n {path}", + "nm_dlg_blocked": "بلاک شد", + "nm_dlg_blocked_proc": "تمام ترافیک {name} بلاک شد.", + "nm_dlg_block_ip": "بلاک کردن IP", + "nm_dlg_block_ip_msg": "بلاک کردن تمام ترافیک به/از:\n\n {addr}", + "nm_dlg_blocked_ip": "{addr} بلاک شد.", + "nm_dlg_unblocked": "رفع بلاک", + "nm_dlg_unblocked_proc": "{name} اکنون مجاز است.", + "nm_dlg_unblocked_ip": "{addr} اکنون مجاز است.", + "nm_dlg_unblock_all": "رفع بلاک همه", + "nm_dlg_no_rules": "هیچ قانون فایروال UniTool پیدا نشد.", + "nm_dlg_remove_rules": "{n} قانون فایروال UniTool حذف شود؟", + "nm_dlg_removed": "{n} قانون حذف شد.", + "nm_dlg_export": "خروجی", + "nm_dlg_no_conns": "هیچ اتصالی برای خروجی وجود ندارد.", + "nm_dlg_export_title": "خروجی اتصالات", + "nm_dlg_exported": "خروجی گرفته شد", + "nm_dlg_saved": "ذخیره شد در:\n{path}", + "nm_dlg_error": "خطا", + "nm_ctx_unblock_proc": "✓ رفع بلاک {name}", + "nm_ctx_block_proc": "🚫 بلاک {name}", + "nm_ctx_unblock_ip": "✓ رفع بلاک {addr}", + "nm_ctx_block_ip": "⛔ بلاک {addr}", + "nm_ctx_copy_ip": "کپی IP — {addr}", + "nm_ctx_copy_path": "کپی مسیر پروسه", + "inst_cat_browsers": "مرورگرها", + "inst_cat_communication": "ارتباطات", + "inst_cat_media": "رسانه", + "inst_cat_dev": "ابزارهای توسعه", + "inst_cat_utilities": "ابزارها", + "inst_cat_security": "امنیت", + "inst_cat_gaming": "گیمینگ", + "inst_cat_office": "آفیس", + "inst_all_apps": "همه برنامه‌ها", + "inst_check_btn": "↺ بررسی وضعیت", + "inst_install_btn": "⬇ نصب انتخاب‌شده‌ها", + "inst_update_selected_btn": "⬆ به‌روزرسانی انتخاب‌شده‌ها", + "inst_update_all_btn": "⬆ به‌روزرسانی همه", + "inst_col_name": "برنامه", + "inst_col_publisher": "ناشر", + "inst_col_desc": "توضیحات", + "inst_col_status": "وضعیت", + "inst_status_installed": "نصب شده", + "inst_status_update": "به‌روزرسانی در دسترس", + "inst_status_idle": "برنامه‌ها را انتخاب کنید و روی نصب کلیک کنید، یا وضعیت به‌روزرسانی را بررسی کنید.", + "inst_status_checking": "در حال بررسی برنامه‌های نصب‌شده…", + "inst_status_ready": "{installed} نصب شده، {updates} به‌روزرسانی در دسترس.", + "inst_status_no_winget": "winget پیدا نشد. App Installer را از Microsoft Store نصب کنید.", + "inst_installing": "در حال نصب {name}…", + "inst_done": "{ok} از {total} برنامه با موفقیت نصب شد.", + "inst_none_selected": "حداقل یک برنامه برای نصب انتخاب کنید.", + "inst_log_title": "لاگ نصب", + "inst_cancel_btn": "لغو", "inst_version_lbl": "v{ver}", "inst_update_lbl": "{cur} → {new}", - "inst_tab_catalog": "Catalog", - "inst_tab_installed": "Installed", - "inst_search_placeholder": "Search apps…", - "inst_col_id": "Package ID", - "inst_col_version": "Version", - "inst_col_available": "Available Update", - "inst_col_source": "Source", - "inst_no_installed": "No installed apps found. Click Check Status to refresh.", - "inst_select_all": "Select All", - "inst_deselect_all": "Deselect All", - "inst_searching": "Searching winget for '{query}'…", - "inst_press_enter": "No catalog match — press Enter to search winget for '{query}'", - "inst_search_results": "Winget results for '{query}'", - "inst_back_catalog": "← Back to catalog", - "inst_no_results": "No results found for '{query}'.", - "lang_label": "Language / Dil", - "tab_dpi": "Internet Freedom", - "dpi_cmd_subtitle": "Protect your network connection", - "dpi_status_protected": "Protected", - "dpi_status_unprotected": "Not Protected", - "dpi_state_on_sub": "Connection protection is active.", - "dpi_state_off_sub": "Press the power button to enable connection protection.", - "dpi_chip_on": "● Protected", - "dpi_chip_off": "○ Unprotected", - "dpi_off": "Off", - "dpi_sum_mode": "Mode", + "inst_tab_catalog": "کاتالوگ", + "inst_tab_installed": "نصب‌شده‌ها", + "inst_search_placeholder": "جستجوی برنامه‌ها…", + "inst_col_id": "شناسه پکیج", + "inst_col_version": "نسخه", + "inst_col_available": "به‌روزرسانی در دسترس", + "inst_col_source": "منبع", + "inst_no_installed": "برنامه‌ای نصب‌شده پیدا نشد. روی بررسی وضعیت کلیک کنید.", + "inst_select_all": "انتخاب همه", + "inst_deselect_all": "لغو انتخاب همه", + "inst_searching": "در حال جستجوی winget برای «{query}»…", + "inst_press_enter": "در کاتالوگ موجود نیست — Enter بزنید تا winget «{query}» را جستجو کند", + "inst_back_catalog": "← بازگشت به کاتالوگ", + "inst_no_results": "نتیجه‌ای برای «{query}» پیدا نشد.", + "lang_label": "زبان / Language", + "tab_dpi": "آزادی اینترنت", + "dpi_cmd_subtitle": "از اتصال شبکه‌تان محافظت کنید", + "dpi_status_protected": "محافظت‌شده", + "dpi_status_unprotected": "محافظت‌نشده", + "dpi_state_on_sub": "محافظت از اتصال فعال است.", + "dpi_state_off_sub": "دکمه پاور را بزنید تا محافظت از اتصال فعال شود.", + "dpi_chip_on": "● محافظت‌شده", + "dpi_chip_off": "○ محافظت‌نشده", + "dpi_off": "خاموش", + "dpi_sum_mode": "حالت", "dpi_sum_dns": "DNS", - "dpi_sect_mode": "MODE", - "dpi_sect_tech": "PROTECTION METHODS", + "dpi_sect_mode": "حالت", + "dpi_sect_tech": "روش‌های محافظت", "dpi_sect_dns": "DNS", - "dpi_sect_domains": "DOMAIN FILTER", - "dpi_mode_lbl": "Preset", - "dpi_mode_1": "Mode 1 — Light", - "dpi_mode_2": "Mode 2 — Balanced", - "dpi_mode_3": "Mode 3 — Recommended", - "dpi_mode_4": "Mode 4 — Strong", - "dpi_mode_5": "Mode 5 — Aggressive", - "dpi_mode_custom": "Custom", - "dpi_t_passive": "Passive traffic protection", - "dpi_t_passive_d": "Filter injected RST and redirect packets from your provider", - "dpi_t_frag_https": "Fragment HTTPS packets", - "dpi_t_frag_https_d": "Split the TLS handshake to improve HTTPS connectivity", - "dpi_t_frag_http": "Fragment HTTP packets", - "dpi_t_frag_http_d": "Split HTTP requests to improve plain-text connectivity", - "dpi_t_fake": "Send fake packets", - "dpi_t_fake_d": "Send decoy packets before the real connection packet", - "dpi_t_wrong_chksum": "Wrong checksum", - "dpi_t_wrong_chksum_d": "Decoy packets carry an invalid checksum (TTL method)", - "dpi_t_wrong_seq": "Wrong sequence", - "dpi_t_wrong_seq_d": "Decoy packets carry an invalid TCP sequence number", - "dpi_t_native_frag": "Native fragmentation", - "dpi_t_native_frag_d": "Use OS-level IP fragmentation for better compatibility", - "dpi_t_host_mixed": "Mixed-case Host header", - "dpi_t_host_mixed_d": "Randomise Host header letter case for obfuscation", - "dpi_t_host_space": "Remove space after Host:", - "dpi_t_host_space_d": "Remove the space in the Host header value", - "dpi_dns_enable": "Redirect DNS to a secure resolver", - "dpi_dns_enable_d": "Prevent DNS manipulation by your network provider", - "dpi_dns_server": "DNS server", - "dpi_dns_custom": "Custom…", - "dpi_doh": "Use DNS-over-HTTPS (DoH)", - "dpi_doh_d": "Encrypt DNS queries so they cannot be inspected", - "dpi_dom_all": "Apply to all traffic", - "dpi_dom_list": "Only listed domains", - "dpi_dom_ph": "One domain per line, e.g. example.com", - "dpi_note": "UI preview only — the protection engine is not connected yet. Enabling it will require administrator privileges.", - "dpi_connecting": "Connecting…", - "dpi_download_prompt": "The protection tool (GoodbyeDPI) is not downloaded yet.\n\nDownload it now (~1 MB from GitHub)?", - "dpi_downloading": "Downloading protection tool…", - "dpi_download_ok": "Protection tool downloaded. Click the power button to connect.", - "dpi_download_fail": "Download failed.", + "dpi_sect_domains": "فیلتر دامنه", + "dpi_mode_lbl": "پیش‌تنظیم", + "dpi_mode_1": "حالت ۱ — سبک", + "dpi_mode_2": "حالت ۲ — متوازن", + "dpi_mode_3": "حالت ۳ — پیشنهادی", + "dpi_mode_4": "حالت ۴ — قوی", + "dpi_mode_5": "حالت ۵ — تهاجمی", + "dpi_mode_custom": "سفارشی", + "dpi_t_passive": "محافظت غیرفعال از ترافیک", + "dpi_t_passive_d": "فیلتر پکت‌های RST و ریدایرکت تزریق‌شده توسط ارائه‌دهنده اینترنت", + "dpi_t_frag_https": "تکه‌تکه کردن پکت‌های HTTPS", + "dpi_t_frag_https_d": "تقسیم TLS handshake برای بهبود اتصال HTTPS", + "dpi_t_frag_http": "تکه‌تکه کردن پکت‌های HTTP", + "dpi_t_frag_http_d": "تقسیم درخواست‌های HTTP برای بهبود اتصال متن ساده", + "dpi_t_fake": "ارسال پکت‌های جعلی", + "dpi_t_fake_d": "ارسال پکت‌های طعمه قبل از پکت اتصال واقعی", + "dpi_t_wrong_chksum": "چک‌سام نادرست", + "dpi_t_wrong_chksum_d": "پکت‌های طعمه چک‌سام نامعتبر دارند (روش TTL)", + "dpi_t_wrong_seq": "شماره توالی نادرست", + "dpi_t_wrong_seq_d": "پکت‌های طعمه شماره توالی TCP نامعتبر دارند", + "dpi_t_native_frag": "تکه‌تکه‌سازی بومی", + "dpi_t_native_frag_d": "استفاده از تکه‌تکه‌سازی IP در سطح OS برای سازگاری بهتر", + "dpi_t_host_mixed": "هدر Host با حروف مخلوط", + "dpi_t_host_mixed_d": "تغییر تصادفی حروف بزرگ و کوچک هدر Host برای مبهم‌سازی", + "dpi_t_host_space": "حذف فاصله بعد از Host:", + "dpi_t_host_space_d": "حذف فاصله در مقدار هدر Host", + "dpi_dns_enable": "ریدایرکت DNS به یک resolver امن", + "dpi_dns_enable_d": "جلوگیری از دستکاری DNS توسط ارائه‌دهنده شبکه", + "dpi_dns_server": "سرور DNS", + "dpi_dns_custom": "سفارشی…", + "dpi_doh": "استفاده از DNS-over-HTTPS (DoH)", + "dpi_doh_d": "رمزگذاری درخواست‌های DNS تا قابل بازرسی نباشند", + "dpi_dom_all": "اعمال روی همه ترافیک", + "dpi_dom_list": "فقط دامنه‌های لیست‌شده", + "dpi_dom_ph": "یک دامنه در هر خط، مثلاً example.com", + "dpi_note": "فقط پیش‌نمایش UI — موتور محافظت هنوز متصل نشده. فعال‌سازی آن نیاز به دسترسی مدیر دارد.", + "dpi_connecting": "در حال اتصال…", + "dpi_download_prompt": "ابزار محافظت (GoodbyeDPI) هنوز دانلود نشده.\n\nالان دانلود شود؟ (~۱ مگابایت از GitHub)", + "dpi_downloading": "در حال دانلود ابزار محافظت…", + "dpi_download_ok": "ابزار محافظت دانلود شد. دکمه پاور را بزنید تا متصل شوید.", + "dpi_download_fail": "دانلود ناموفق بود.", "upd_available": "UniTool نسخه {latest} در دسترس است (نسخه شما: {current})", "upd_download": "دانلود", "srch_no_everything": "Everything نصب نشده است — از voidtools.com دانلود کنید", @@ -540,4 +539,4 @@ "srch_loc_all": "همه", "srch_loc_browse": "مرور…", "srch_ext_ph": ".pdf, .md, .txt …" -} \ No newline at end of file +} From 7e7081c09f9a97034e021a7327bc05b96aaf74c0 Mon Sep 17 00:00:00 2001 From: MmD Date: Thu, 18 Jun 2026 12:47:11 +0330 Subject: [PATCH 2/2] feat(i18n): add search results message for winget in Persian translation --- resources/languages/fa.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/languages/fa.json b/resources/languages/fa.json index 2e8e290..952d1a3 100644 --- a/resources/languages/fa.json +++ b/resources/languages/fa.json @@ -471,6 +471,7 @@ "inst_deselect_all": "لغو انتخاب همه", "inst_searching": "در حال جستجوی winget برای «{query}»…", "inst_press_enter": "در کاتالوگ موجود نیست — Enter بزنید تا winget «{query}» را جستجو کند", + "inst_search_results": "نتایج winget برای «{query}»", "inst_back_catalog": "← بازگشت به کاتالوگ", "inst_no_results": "نتیجه‌ای برای «{query}» پیدا نشد.", "lang_label": "زبان / Language",