# خطاهای پایه
ErrInvalidParams: 'درخواست نامعتبر: {{ .detail }}'
ErrMcpGatewayArgsParse: 'قالب آرگومان‌های سفارشی MCP نامعتبر است'
ErrMcpGatewayArgsConflict: 'آرگومان {{ .name }} توسط 1Panel مدیریت می‌شود و نمی‌توان آن را در آرگومان‌های سفارشی تنظیم کرد'
ErrTokenParse: 'خطا در توکن: {{ .detail }}'
ErrInitialPassword: 'رمز عبور اصلی اشتباه است'
ErrInternalServer: 'خطای داخلی سرور: {{ .detail }}'
ErrRecordExist: 'رکورد از قبل وجود دارد'
ErrRecordNotFound: 'رکورد یافت نشد'
WafLogExport: 'خروجی لاگ WAF'
MonitorLogExport: 'خروجی لاگ پایش وب‌سایت'
LogExportNoData: 'هیچ لاگی با فیلترهای انتخاب‌شده مطابقت ندارد'
LogExportDiskSpace: 'فضای آزاد کمتر از ۱ گیگابایت است؛ خروجی متوقف شد'
LogExportRetentionInvalid: 'مدت نگهداری سوابق خروجی باید بین ۱ تا ۳۰ روز باشد'
ErrSystemLogKeywordFilterUnsupported: 'نسخه فعلی سیستم از فیلتر کلیدواژه در گزارش‌های سیستم پشتیبانی نمی‌کند (به systemd 237 یا جدیدتر نیاز است)'
ErrStructTransform: 'تبدیل نوع ناموفق بود: {{ .err }}'
ErrNotSupportType: 'نوع پشتیبانی نمی‌شود: {{ .name }}'

# هوش مصنوعی فایل
ErrFileAINotEnabled: 'خلاصه‌سازی هوش مصنوعی مدیریت فایل نیاز به فعال بودن حساب هوش مصنوعی در مدیریت فایل دارد. جستجوی صرفاً محتوایی زمانی که هوش مصنوعی خاموش است همچنان کار می‌کند.'
ErrFileAISearchBadPattern: 'الگوی جستجوی فایل نامعتبر است (عبارت منظم یا کل کلمه): {{ .detail }}'
FileAISearchEmptyDir: 'هیچ فایل یا دایرکتوری در این مسیر یافت نشد (یا همه ورودی‌ها فیلتر شدند).'

# دانلود از راه دور
ErrWgetRemoteFailed: 'دانلود از راه دور ناموفق بود یا URL قابل دسترس نیست: {{ .detail }}'
ErrWgetInvalidContentType: 'URL از راه دور فایلی را برنگرداند (احتمالاً صفحه خطا)، {{ .detail }}'
ErrWgetProxyNotConfigured: 'ابتدا یک سرور پروکسی در تنظیمات پنل پیکربندی کنید'
ErrWgetProxyInvalid: 'آدرس سرور پروکسی نامعتبر است: {{ .detail }}'

# ورود و امنیت
ErrNotLogin: 'وارد نشده‌اید: {{ .detail }}'
ErrPasswordExpired: 'رمز عبور منقضی شده است: {{ .detail }}'

# درخواست و API
ErrProxy: 'درخواست ناموفق بود: {{ .detail }}'
ErrApiConfigStatusInvalid: 'دسترسی API غیرفعال است: {{ .detail }}'
ErrApiConfigKeyInvalid: 'کلید API نامعتبر است: {{ .detail }}'
ErrApiConfigIPInvalid: 'IP در لیست سفید API نیست: {{ .detail }}'
ErrApiConfigDisable: 'نقطه پایانی از طریق API مجاز نیست: {{ .detail }}'
ErrApiConfigKeyTimeInvalid: 'مهر زمانی API نامعتبر است: {{ .detail }}'
ErrCreateHttpClient: 'ایجاد درخواست HTTP ناموفق بود: {{ .err }}'
ErrHttpReqTimeOut: 'زمان درخواست HTTP به پایان رسید: {{ .err }}'
ErrHttpReqFailed: 'درخواست HTTP ناموفق بود: {{ .err }}'
ErrNoSuchHost: 'تفکیک میزبان ناموفق بود: {{ .err }}'
ErrHttpReqNotFound: 'منبع درخواستی یافت نشد: {{ .err }}'

# پرش سریع
ErrMinQuickJump: 'حداقل یک ورودی پرش سریع تنظیم کنید'
ErrMaxQuickJump: 'حداکثر ۴ ورودی پرش سریع'

# عمومی
ErrShutDown: 'دستور به صورت دستی متوقف شد'
ErrUsernameIsExist: 'نام کاربری از قبل وجود دارد'
ErrNameIsExist: 'نام از قبل وجود دارد'
ErrDemoEnvironment: 'در محیط آزمایشی غیرفعال است'
ErrCmdTimeout: 'زمان اجرای دستور به پایان رسید'
ErrCmdIllegal: 'دستور شامل کاراکترهای غیرمجاز است'
ErrPortExist: 'پورت {{ .port }} قبلاً توسط {{ .type }} [{{ .name }}] اشغال شده است'
TYPE_APP: 'برنامه'
TYPE_RUNTIME: 'محیط اجرا'
TYPE_DOMAIN: 'دامنه'
ErrTypePort: 'فرمت پورت نامعتبر است: {{ .name }}'
ErrTypePortRange: 'محدوده پورت باید ۱-۶۵۵۳۵ باشد'
Success: 'موفق'
Failed: 'ناموفق'
SystemRestart: 'وظیفه به دلیل راه‌اندازی مجدد سیستم قطع شد'
ErrGroupIsDefault: 'گروه پیش‌فرض، قابل حذف نیست'
ErrGroupIsInWebsiteUse: 'گروه توسط یک وب‌سایت در حال استفاده است'
Decrypt: "رمزگشایی"

# عامل
ErrAgentAccountBound: 'حساب به یک عامل متصل است و قابل حذف نیست'
ErrTerminalAIAccountInUse: 'این حساب مدل در حال حاضر توسط ترمینال هوش مصنوعی استفاده می‌شود. حساب را در تنظیمات ترمینال هوش مصنوعی تغییر دهید یا ترمینال هوش مصنوعی را غیرفعال کرده و دوباره تلاش کنید.'
ErrFileAIAccountInUse: 'این حساب مدل توسط هوش مصنوعی مدیریت فایل استفاده می‌شود. حساب را در تنظیمات آن تغییر دهید یا هوش مصنوعی مدیریت فایل را غیرفعال کرده و دوباره تلاش کنید.'
ErrAgentAccountUnavailable: 'اتصال حساب در دسترس نیست: {{ .err }}'
ErrAgentProviderNotSupported: 'ارائه‌دهنده عامل پشتیبانی نمی‌شود'
ErrAgentAccountRequired: 'ابتدا یک حساب عامل انتخاب کنید'
ErrAgentAccountNotVerified: 'حساب عامل تأیید نشده است'
ErrAgentAccountModelsRequired: 'لطفاً حداقل یک مدل پیکربندی کنید'
ErrAgentAccountSingleInitialModel: 'فقط یک مدل اولیه می‌تواند در هنگام ایجاد حساب پیکربندی شود'
ErrAgentModelNotInAccount: 'مدل در حساب انتخاب شده پیکربندی نشده است'
ErrAgentVerifyModelInUse: 'این مدل برای بررسی حساب استفاده می‌شود. پیش از حذف، مدل بررسی دیگری انتخاب کنید'
ErrAgentFallbackModelDuplicate: 'مدل‌های جایگزین نمی‌توانند تکراری باشند'
ErrAgentFallbackModelPrimary: 'مدل جایگزین نمی‌تواند با مدل اصلی یکی باشد'
ErrAgentModelInUse: 'یک عامل متصل هنوز از این مدل استفاده می‌کند: {{ .name }}'
ErrAgentBaseURLRequired: 'آدرس پایه الزامی است'
ErrAgentApiKeyRequired: 'کلید API الزامی است'
ErrAgentComposeRequired: 'محتوای Compose الزامی است'
ErrAgentIDRequired: 'شناسه عامل الزامی است'
ErrAgentAccountIDRequired: 'شناسه حساب الزامی است'
ErrAgentLimitReached: 'نسخه انجمن تا {{ .max }} عامل هوش مصنوعی را پشتیبانی می‌کند. برای عامل‌های نامحدود به نسخه تجاری ارتقاء دهید'
ErrAgentWebsiteBound: 'این عامل قبلاً به یک وب‌سایت متصل است'
ErrAgentWebsiteTypeUnsupported: 'فقط وب‌سایت‌های پراکسی یا استاتیک قابل اتصال هستند'
ErrAgentWebsiteInUse: 'این وب‌سایت قبلاً به عامل دیگری متصل است'
ErrAgentWebsiteUnbindUnsupported: 'وب‌سایت‌های استقرار یافته را نمی‌توان به صورت دستی قطع اتصال کرد'
ErrQwenPawAuthRequest: 'به‌روزرسانی اطلاعات ورود QwenPaw ناموفق بود: {{ .err }}'
ErrQwenPawAuthOutOfSync: 'اطلاعات ورود فعلی QwenPaw با رکورد 1Panel مطابقت ندارد. گذرواژه QwenPaw را بازنشانی کنید یا اطلاعات ورود فایل .env برنامه را بازیابی کنید'
ErrQwenPawAuthDisabled: 'احراز هویت ورود در QwenPaw فعال نشده است'
ErrHermesPairingCodeUnavailable: 'کد جفت‌سازی به طور موقت در هرمس در دسترس نیست، احتمالاً به دلیل مشکلات شبکه. لطفاً بعداً دوباره تلاش کنید.'
ErrHermesFeishuGroupAllowlistRequiresAllowlist: 'وقتی خط مشی گروه فیشو لیست سفید باشد، خط مشی DM نمی‌تواند کد جفت‌سازی باشد.'

# پشتیبان‌گیری و تنظیمات هشدار
Localhost: 'محلی'
ErrBackupInUsed: 'حساب پشتیبان توسط یک وظیفه زمان‌بندی در حال استفاده است'
ErrBackupCheck: 'تست اتصال حساب پشتیبان ناموفق بود: {{ .err }}'
ErrBackupLocalDelete: 'حساب‌های پشتیبان محلی قابل حذف نیستند'
ErrBackupLocalCreate: 'حساب‌های پشتیبان محلی قابل ایجاد نیستند'
ErrAlertConfigInUse: 'پیکربندی هشدار در حال استفاده است و قابل حذف نیست'
ErrAlertConfigPhoneExist: 'شماره تلفن از قبل وجود دارد'

# برنامه
ErrPortInUsed: 'پورت {{ .detail }} قبلاً اشغال شده است!'
ErrAppLimit: 'محدودیت نصب برنامه رسیده است'
ErrNotInstall: 'برنامه نصب نشده است'
ErrPortInOtherApp: 'پورت {{ .port }} قبلاً توسط برنامه {{ .apps }} اشغال شده است!'
ErrDbUserNotValid: 'نام کاربری/رمز عبور پایگاه داده مطابقت ندارد'
ErrMysqlUserUsedByApps: 'این کاربر پایگاه داده توسط [{{ .detail }}] استفاده می‌شود و میزبان آن قابل تغییر نیست؛ همچنین نمی‌توان آن را حذف یا مجوزش را لغو کرد'
ErrUpdateBuWebsite: 'برنامه به‌روزرسانی شد، اما به‌روزرسانی پیکربندی وب‌سایت ناموفق بود'
Err1PanelNetworkFailed: 'ایجاد شبکه پیش‌فرض کانتینر ناموفق بود! {{ .detail }}'
ErrFileParse: 'تجزیه فایل docker-compose برنامه ناموفق بود'
ErrInstallDirNotFound: 'دایرکتوری نصب یافت نشد؛ از حذف اجباری استفاده کنید'
AppStoreIsUpToDate: 'فروشگاه برنامه از قبل آخرین نسخه است'
LocalAppVersionNull: 'برنامه {{ .name }} هیچ نسخه همگام‌سازی شده‌ای ندارد'
LocalAppVersionErr: 'همگام‌سازی نسخه {{ .version }} برنامه {{ .name }} ناموفق بود: {{ .err }}'
ErrFileNotFound: 'فایل {{ .name }} وجود ندارد'
ErrFileParseApp: 'تجزیه {{ .name }} ناموفق بود: {{ .err }}'
ErrAppDirNull: 'پوشه نسخه وجود ندارد'
LocalAppErr: 'همگام‌سازی برنامه {{ .name }} ناموفق بود: {{ .err }}'
ErrContainerName: 'نام کانتینر از قبل وجود دارد'
ErrContainerNotFound: 'کانتینر {{ .name }} وجود ندارد'
ErrContainerMsg: 'کانتینر {{ .name }} غیرعادی است؛ لاگ‌ها را بررسی کنید'
ErrAppBackup: 'پشتیبان‌گیری از برنامه ناموفق بود: {{ .name }} {{ .err }}'
ErrVersionTooLow: 'نسخه 1Panel برای به‌روزرسانی فروشگاه برنامه بسیار پایین است'
ErrAppNameExist: 'نام برنامه از قبل وجود دارد'
ErrAppInstallNameExist: 'نام نصب برنامه {{ .name }} از قبل وجود دارد'
AppStoreIsSyncing: 'فروشگاه برنامه در حال همگام‌سازی است؛ بعداً دوباره تلاش کنید'
ErrGetCompose: 'خواندن docker-compose.yml ناموفق بود: {{ .detail }}'
ErrComposeProjectNameParse: 'تجزیه نام پروژه از خروجی پیکربندی Docker Compose ناموفق بود: {{ .detail }}'
ErrComposeProjectNameEmpty: 'نام پروژه از پیکربندی Docker Compose یا پوشه والد فایل قابل استخراج نیست. یک نام وارد کرده و دوباره تلاش کنید.'
ErrComposeNameInvalid: 'نام پروژه Compose نامعتبر است: باید با حرف کوچک یا عدد شروع شود، فقط شامل حروف کوچک، اعداد، خط تیره و زیرخط باشد و ۱ تا ۲۵۶ نویسه داشته باشد.'
ErrAppVersionUnavailable: 'این نسخه برنامه از سرویس راه دور حذف شده است. لطفاً نسخه دیگری را انتخاب کرده و دوباره تلاش کنید.'
ErrAppWarn: 'وضعیت برنامه غیرعادی است؛ لاگ‌ها را بررسی کنید'
ErrAppParamKey: 'پارامتر برنامه نامعتبر است: {{ .name }}'
ErrAppUpgrade: 'ارتقاء برنامه ناموفق بود: {{ .name }} {{ .err }}'
AppRecover: 'بازگشت برنامه {{ .name }}'
PullImageStart: 'دریافت تصویر [{{ .name }}]'
PullImageSuccess: 'تصویر دریافت شد'
AppStoreSyncSuccess: 'فروشگاه برنامه همگام‌سازی شد'
SyncAppDetail: 'همگام‌سازی پیکربندی برنامه'
AppVersionNotMatch: 'رد شدن {{ .name }}: نیاز به 1Panel جدیدتر دارد'
MoveSiteDir: 'دایرکتوری وب‌سایت تغییر کرد؛ مهاجرت دایرکتوری OpenResty به {{ .name }}'
MoveSiteDirSuccess: 'دایرکتوری وب‌سایت مهاجرت کرد'
DeleteRuntimePHP: 'حذف محیط اجرا PHP'
CustomAppStoreFileValid: 'بسته فروشگاه برنامه باید .tar.gz باشد'
PullImageTimeout: 'زمان دریافت تصویر به پایان رسید؛ آینه دیگری را امتحان کنید'
ErrAppIsDown: 'برنامه {{ .name }} غیرعادی است'
ErrCustomApps: 'برنامه‌های نصب شده شناسایی شدند؛ ابتدا حذف نصب کنید'
ErrCustomRuntimes: 'محیط‌های اجرایی نصب شده شناسایی شدند؛ ابتدا حذف کنید'
ErrAppVersionDeprecated: "برنامه {{ .name }} با نسخه فعلی 1Panel سازگار نیست، رد شد"
ErrDockerFailed: 'Docker غیرعادی است؛ وضعیت سرویس را بررسی کنید'
ErrDockerComposeCmdNotFound: 'Docker Compose روی میزبان یافت نشد'
UseExistImage: 'تصویر وجود دارد؛ استفاده از تصویر موجود'
UpgradePrepare: 'آماده‌سازی ارتقاء برنامه'
UpgradeStop: 'توقف برنامه اصلی'
UpgradeWaitReady: 'انتظار برای آماده شدن برنامه'
UpgradeBackupDisabled: 'پشتیبان ارتقاء غیرفعال است؛ تغییرات داده اسکریپت‌های ارتقاء کاملاً قابل بازگشت نیست'
UpgradeRollbackFailed: 'بازگشت ناموفق بود'
ErrDatabaseNotFound: 'پایگاه داده یافت نشد: {{ .name }}'

# SSH
ExportIP: "IP ورود"
ExportArea: "مکان"
ExportPort: "پورت"
ExportAuthMode: "روش ورود"
ExportUser: "کاربر"
ExportStatus: "وضعیت ورود"
ExportDate: "زمان"

# فایل
ErrFileCanNotRead: 'پیش‌نمایش فایل پشتیبانی نمی‌شود'
ErrSensitiveFileRead: 'خواندن فایل‌های حساس مجاز نیست'
ErrFileToLarge: 'فایل بزرگتر از ۱۰ مگابایت است'
ErrPathNotFound: 'دایرکتوری وجود ندارد'
ErrMovePathFailed: 'مسیر هدف نمی‌تواند شامل مسیر منبع باشد'
ErrLinkPathNotFound: 'مسیر هدف وجود ندارد!'
ErrFileIsExist: 'فایل یا پوشه از قبل وجود دارد!'
ErrFileUpload: 'بارگذاری ناموفق بود: {{ .name }} {{ .detail }}'
ErrFileDownloadDir: 'دانلود دایرکتوری پشتیبانی نمی‌شود'
ErrFileSharePath: 'مسیر فایل نامعتبر است یا هدف یک فایل نیست'
ErrFileShareInvalid: 'لینک اشتراک نامعتبر یا منقضی شده است'
ErrFileShareExpired: 'لینک اشتراک منقضی شده است'
ErrFileSharePassword: 'رمز عبور اشتراک اشتباه است'
ErrFileShareExhausted: 'محدودیت دانلود برای این اشتراک رسیده است'
ErrFileSharePasswordPolicy: 'رمز عبور باید حداقل ۴ کاراکتر باشد'
ErrFileShareRateLimit: 'تعداد درخواست‌ها زیاد است، لطفاً بعداً دوباره تلاش کنید'
ErrCmdNotFound: 'دستور یافت نشد: {{ .name }}'
ErrSourcePathNotFound: 'دایرکتوری منبع وجود ندارد'
ErrFavoriteExist: 'مسیر از قبل در نشان‌ها وجود دارد'
ErrInvalidChar: 'کاراکترهای غیرمجاز مجاز نیستند'
ErrPathNotDelete: 'دایرکتوری انتخاب شده قابل حذف نیست'
ErrLogFileToLarge: 'فایل لاگ بیش از ۵۰۰ مگابایت است'
FileDropFailed: 'پاک‌سازی فایل ناموفق بود: {{ .name }} {{ .err }}'
FileDropSuccess: 'پاک‌سازی {{ .name }}؛ فایل‌ها: {{ .count }}، آزاد شده: {{ .size }}'
FileDropSum: 'پاک‌سازی انجام شد؛ فایل‌ها: {{ .count }}، آزاد شده: {{ .size }}'
ErrBadDecrypt: 'رمز عبور آرشیو اشتباه است؛ استخراج ناموفق بود'

# وب‌سایت
ErrAliasIsExist: 'نام مستعار از قبل وجود دارد'
ErrBackupMatch: 'داده‌های پشتیبان مطابقت ندارند: {{ .detail }}'
ErrBackupExist: 'داده‌های منبع پشتیبان وجود ندارند: {{ .detail }}'
ErrPHPResource: 'تغییر محیط اجرای محلی پشتیبانی نمی‌شود'
ErrPathPermission: 'پوشه غیر ۱۰۰۰:۱۰۰۰ در دایرکتوری ایندکس ممکن است باعث خطای دسترسی شود'
ErrDomainIsUsed: 'نام دامنه قبلاً توسط وب‌سایت [{{ .name }}] استفاده می‌شود'
ErrDomainFormat: 'فرمت دامنه نامعتبر است: {{ .name }}'
ErrDefaultAlias: 'default رزرو شده است؛ از نام مستعار دیگری استفاده کنید'
ErrParentWebsite: 'ابتدا زیرسایت {{ .name }} را حذف کنید'
ErrBuildDirNotFound: 'دایرکتوری ساخت وجود ندارد'
ErrImageNotExist: 'تصویر محیط اجرا یافت نشد: {{ .name }}'
ErrProxyIsUsed: 'تعادل بار توسط پراکسی معکوس استفاده می‌شود'
ErrSSLValid: 'فایل گواهی نامعتبر است'
ErrWebsiteDir: 'یک زیردایرکتوری در زیر دایرکتوری وب‌سایت انتخاب کنید'
ErrComposerFileNotFound: "فایل composer.json وجود ندارد"
ErrRuntimeNoPort: 'پورت محیط اجرا تنظیم نشده است'
ErrRuntimeProjectDirContainsCodeDir: 'دایرکتوری محیط اجرا شامل دایرکتوری پروژه انتخاب شده است. لطفاً دایرکتوری پروژه دیگری را انتخاب کرده و دوباره ایجاد کنید.'
Status: 'وضعیت'
start: 'شروع'
stop: 'توقف'
restart: 'راه‌اندازی مجدد'
kill: 'توقف اجباری'
pause: 'مکث'
unpause: 'ادامه'
remove: 'حذف'
delete: 'حذف'
ErrDefaultWebsite: 'وب‌سایت پیش‌فرض از قبل تنظیم شده است؛ ابتدا آن را لغو تنظیم کنید'
SSL: 'گواهی'
Set: 'تنظیمات'

# گواهی SSL
ErrSSLCannotDelete: 'گواهی {{ .name }} توسط یک وب‌سایت در حال استفاده است'
ErrAccountCannotDelete: 'حساب به یک گواهی متصل است و قابل حذف نیست'
ErrSSLApply: 'گواهی تمدید شد؛ بارگذاری مجدد OpenResty ناموفق بود'
ErrEmailIsExist: 'ایمیل از قبل وجود دارد'
ErrSSLKeyNotFound: 'فایل کلید خصوصی وجود ندارد'
ErrSSLCertificateNotFound: 'فایل گواهی وجود ندارد'
ErrSSLKeyFormat: 'تأیید فایل کلید خصوصی ناموفق بود'
ErrSSLCertificateFormat: 'فرمت گواهی نامعتبر است؛ از PEM استفاده کنید'
ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid یا EabHmacKey نمی‌توانند خالی باشند'
ErrOpenrestyNotFound: 'حالت HTTP نیاز به OpenResty دارد'
ApplySSLStart: 'شروع درخواست گواهی. دامنه: [{{ .domain }}]، روش: [{{ .type }}]'
dnsAccount: 'خودکار DNS'
dnsManual: 'دستی DNS'
http: 'HTTP'
ApplySSLFailed: 'درخواست گواهی برای [{{ .domain }}] ناموفق بود: {{ .detail }}'
ApplySSLSuccess: 'گواهی برای [{{ .domain }}] صادر شد'
DNSAccountName: 'حساب DNS [{{ .name }}]، ارائه‌دهنده [{{ .type }}]'
PushDirLog: 'گواهی به دایرکتوری [{{ .path }}] ارسال شد {{ .status }}'
ErrDeleteCAWithSSL: 'CA گواهی‌هایی صادر کرده است؛ قابل حذف نیست'
ErrDeleteWithPanelSSL: 'گواهی در تنظیمات SSL پنل در حال استفاده است'
ErrDefaultCA: 'مرجع پیش‌فرض قابل حذف نیست'
ApplyWebSiteSSLLog: 'به‌روزرسانی گواهی وب‌سایت: {{ .name }}'
ErrUpdateWebsiteSSL: 'به‌روزرسانی گواهی وب‌سایت {{ .name }} ناموفق بود: {{ .err }}'
ApplyWebSiteSSLSuccess: 'گواهی وب‌سایت به‌روزرسانی شد'
ErrExecShell: 'اجرای اسکریپت ناموفق بود {{ .err }}'
ExecShellStart: 'اجرای اسکریپت'
ExecShellSuccess: 'اسکریپت با موفقیت اجرا شد'
StartUpdateSystemSSL: 'به‌روزرسانی گواهی سیستم'
UpdateSystemSSLSuccess: 'گواهی سیستم به‌روزرسانی شد'
ErrWildcardDomain: 'گواهی‌های عام در حالت HTTP پشتیبانی نمی‌شوند'
ErrApplySSLCanNotDelete: 'گواهی {{ .name }} در حال صدور است و هنوز قابل حذف نیست'
StartPushSSLToNode: 'ارسال گواهی به گره'
PushSSLToNodeFailed: "ارسال گواهی به گره ناموفق بود: {{ .err }}"
PushSSLToNodeSuccess: 'گواهی به گره ارسال شد'

# MySQL
ErrUserIsExist: 'کاربر از قبل وجود دارد'
ErrDatabaseIsExist: 'پایگاه داده از قبل وجود دارد'
ErrExecTimeOut: 'زمان اجرای SQL به پایان رسید'
ErrRemoteExist: 'نام پایگاه داده از راه دور از قبل وجود دارد'
ErrLocalExist: 'نام پایگاه داده محلی از قبل وجود دارد'
RemoteBackup: 'قبل از پشتیبان‌گیری از پایگاه داده از راه دور، کانتینر پایگاه داده محلی را با تصویر {{ .name }} راه‌اندازی کنید'
RemoteRecover: 'قبل از بازیابی پایگاه داده از راه دور، کانتینر پایگاه داده محلی را با تصویر {{ .name }} راه‌اندازی کنید'
Arg: "آرگومان"

# Redis
ErrTypeOfRedis: 'نوع فایل پشتیبان با حالت ماندگاری فعلی مطابقت ندارد'

# کانتینر
ErrInUsed: "{{ .detail }} در حال استفاده است و قابل حذف نیست!"
ErrObjectInUsed: "این شی در حال استفاده است و قابل حذف نیست!"
ErrObjectBeDependent: "این تصویر توسط تصاویر دیگر ارجاع داده شده است و قابل حذف نیست!"
ErrPortRules: 'تعداد پورت‌ها مطابقت ندارد'
ErrPgImagePull: 'زمان دریافت تصویر به پایان رسید؛ شتاب را پیکربندی کنید یا {{ .name }} را به صورت دستی دریافت کنید'
PruneHelper: "پاک‌سازی {{ .name }} فضای دیسک {{ .size }} را آزاد کرد"
ImageRemoveHelper: "تصویر {{ .name }} حذف شد، فضای دیسک {{ .size }} آزاد شد"
BuildCache: 'کش ساخت'
Volume: 'حجم'
Network: "شبکه"
PruneStart: 'پاک‌سازی در حال انجام است'
ContainerBackupPrepare: 'آماده‌سازی فضای کاری پشتیبان کانتینر'
ContainerBackupStop: 'توقف کانتینر قبل از پشتیبان‌گیری'
ContainerBackupInspect: 'بررسی و شبکه کانتینر پشتیبان'
ContainerBackupMounts: 'نصب‌های کانتینر پشتیبان'
ContainerBackupMeta: 'نوشتن فراداده پشتیبان کانتینر'
ContainerBackupStart: 'شروع کانتینر پس از پشتیبان‌گیری'
ContainerRecoverPrepare: 'آماده‌سازی فضای کاری بازیابی کانتینر'
ContainerRecoverExtract: 'استخراج آرشیو پشتیبان کانتینر'
ContainerRecoverParse: 'بارگذاری فراداده پشتیبان کانتینر'
ContainerRecoverCreate: 'بازآفرینی کانتینر'
ContainerRecoverMounts: 'بازیابی نصب‌های کانتینر'
ContainerRecoverStart: 'شروع کانتینر بازیابی شده'
ContainerRecoverCleanup: 'پاک‌سازی فضای کاری بازیابی کانتینر'
ComposeBackupPrepare: 'آماده‌سازی فضای کاری پشتیبان Compose'
ComposeBackupStop: 'توقف Compose قبل از پشتیبان‌گیری'
ComposeBackupFiles: 'پشتیبان‌گیری از فایل‌های Compose'
ComposeBackupContainers: 'پشتیبان‌گیری از کانتینرهای Compose'
ComposeBackupMeta: 'نوشتن فراداده پشتیبان Compose'
ComposeBackupStart: 'شروع Compose پس از پشتیبان‌گیری'
ComposeBackupCleanup: 'پاک‌سازی فضای کاری پشتیبان Compose'
ComposeRecoverPrepare: 'آماده‌سازی فضای کاری بازیابی Compose'
ComposeRecoverExtract: 'استخراج آرشیو پشتیبان Compose'
ComposeRecoverMeta: 'بارگذاری فراداده پشتیبان Compose'
ComposeRecoverMetaLogName: 'فراداده بازیابی Compose: name={{ .name }}'
ComposeRecoverMetaLogPath: 'فراداده بازیابی Compose: backupPath={{ .backupPath }} targetDir={{ .targetDir }}'
ComposeRecoverMetaLogCount: 'فراداده بازیابی Compose: files={{ .files }} containers={{ .containers }}'
ComposeRecoverFiles: 'بازیابی فایل‌های Compose'
ComposeRecoverContainers: 'بازیابی کانتینرهای Compose'
ComposeRecoverRecord: 'ذخیره رکورد Compose'
ComposeRecoverCleanup: 'پاک‌سازی فضای کاری بازیابی Compose'

# محیط اجرا
ErrFileNotExist: 'فایل منبع یافت نشد: {{ .detail }}'
ErrImageBuildErr: 'ساخت تصویر ناموفق بود'
ErrImageExist: "تصویر از قبل وجود دارد. از نام تصویر دیگری استفاده کنید."
ErrDelWithWebsite: 'محیط اجرا به یک وب‌سایت متصل است و قابل حذف نیست'
ErrRuntimeStart: 'شروع ناموفق بود'
ErrPackageJsonNotFound: 'فایل package.json وجود ندارد'
ErrScriptsNotFound: 'هیچ بخش scripts در package.json یافت نشد'
ErrContainerNameNotFound: 'نام کانتینر یافت نشد؛ .env را بررسی کنید'
ErrNodeModulesNotFound: 'node_modules یافت نشد؛ محیط اجرا را ویرایش کنید یا منتظر شروع باشید'
ErrContainerNameIsNull: 'نام کانتینر خالی است'
ErrPHPPortIsDefault: 'پورت ۹۰۰۰ به عنوان پیش‌فرض رزرو شده است؛ از پورت دیگری استفاده کنید'
ErrPHPRuntimePortFailed: 'پورت {{ .name }} قبلاً توسط این محیط اجرا استفاده می‌شود'

# ابزار
ErrConfigNotFound: 'فایل پیکربندی وجود ندارد'
ErrConfigParse: 'فرمت فایل پیکربندی نامعتبر است'
ErrConfigIsNull: 'فایل پیکربندی نمی‌تواند خالی باشد'
ErrConfigDirNotFound: 'دایرکتوری اجرا یافت نشد'
ErrConfigAlreadyExist: 'فایل پیکربندی با همین نام از قبل وجود دارد'
ErrUserFindErr: 'یافتن کاربر {{ .name }} ناموفق بود: {{ .err }}'

# وظیفه زمان‌بندی‌شده
CutWebsiteLogSuccess: 'لاگ وب‌سایت چرخش یافت: {{ .name }} (پشتیبان: {{ .path }})'
HandleShell: 'اجرای اسکریپت {{ .name }}'
HandleCurl: 'درخواست به URL {{ .name }}'
HandleNtpSync: 'همگام‌سازی زمان سیستم'
HandleSystemClean: 'پاک‌سازی کش سیستم'
SystemLog: 'لاگ سیستم'
CutWebsiteLog: 'چرخش لاگ وب‌سایت'
FileOrDir: 'دایرکتوری / فایل'
UploadFile: 'بارگذاری پشتیبان {{ .file }} به {{ .backup }}'
Upload: "بارگذاری"
IgnoreBackupErr: 'پشتیبان‌گیری ناموفق بود: {{ .detail }} (نادیده گرفته شد)'
IgnoreUploadErr: 'بارگذاری ناموفق بود: {{ .detail }} (نادیده گرفته شد)'
LoadBackupFailed: 'دریافت اطلاعات اتصال حساب پشتیبان ناموفق بود: {{ .detail }}'
InExecuting: 'وظیفه در حال اجراست'
NoSuchResource: 'هیچ رکورد پشتیبان یافت نشد؛ رد شد'
CleanLog: 'پاک‌سازی لاگ'
CleanLogByName: 'پاک‌سازی لاگ‌های {{ .name }}'
WafIpGroupNotFound: "گروه IP WAF یافت نشد. به [ویژگی‌های پیشرفته -> WAF -> لیست سیاه/سفید -> گروه IP] بروید و با استفاده از دانلود از راه دور یکی را اضافه کنید."

# جعبه‌ابزار
ErrNotExistUser: 'کاربر وجود ندارد'
ErrBanAction: 'پیکربندی ناموفق بود: سرویس {{ .name }} در دسترس نیست'
ErrClamdscanNotFound: 'دستور clamdscan یافت نشد'
TaskSwapSet: 'تنظیم swap'
SetSwap: "تنظیم Swap {{ .path }} - {{ .size }}"
CreateSwap: 'ایجاد فایل swap'
FormatSwap: 'فرمت فایل swap'
EnableSwap: 'فعال‌سازی swap'

# محافظت در برابر دستکاری
CleanTamperSetting: 'پاک‌سازی تنظیمات حفاظتی قدیمی'
SetTamperWithRules: 'فعال‌سازی محافظت دایرکتوری بر اساس قوانین'
ProtectDir: "محافظت از دایرکتوری {{ .name }}"
IgnoreFile: "محافظت از فایل {{ .name }}"
TamperSetSuccessful: 'محافظت تنظیم شد. نظارت بر این دایرکتوری‌ها:'

# WAF
ErrScope: 'این پیکربندی قابل تغییر نیست'
ErrStateChange: 'تغییر وضعیت ناموفق بود'
ErrRuleExist: 'قانون از قبل وجود دارد'
ErrRuleNotExist: 'قانون وجود ندارد'
ErrParseIP: 'فرمت IP نامعتبر است'
ErrDefaultIP: 'default رزرو شده است؛ از نام دیگری استفاده کنید'
ErrGroupInUse: 'گروه IP توسط قوانین لیست سیاه/سفید استفاده می‌شود'
ErrIPGroupAclUse: 'گروه IP توسط قوانین سفارشی وب‌سایت {{ .name }} استفاده می‌شود'
ErrIPGroupOriginProtectionUse: 'گروه IP توسط محافظت مبدأ CDN وب‌سایت {{ .name }} استفاده می‌شود'
ErrOriginProtectionIPGroupRequired: 'پیش از فعال‌سازی محافظت مبدأ، حداقل یک گروه IP غیرخالی انتخاب کنید'
ErrOriginProtectionIPGroupInvalid: 'گروه IP {{ .name }} وجود ندارد یا خالی است'
ErrGroupExist: 'نام گروه IP از قبل وجود دارد'
ErrIPRange: 'محدوده IP نامعتبر است'
ErrIPExist: 'IP از قبل وجود دارد'
urlDefense: 'قوانین URL'
urlHelper: 'URL مسدود شده'
dirFilter: 'فیلتر دایرکتوری'
xss: 'XSS'
phpExec: 'اجرای اسکریپت PHP'
oneWordTrojan: 'تروژان یک کلمه‌ای'
appFilter: 'فیلتر دایرکتوری خطرناک برنامه'
webShell: 'WebShell'
args: 'قوانین پارامتر'
protocolFilter: 'فیلتر پروتکل'
javaFilter: 'فیلتر فایل خطرناک جاوا'
scannerFilter: 'فیلتر اسکنر'
escapeFilter: 'فیلتر فرار'
customRule: 'قوانین سفارشی'
httpMethod: 'فیلتر روش HTTP'
fileExt: 'محدودیت‌های بارگذاری فایل'
defaultIpBlack: 'گروه IP مخرب'
cookie: 'قوانین کوکی'
urlBlack: 'لیست سیاه URL'
uaBlack: 'لیست سیاه User-Agent'
attackCount: 'محدودیت فرکانس حمله'
fileExtCheck: 'محدودیت‌های بارگذاری فایل'
geoRestrict: 'محدودیت‌های دسترسی منطقه‌ای'
unknownWebsite: 'دسترسی به دامنه غیرمجاز'
notFoundCount: 'محدودیت نرخ ۴۰۴'
headerDefense: 'قوانین هدر'
defaultUaBlack: 'قوانین User-Agent'
methodWhite: 'قوانین HTTP'
captcha: 'تأیید انسانی'
fiveSeconds: 'تأیید ۵ ثانیه‌ای'
vulnCheck: 'قوانین تکمیلی'
acl: 'قوانین سفارشی'
sql: 'تزریق SQL'
cc: 'محدودیت فرکانس دسترسی'
defaultUrlBlack: 'قوانین URL'
sqlInject: 'تزریق SQL'
ErrDBNotExist: 'پایگاه داده وجود ندارد'
allow: 'مجاز'
deny: 'ممنوع'
OpenrestyNotFound: 'OpenResty نصب نشده است'
remoteIpIsNull: "لیست IP خالی است"
OpenrestyVersionErr: 'نسخه OpenResty بسیار پایین است؛ به 1.27.1.2-2-2-focal ارتقاء دهید'
ErrFileTooLarge: 'فایل بزرگتر از ۱ مگابایت است و قابل بارگذاری نیست'

# وظیفه
TaskStart: '{{ .name }} [شروع]'
TaskEnd: '{{ .name }} [انجام شد]'
TaskFailed: 'وظیفه {{ .name }} ناموفق بود'
TaskTimeout: 'زمان وظیفه {{ .name }} به پایان رسید'
TaskSuccess: 'وظیفه {{ .name }} با موفقیت انجام شد'
TaskRetry: 'تلاش مجدد #{{ .name }}'
SubTaskSuccess: '{{ .name }} با موفقیت انجام شد'
SubTaskFailed: '{{ .name }} ناموفق بود: {{ .err }}'
TaskInstall: 'نصب'
TaskUninstall: 'حذف نصب'
TaskCreate: 'ایجاد'
TaskDelete: 'حذف'
TaskUpgrade: 'ارتقاء'
TaskUpdate: 'به‌روزرسانی'
AgentPluginInstall: 'نصب افزونه'
AgentPluginEnable: 'فعال‌کردن افزونه'
AgentPluginDisable: 'غیرفعال‌کردن افزونه'
AgentPluginUpdate: 'به‌روزرسانی افزونه'
AgentPluginUninstall: 'حذف افزونه'
TaskRestart: 'راه‌اندازی مجدد'
TaskProtect: "محافظت"
TaskBackup: 'پشتیبان‌گیری'
TaskRecover: 'بازیابی'
TaskRollback: 'بازگشت'
TaskPull: 'دریافت'
TaskCommit: 'ثبت'
TaskBuild: 'ساخت'
TaskPush: 'ارسال'
TaskClean: "پاک‌سازی"
TaskHandle: 'اجرا'
TaskImport: "واردات"
TaskExport: "خروجی"
Website: 'وب‌سایت'
App: 'برنامه'
Runtime: 'محیط اجرا'
Database: 'پایگاه داده'
ConfigFTP: 'ایجاد کاربر FTP {{ .name }}'
ConfigOpenresty: 'ایجاد فایل پیکربندی OpenResty'
InstallAppSuccess: 'برنامه {{ .name }} نصب شد'
ConfigRuntime: 'پیکربندی محیط اجرا'
ConfigApp: 'پیکربندی برنامه'
SuccessStatus: '{{ .name }} با موفقیت انجام شد'
FailedStatus: '{{ .name }} ناموفق بود: {{ .err }}'
HandleLink: 'پردازش لینک‌های برنامه'
HandleDatabaseApp: 'پردازش پارامترهای برنامه'
ExecShell: 'اجرای اسکریپت {{ .name }}'
PullImage: 'دریافت تصویر'
Start: 'شروع'
Run: 'شروع'
Stop: 'توقف'
Image: 'تصویر'
Compose: 'Compose'
Container: 'کانتینر'
AppLink: 'برنامه متصل'
EnableSSL: 'فعال‌سازی HTTPS'
AppStore: 'فروشگاه برنامه'
TaskSync: 'همگام‌سازی'
LocalApp: 'برنامه محلی'
SubTask: 'وظیفه فرعی'
RuntimeExtension: 'پسوند محیط اجرا'
TaskIsExecuting: 'وظیفه در حال اجراست'
CustomAppstore: 'مخزن برنامه سفارشی'
TaskExec: 'اجرا'
TaskBatch: "عملیات دسته‌ای"
FileConvert: 'تبدیل فایل'

# وظیفه - ClamAV
Clamscan: "اسکن {{ .name }}"
TaskScan: "اسکن"

# وظیفه - هوش مصنوعی
OllamaModelPull: 'دریافت مدل Ollama {{ .name }}'
OllamaModelSize: 'دریافت اندازه مدل Ollama: {{ .name }}'
AIBenchmarkRun: 'اجرای معیار سنجش هوش مصنوعی'

# وظیفه - اسنپ‌شات
Snapshot: 'تصویر لحظه‌ای'
SnapDBInfo: 'نوشتن اطلاعات پایگاه داده 1Panel'
SnapCopy: 'کپی فایل‌ها/دایرکتوری‌ها {{ .name }}'
SnapNewDB: 'راه‌اندازی اتصال پایگاه داده {{ .name }}'
SnapDeleteOperationLog: 'حذف لاگ‌های عملیات'
SnapDeleteLoginLog: 'حذف لاگ‌های دسترسی'
SnapDeleteMonitor: 'حذف داده‌های نظارت'
SnapRemoveSystemIP: 'حذف IP سیستم'
SnapBaseInfo: 'نوشتن اطلاعات پایه 1Panel'
SnapInstallAppImageEmpty: 'هیچ تصویر برنامه‌ای انتخاب نشد؛ رد شد'
SnapInstallApp: 'پشتیبان‌گیری از برنامه‌های نصب شده'
SnapDockerSave: 'فشرده‌سازی برنامه‌های نصب شده'
SnapLocalBackup: 'پشتیبان‌گیری از دایرکتوری پشتیبان محلی'
SnapCompressBackup: 'فشرده‌سازی دایرکتوری پشتیبان محلی'
SnapPanelData: 'پشتیبان‌گیری از دایرکتوری داده 1Panel'
SnapCompressPanel: 'فشرده‌سازی دایرکتوری داده'
SnapWebsite: 'پشتیبان‌گیری از دایرکتوری وب‌سایت'
SnapCloseDBConn: 'بستن اتصال پایگاه داده'
SnapCompress: 'ایجاد فایل تصویر لحظه‌ای'
SnapCompressFile: 'فشرده‌سازی فایل تصویر لحظه‌ای'
SnapCheckCompress: 'بررسی آرشیو تصویر لحظه‌ای'
SnapCompressSize: 'اندازه تصویر لحظه‌ای {{ .name }}'
SnapUpload: 'بارگذاری فایل تصویر لحظه‌ای'
SnapUploadTo: 'بارگذاری تصویر لحظه‌ای به {{ .name }}'
SnapUploadRes: 'بارگذاری تصویر لحظه‌ای به {{ .name }}'
SnapshotRecover: 'بازیابی تصویر لحظه‌ای'
RecoverDownload: 'دانلود فایل تصویر لحظه‌ای'
Download: 'دانلود'
RecoverDownloadAccount: 'دریافت حساب دانلود تصویر لحظه‌ای {{ .name }}'
RecoverDecompress: 'باز کردن فشرده آرشیو تصویر لحظه‌ای'
Decompress: 'باز کردن فشرده'
BackupBeforeRecover: 'پشتیبان‌گیری از داده‌های سیستم قبل از بازیابی'
ReadJson: 'خواندن فایل JSON تصویر لحظه‌ای'
ReadJsonPath: 'دریافت مسیر JSON تصویر لحظه‌ای'
ReadJsonContent: 'خواندن محتوای JSON'
ReadJsonMarshal: 'پردازش فرار JSON'
RecoverApp: 'بازیابی برنامه‌های نصب شده'
RecoverWebsite: 'بازیابی دایرکتوری وب‌سایت'
RecoverAppImage: 'بازیابی پشتیبان تصویر تصویر لحظه‌ای'
RecoverCompose: 'بازیابی سایر پروژه‌های Compose'
RecoverComposeList: 'دریافت همه پروژه‌های Compose برای بازیابی'
RecoverComposeItem: 'بازیابی Compose {{ .name }}'
RecoverAppEmpty: 'هیچ پشتیبان تصویر برنامه در تصویر لحظه‌ای یافت نشد'
RecoverBaseData: 'بازیابی داده‌های پایه و فایل‌ها'
RecoverDaemonJsonEmpty: 'daemon.json در تصویر لحظه‌ای یا میزبان فعلی یافت نشد'
RecoverDaemonJson: 'بازیابی daemon.json'
RecoverDBData: 'بازیابی داده‌های پایگاه داده'
RecoverBackups: 'بازیابی دایرکتوری پشتیبان محلی'
RecoverPanelData: 'بازیابی دایرکتوری داده'

# وظیفه - کانتینر
ContainerImagePull: 'دریافت تصویر کانتینر {{ .name }}'
ContainerRemoveOld: 'حذف کانتینر اصلی {{ .name }}'
ContainerImageCheck: 'بررسی نتیجه دریافت تصویر'
ContainerLoadInfo: 'بارگذاری اطلاعات کانتینر'
ContainerRecreate: 'به‌روزرسانی کانتینر ناموفق بود؛ بازگردانی کانتینر اصلی'
ContainerCreate: 'ایجاد کانتینر جدید {{ .name }}'
ContainerCreateFailed: 'ایجاد کانتینر ناموفق بود؛ حذف کانتینر ناموفق'
ContainerStartCheck: 'بررسی شروع کانتینر'
ContainerAcquireLock: 'انتظار برای قفل عملیات کانتینر {{ .name }}'
ContainerUpgradeItem: 'ارتقای کانتینر {{ .name }}'
ContainerUpgradeSummary: 'خلاصه نتایج ارتقای کانتینرها'
ContainerCleanupWarning: 'به‌روزرسانی موفق بود، اما کانتینر پشتیبان {{ .name }} حذف نشد. پس از اطمینان از عملکرد صحیح کانتینر جدید، کانتینر پشتیبان را به‌صورت دستی حذف کنید. خطا: {{ .err }}'
ContainerStopOld: 'توقف کانتینر اصلی {{ .name }}'
ContainerRenameOld: 'تغییر نام کانتینر اصلی {{ .name }} برای بازگردانی'
ContainerDisconnectOld: 'آزادسازی آدرس‌های شبکه کانتینر اصلی {{ .name }}'
ContainerCreateReplacement: 'ایجاد کانتینر جایگزین {{ .name }}'
ContainerStartReplacement: 'راه‌اندازی کانتینر جایگزین {{ .name }}'
ContainerWaitReplacement: 'بررسی آماده بودن کانتینر جایگزین {{ .name }}'
ContainerRollbackRestartOld: 'راه‌اندازی دوباره کانتینر اصلی {{ .name }}'
ContainerRollbackRemoveReplacement: 'حذف کانتینر جایگزین ناموفق {{ .name }}'
ContainerRollbackRenameOld: 'بازگردانی نام کانتینر اصلی {{ .name }}'
ContainerRollbackReconnectOld: 'بازگردانی شبکه‌های کانتینر اصلی {{ .name }}'

# وظیفه - تصویر
ImageBuild: 'ساخت تصویر'
ImagePull: 'دریافت تصویر'
ImageRepoAuthFromDB: 'بارگذاری احراز هویت مخزن از پایگاه داده'
ImagePush: 'ارسال تصویر'
ImageRenameTag: 'به‌روزرسانی برچسب تصویر'
ImageNewTag: 'برچسب تصویر جدید {{ .name }}'
ComposeCreate: 'ایجاد پروژه Compose'

# وظیفه - وب‌سایت
BackupNginxConfig: 'پشتیبان‌گیری از پیکربندی OpenResty وب‌سایت'
CompressFileSuccess: 'دایرکتوری به {{ .name }} فشرده شد'
CompressDir: 'فشرده‌سازی دایرکتوری'
DeCompressFile: 'باز کردن فشرده فایل {{ .name }}'
ErrCheckValid: 'تأیید فایل پشتیبان ناموفق بود: {{ .name }}'
Rollback: 'بازگشت'
websiteDir: 'دایرکتوری وب‌سایت'
RecoverFailedStartRollBack: 'بازیابی ناموفق بود؛ شروع بازگشت'
AppBackupFileIncomplete: 'پشتیبان ناقص است: app.json یا app.tar.gz وجود ندارد'
AppAttributesNotMatch: 'نوع یا نام برنامه مطابقت ندارد'

# هشدار
ErrAlertMethodNotSupported: 'این نسخه از این روش هشدار پشتیبانی نمی‌کند'
ErrAlertSync: 'همگام‌سازی پیام هشدار ناموفق بود'

# وظیفه - محیط اجرا
ErrInstallExtension: 'وظیفه نصب پسوند دیگری در حال اجراست'

# قالب ایمیل هشدار
PanelAlertTitle: "اعلان هشدار پنل"
TestAlertTitle: "ایمیل آزمایشی - تأیید اتصال ایمیل"
TestAlert: "این یک ایمیل آزمایشی برای تأیید صحت پیکربندی ارسال ایمیل شما است."
LicenseExpirationAlert: "پنل {{ .node }}{{ .ip }}: مجوز در {{ .day }} روز منقضی می‌شود. برای مشاهده جزئیات وارد شوید."
CronJobFailedAlert: "پنل {{ .node }}{{ .ip }}: وظیفه زمان‌بندی {{ .name }} ناموفق بود. برای مشاهده جزئیات وارد شوید."
ClamAlert: "پنل {{ .node }}{{ .ip }}: اسکن ویروس {{ .num }} فایل آلوده پیدا کرد. برای مشاهده جزئیات وارد شوید."
WebSiteAlert: "پنل {{ .node }}{{ .ip }}: {{ .num }} وب‌سایت در {{ .day }} روز منقضی می‌شوند. برای مشاهده جزئیات وارد شوید."
SSLAlert: "پنل {{ .node }}{{ .ip }}: {{ .num }} گواهی SSL در {{ .day }} روز منقضی می‌شوند. برای مشاهده جزئیات وارد شوید."
DiskUsedAlert: "پنل {{ .node }}{{ .ip }}: استفاده از دیسک {{ .name }} به {{ .used }} رسید. برای مشاهده جزئیات وارد شوید."
ResourceAlert: "پنل {{ .node }}{{ .ip }}: میانگین استفاده {{ .name }} در {{ .time }} دقیقه برابر با {{ .used }} است. برای مشاهده جزئیات وارد شوید."
PanelVersionAlert: "پنل {{ .node }}{{ .ip }}: نسخه جدید پنل موجود است. برای مشاهده جزئیات وارد شوید."
PanelPwdExpirationAlert: "پنل {{ .node }}{{ .ip }}: رمز عبور پنل در {{ .day }} روز منقضی می‌شود. برای مشاهده جزئیات وارد شوید."
CommonAlert: "پنل {{ .node }}{{ .ip }}: {{ .msg }}. برای مشاهده جزئیات وارد شوید."
NodeExceptionAlert: "پنل {{ .node }}{{ .ip }}: {{ .num }} گره غیرعادی هستند. برای مشاهده جزئیات وارد شوید."
LicenseExceptionAlert: "پنل {{ .node }}{{ .ip }}: {{ .num }} مجوز غیرعادی است. برای مشاهده جزئیات وارد شوید."
SSHAndPanelLoginAlert: "پنل {{ .node }}{{ .ip }}: ورود غیرعادی {{ .name }} از {{ .loginIp }}. برای مشاهده جزئیات وارد شوید."

# دیسک
DeviceNotFound: "دستگاه {{ .name }} یافت نشد"
DeviceIsMounted: 'دستگاه {{ .name }} متصل است؛ ابتدا قطع اتصال کنید'
PartitionDiskErr: 'پارتیشن‌بندی ناموفق بود: {{ .err }}'
FormatDiskErr: 'فرمت کردن ناموفق بود: {{ .err }}'
MountDiskErr: 'اتصال ناموفق بود: {{ .err }}'
XfsNotFound: 'xfs یافت نشد؛ ابتدا xfsprogs را نصب کنید'

# ترمینال
TerminalAIBlockedRiskyCommand: 'دستور پرخطر مسدود شد: {{ .command }}'
TerminalAIThinking: 'هوش مصنوعی در حال فکر کردن است...'
TerminalAIReadyToExecute: 'تفکر کامل شد، برای اجرا Enter را فشار دهید (مدت زمان: {{ .duration }}، توکن‌ها: {{ .tokens }})'
TerminalAIRequestFailed: 'درخواست هوش مصنوعی ناموفق بود: {{ .err }}'

# دروازه هوش مصنوعی
ErrAIProxyServiceNotInstalled: 'سرویس {{ .name }} نصب نشده است'
ErrAIProxyModelAccountNotFound: 'حساب مدل {{ .id }} یافت نشد'
ErrAIProxyModelMapRequired: 'این فیلد الزامی است.'
ErrAIProxyModelMapInvalid: 'نگاشت مدل باید یک شی JSON معتبر باشد: {{ .err }}'
ErrAIProxyModelMapEmpty: 'نگاشت مدل نمی‌تواند خالی باشد'
ErrAIProxyModelMapEmptyExternalModel: 'نگاشت مدل شامل یک مدل درخواست خالی است'
ErrAIProxyModelMapEmptyUpstreamModel: 'مدل بالادست برای {{ .model }} نمی‌تواند خالی باشد'
AIProxyUserFallback: 'کاربر حذف شده (شناسه: {{ .id }})'
AIProviderBailian: 'Alibaba Cloud Model Studio'
AIProviderBailianCodingPlan: 'Alibaba Cloud Model Studio Coding Plan'
AIProviderArk: 'Volcengine Ark'
AIProviderArkCodingPlan: 'Volcengine Ark Coding Plan'
