mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-10-16 14:57:05 +08:00
Add Persian (fa) translations (#13100)
* Add Persian (fa) translations * Update index.ts Add fa to LOCALE_LOADERS * Update fu.ts Add fa item * Update index.vue enable Persian (fa) in language selector * Update login-form.vue enable Persian (fa) in language selector * Create fa.yaml add fa backend translations * Update i18n.go Add fa to langFiles variable * Add Persian (fa) Translation to agent
This commit is contained in:
@@ -132,6 +132,7 @@ type Locale struct {
|
||||
Ko string `json:"ko"`
|
||||
Tr string `json:"tr"`
|
||||
Es string `json:"es-es" yaml:"es-es"`
|
||||
Fa string `json:"fa"`
|
||||
}
|
||||
|
||||
type AppForm struct {
|
||||
|
||||
@@ -24,6 +24,7 @@ var langFiles = map[string]string{
|
||||
"ko": "lang/ko.yaml",
|
||||
"tr": "lang/tr.yaml",
|
||||
"es-ES": "lang/es-ES.yaml",
|
||||
"fa": "lang/fa.yaml",
|
||||
}
|
||||
|
||||
func GetMsgWithMap(key string, maps map[string]interface{}) string {
|
||||
|
||||
@@ -0,0 +1,613 @@
|
||||
ErrInvalidParams: 'درخواست نامعتبر: {{ .detail }}'
|
||||
ErrTokenParse: 'خطا در توکن: {{ .detail }}'
|
||||
ErrInitialPassword: 'رمز عبور اصلی اشتباه است'
|
||||
ErrInternalServer: 'خطای داخلی سرور: {{ .detail }}'
|
||||
ErrFileAINotEnabled: 'خلاصهسازی هوش مصنوعی مدیریت فایل نیاز به فعال بودن حساب هوش مصنوعی در مدیریت فایل دارد. جستجوی صرفاً محتوایی زمانی که هوش مصنوعی خاموش است همچنان کار میکند.'
|
||||
ErrFileAISearchBadPattern: 'الگوی جستجوی فایل نامعتبر است (عبارت منظم یا کل کلمه): {{ .detail }}'
|
||||
ErrWgetRemoteFailed: 'دانلود از راه دور ناموفق بود یا URL قابل دسترس نیست: {{ .detail }}'
|
||||
ErrWgetInvalidContentType: 'URL از راه دور فایلی را برنگرداند (احتمالاً صفحه خطا)، {{ .detail }}'
|
||||
ErrWgetProxyNotConfigured: 'ابتدا یک سرور پروکسی در تنظیمات پنل پیکربندی کنید'
|
||||
ErrWgetProxyInvalid: 'آدرس سرور پروکسی نامعتبر است: {{ .detail }}'
|
||||
ErrRecordExist: 'رکورد از قبل وجود دارد'
|
||||
ErrRecordNotFound: 'رکورد یافت نشد'
|
||||
ErrStructTransform: 'تبدیل نوع ناموفق بود: {{ .err }}'
|
||||
ErrNotLogin: 'وارد نشدهاید: {{ .detail }}'
|
||||
ErrPasswordExpired: 'رمز عبور منقضی شده است: {{ .detail }}'
|
||||
ErrNotSupportType: 'نوع پشتیبانی نمیشود: {{ .name }}'
|
||||
ErrAlertMethodNotSupported: 'این نسخه از این روش هشدار پشتیبانی نمیکند'
|
||||
ErrProxy: 'درخواست ناموفق بود: {{ .detail }}'
|
||||
ErrApiConfigStatusInvalid: 'دسترسی API غیرفعال است: {{ .detail }}'
|
||||
ErrApiConfigKeyInvalid: 'کلید API نامعتبر است: {{ .detail }}'
|
||||
ErrApiConfigIPInvalid: 'IP در لیست سفید API نیست: {{ .detail }}'
|
||||
ErrApiConfigDisable: 'نقطه پایانی از طریق API مجاز نیست: {{ .detail }}'
|
||||
ErrApiConfigKeyTimeInvalid: 'مهر زمانی API نامعتبر است: {{ .detail }}'
|
||||
ErrShutDown: 'دستور به صورت دستی متوقف شد'
|
||||
|
||||
ErrMinQuickJump: 'حداقل یک ورودی پرش سریع تنظیم کنید'
|
||||
ErrMaxQuickJump: 'حداکثر ۴ ورودی پرش سریع'
|
||||
|
||||
#common
|
||||
ErrUsernameIsExist: 'نام کاربری از قبل وجود دارد'
|
||||
ErrNameIsExist: 'نام از قبل وجود دارد'
|
||||
ErrDemoEnvironment: 'در محیط آزمایشی غیرفعال است'
|
||||
ErrCmdTimeout: 'زمان اجرای دستور به پایان رسید'
|
||||
ErrCmdIllegal: 'دستور شامل کاراکترهای غیرمجاز است'
|
||||
ErrPortExist: 'پورت {{ .port }} قبلاً توسط {{ .type }} [{{ .name }}] اشغال شده است'
|
||||
TYPE_APP: 'برنامه'
|
||||
TYPE_RUNTIME: 'محیط اجرا'
|
||||
TYPE_DOMAIN: 'دامنه'
|
||||
ErrTypePort: 'فرمت پورت نامعتبر است: {{ .name }}'
|
||||
ErrTypePortRange: 'محدوده پورت باید ۱-۶۵۵۳۵ باشد'
|
||||
Success: 'موفق'
|
||||
Failed: 'ناموفق'
|
||||
SystemRestart: 'وظیفه به دلیل راهاندازی مجدد سیستم قطع شد'
|
||||
ErrGroupIsDefault: 'گروه پیشفرض، قابل حذف نیست'
|
||||
ErrGroupIsInWebsiteUse: 'گروه توسط یک وبسایت در حال استفاده است'
|
||||
Decrypt: "رمزگشایی"
|
||||
|
||||
#agent
|
||||
ErrAgentAccountBound: 'حساب به یک عامل متصل است و قابل حذف نیست'
|
||||
ErrTerminalAIAccountInUse: 'این حساب مدل در حال حاضر توسط ترمینال هوش مصنوعی استفاده میشود. حساب را در تنظیمات ترمینال هوش مصنوعی تغییر دهید یا ترمینال هوش مصنوعی را غیرفعال کرده و دوباره تلاش کنید.'
|
||||
ErrAgentAccountUnavailable: 'اتصال حساب در دسترس نیست: {{ .err }}'
|
||||
ErrAgentProviderNotSupported: 'ارائهدهنده عامل پشتیبانی نمیشود'
|
||||
ErrAgentAccountRequired: 'ابتدا یک حساب عامل انتخاب کنید'
|
||||
ErrAgentAccountNotVerified: 'حساب عامل تأیید نشده است'
|
||||
ErrAgentAccountModelsRequired: 'لطفاً حداقل یک مدل پیکربندی کنید'
|
||||
ErrAgentAccountSingleInitialModel: 'فقط یک مدل اولیه میتواند در هنگام ایجاد حساب پیکربندی شود'
|
||||
ErrAgentModelNotInAccount: 'مدل در حساب انتخاب شده پیکربندی نشده است'
|
||||
ErrAgentFallbackModelDuplicate: 'مدلهای جایگزین نمیتوانند تکراری باشند'
|
||||
ErrAgentFallbackModelPrimary: 'مدل جایگزین نمیتواند با مدل اصلی یکی باشد'
|
||||
ErrAgentModelInUse: 'یک عامل متصل هنوز از این مدل استفاده میکند: {{ .name }}'
|
||||
ErrAgentBaseURLRequired: 'آدرس پایه الزامی است'
|
||||
ErrAgentApiKeyRequired: 'کلید API الزامی است'
|
||||
ErrAgentComposeRequired: 'محتوای Compose الزامی است'
|
||||
ErrAgentIDRequired: 'شناسه عامل الزامی است'
|
||||
ErrAgentAccountIDRequired: 'شناسه حساب الزامی است'
|
||||
ErrAgentLimitReached: 'نسخه انجمن تا {{ .max }} عامل هوش مصنوعی را پشتیبانی میکند. برای عاملهای نامحدود به نسخه تجاری ارتقاء دهید'
|
||||
ErrAgentWebsiteBound: 'این عامل قبلاً به یک وبسایت متصل است'
|
||||
ErrAgentWebsiteTypeUnsupported: 'فقط وبسایتهای پراکسی یا استاتیک قابل اتصال هستند'
|
||||
ErrAgentWebsiteInUse: 'این وبسایت قبلاً به عامل دیگری متصل است'
|
||||
ErrAgentWebsiteUnbindUnsupported: 'وبسایتهای استقرار یافته را نمیتوان به صورت دستی قطع اتصال کرد'
|
||||
ErrHermesPairingCodeUnavailable: 'کد جفتسازی به طور موقت در هرمس در دسترس نیست، احتمالاً به دلیل مشکلات شبکه. لطفاً بعداً دوباره تلاش کنید.'
|
||||
ErrHermesFeishuGroupAllowlistRequiresAllowlist: 'وقتی خط مشی گروه فیشو لیست سفید باشد، خط مشی DM نمیتواند کد جفتسازی باشد.'
|
||||
|
||||
#backup
|
||||
Localhost: 'محلی'
|
||||
ErrBackupInUsed: 'حساب پشتیبان توسط یک وظیفه زمانبندی در حال استفاده است'
|
||||
ErrBackupCheck: 'تست اتصال حساب پشتیبان ناموفق بود: {{ .err }}'
|
||||
ErrBackupLocalDelete: 'حسابهای پشتیبان محلی قابل حذف نیستند'
|
||||
ErrBackupLocalCreate: 'حسابهای پشتیبان محلی قابل ایجاد نیستند'
|
||||
ErrAlertConfigInUse: 'پیکربندی هشدار در حال استفاده است و قابل حذف نیست'
|
||||
ErrAlertConfigPhoneExist: 'شماره تلفن از قبل وجود دارد'
|
||||
|
||||
#app
|
||||
ErrPortInUsed: 'پورت {{ .detail }} قبلاً اشغال شده است!'
|
||||
ErrAppLimit: 'محدودیت نصب برنامه رسیده است'
|
||||
ErrNotInstall: 'برنامه نصب نشده است'
|
||||
ErrPortInOtherApp: 'پورت {{ .port }} قبلاً توسط برنامه {{ .apps }} اشغال شده است!'
|
||||
ErrDbUserNotValid: 'نام کاربری/رمز عبور پایگاه داده مطابقت ندارد'
|
||||
ErrUpdateBuWebsite: 'برنامه بهروزرسانی شد، اما بهروزرسانی پیکربندی وبسایت ناموفق بود'
|
||||
Err1PanelNetworkFailed: 'ایجاد شبکه پیشفرض کانتینر ناموفق بود! {{ .detail }}'
|
||||
ErrFileParse: 'تجزیه فایل docker-compose برنامه ناموفق بود'
|
||||
ErrInstallDirNotFound: 'دایرکتوری نصب یافت نشد؛ از حذف اجباری استفاده کنید'
|
||||
AppStoreIsUpToDate: 'فروشگاه برنامه از قبل آخرین نسخه است'
|
||||
LocalAppVersionNull: 'برنامه {{ .name }} هیچ نسخه همگامسازی شدهای ندارد'
|
||||
LocalAppVersionErr: 'همگامسازی نسخه {{ .version }} برنامه {{ .name }} ناموفق بود: {{ .err }}'
|
||||
ErrFileNotFound: 'فایل {{ .name }} وجود ندارد'
|
||||
ErrFileParseApp: 'تجزیه {{ .name }} ناموفق بود: {{ .err }}'
|
||||
ErrAppDirNull: 'پوشه نسخه وجود ندارد'
|
||||
LocalAppErr: 'همگامسازی برنامه {{ .name }} ناموفق بود: {{ .err }}'
|
||||
ErrContainerName: 'نام کانتینر از قبل وجود دارد'
|
||||
ErrCreateHttpClient: 'ایجاد درخواست HTTP ناموفق بود: {{ .err }}'
|
||||
ErrHttpReqTimeOut: 'زمان درخواست HTTP به پایان رسید: {{ .err }}'
|
||||
ErrHttpReqFailed: 'درخواست HTTP ناموفق بود: {{ .err }}'
|
||||
ErrNoSuchHost: 'تفکیک میزبان ناموفق بود: {{ .err }}'
|
||||
ErrHttpReqNotFound: 'منبع درخواستی یافت نشد: {{ .err }}'
|
||||
ErrContainerNotFound: 'کانتینر {{ .name }} وجود ندارد'
|
||||
ErrContainerMsg: 'کانتینر {{ .name }} غیرعادی است؛ لاگها را بررسی کنید'
|
||||
ErrAppBackup: 'پشتیبانگیری از برنامه ناموفق بود: {{ .name }} {{ .err }}'
|
||||
ErrVersionTooLow: 'نسخه 1Panel برای بهروزرسانی فروشگاه برنامه بسیار پایین است'
|
||||
ErrAppNameExist: 'نام برنامه از قبل وجود دارد'
|
||||
ErrAppInstallNameExist: 'نام نصب برنامه {{ .name }} از قبل وجود دارد'
|
||||
AppStoreIsSyncing: 'فروشگاه برنامه در حال همگامسازی است؛ بعداً دوباره تلاش کنید'
|
||||
ErrGetCompose: 'خواندن docker-compose.yml ناموفق بود: {{ .detail }}'
|
||||
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: 'تصویر وجود دارد؛ استفاده از تصویر موجود'
|
||||
ErrDatabaseNotFound: 'پایگاه داده یافت نشد: {{ .name }}'
|
||||
|
||||
#ssh
|
||||
ExportIP: "IP ورود"
|
||||
ExportArea: "مکان"
|
||||
ExportPort: "پورت"
|
||||
ExportAuthMode: "روش ورود"
|
||||
ExportUser: "کاربر"
|
||||
ExportStatus: "وضعیت ورود"
|
||||
ExportDate: "زمان"
|
||||
|
||||
#file
|
||||
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: 'رمز عبور آرشیو اشتباه است؛ استخراج ناموفق بود'
|
||||
|
||||
#website
|
||||
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: 'نوع فایل پشتیبان با حالت ماندگاری فعلی مطابقت ندارد'
|
||||
|
||||
#container
|
||||
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'
|
||||
|
||||
#runtime
|
||||
ErrFileNotExist: 'فایل منبع یافت نشد: {{ .detail }}'
|
||||
ErrImageBuildErr: 'ساخت تصویر ناموفق بود'
|
||||
ErrImageExist: "تصویر از قبل وجود دارد. از نام تصویر دیگری استفاده کنید."
|
||||
ErrDelWithWebsite: 'محیط اجرا به یک وبسایت متصل است و قابل حذف نیست'
|
||||
ErrRuntimeStart: 'شروع ناموفق بود'
|
||||
ErrPackageJsonNotFound: 'فایل package.json وجود ندارد'
|
||||
ErrScriptsNotFound: 'هیچ بخش scripts در package.json یافت نشد'
|
||||
ErrContainerNameNotFound: 'نام کانتینر یافت نشد؛ .env را بررسی کنید'
|
||||
ErrNodeModulesNotFound: 'node_modules یافت نشد؛ محیط اجرا را ویرایش کنید یا منتظر شروع باشید'
|
||||
ErrContainerNameIsNull: 'نام کانتینر خالی است'
|
||||
ErrPHPPortIsDefault: 'پورت ۹۰۰۰ به عنوان پیشفرض رزرو شده است؛ از پورت دیگری استفاده کنید'
|
||||
ErrPHPRuntimePortFailed: 'پورت {{ .name }} قبلاً توسط این محیط اجرا استفاده میشود'
|
||||
|
||||
#tool
|
||||
ErrConfigNotFound: 'فایل پیکربندی وجود ندارد'
|
||||
ErrConfigParse: 'فرمت فایل پیکربندی نامعتبر است'
|
||||
ErrConfigIsNull: 'فایل پیکربندی نمیتواند خالی باشد'
|
||||
ErrConfigDirNotFound: 'دایرکتوری اجرا یافت نشد'
|
||||
ErrConfigAlreadyExist: 'فایل پیکربندی با همین نام از قبل وجود دارد'
|
||||
ErrUserFindErr: 'یافتن کاربر {{ .name }} ناموفق بود: {{ .err }}'
|
||||
|
||||
#cronjob
|
||||
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] بروید و با استفاده از دانلود از راه دور یکی را اضافه کنید."
|
||||
|
||||
#toolbox
|
||||
ErrNotExistUser: 'کاربر وجود ندارد'
|
||||
ErrBanAction: 'پیکربندی ناموفق بود: سرویس {{ .name }} در دسترس نیست'
|
||||
ErrClamdscanNotFound: 'دستور clamdscan یافت نشد'
|
||||
TaskSwapSet: 'تنظیم swap'
|
||||
SetSwap: "تنظیم Swap {{ .path }} - {{ .size }}"
|
||||
CreateSwap: 'ایجاد فایل swap'
|
||||
FormatSwap: 'فرمت فایل swap'
|
||||
EnableSwap: 'فعالسازی swap'
|
||||
|
||||
#tamper
|
||||
CleanTamperSetting: 'پاکسازی تنظیمات حفاظتی قدیمی'
|
||||
SetTamperWithRules: 'فعالسازی محافظت دایرکتوری بر اساس قوانین'
|
||||
ProtectDir: "محافظت از دایرکتوری {{ .name }}"
|
||||
IgnoreFile: "محافظت از فایل {{ .name }}"
|
||||
TamperSetSuccessful: 'محافظت تنظیم شد. نظارت بر این دایرکتوریها:'
|
||||
|
||||
#waf
|
||||
ErrScope: 'این پیکربندی قابل تغییر نیست'
|
||||
ErrStateChange: 'تغییر وضعیت ناموفق بود'
|
||||
ErrRuleExist: 'قانون از قبل وجود دارد'
|
||||
ErrRuleNotExist: 'قانون وجود ندارد'
|
||||
ErrParseIP: 'فرمت IP نامعتبر است'
|
||||
ErrDefaultIP: 'default رزرو شده است؛ از نام دیگری استفاده کنید'
|
||||
ErrGroupInUse: 'گروه IP توسط قوانین لیست سیاه/سفید استفاده میشود'
|
||||
ErrIPGroupAclUse: 'گروه 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 بسیار پایین است؛ به ۱.۲۷.۱.۲-۲-۲-focal ارتقاء دهید'
|
||||
ErrFileTooLarge: 'فایل بزرگتر از ۱ مگابایت است و قابل بارگذاری نیست'
|
||||
|
||||
#task
|
||||
TaskStart: '{{ .name }} [شروع]'
|
||||
TaskEnd: '{{ .name }} [انجام شد]'
|
||||
TaskFailed: 'وظیفه {{ .name }} ناموفق بود'
|
||||
TaskTimeout: 'زمان وظیفه {{ .name }} به پایان رسید'
|
||||
TaskSuccess: 'وظیفه {{ .name }} با موفقیت انجام شد'
|
||||
TaskRetry: 'تلاش مجدد #{{ .name }}'
|
||||
SubTaskSuccess: '{{ .name }} با موفقیت انجام شد'
|
||||
SubTaskFailed: '{{ .name }} ناموفق بود: {{ .err }}'
|
||||
TaskInstall: 'نصب'
|
||||
TaskUninstall: 'حذف نصب'
|
||||
TaskCreate: 'ایجاد'
|
||||
TaskDelete: 'حذف'
|
||||
TaskUpgrade: 'ارتقاء'
|
||||
TaskUpdate: 'بهروزرسانی'
|
||||
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: 'تبدیل فایل'
|
||||
|
||||
# task - clam
|
||||
Clamscan: "اسکن {{ .name }}"
|
||||
TaskScan: "اسکن"
|
||||
|
||||
# task - ai
|
||||
OllamaModelPull: 'دریافت مدل Ollama {{ .name }}'
|
||||
OllamaModelSize: 'دریافت اندازه مدل Ollama: {{ .name }}'
|
||||
AIBenchmarkRun: 'اجرای معیار سنجش هوش مصنوعی'
|
||||
|
||||
# task-snapshot
|
||||
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: 'بازیابی دایرکتوری داده'
|
||||
|
||||
# task - container
|
||||
ContainerImagePull: 'دریافت تصویر کانتینر {{ .name }}'
|
||||
ContainerRemoveOld: 'حذف کانتینر اصلی {{ .name }}'
|
||||
ContainerImageCheck: 'بررسی نتیجه دریافت تصویر'
|
||||
ContainerLoadInfo: 'بارگذاری اطلاعات کانتینر'
|
||||
ContainerRecreate: 'بهروزرسانی کانتینر ناموفق بود؛ بازگردانی کانتینر اصلی'
|
||||
ContainerCreate: 'ایجاد کانتینر جدید {{ .name }}'
|
||||
ContainerCreateFailed: 'ایجاد کانتینر ناموفق بود؛ حذف کانتینر ناموفق'
|
||||
ContainerStartCheck: 'بررسی شروع کانتینر'
|
||||
|
||||
# task - image
|
||||
ImageBuild: 'ساخت تصویر'
|
||||
ImagePull: 'دریافت تصویر'
|
||||
ImageRepoAuthFromDB: 'بارگذاری احراز هویت مخزن از پایگاه داده'
|
||||
ImagePush: 'ارسال تصویر'
|
||||
ImageRenameTag: 'بهروزرسانی برچسب تصویر'
|
||||
ImageNewTag: 'برچسب تصویر جدید {{ .name }}'
|
||||
ComposeCreate: 'ایجاد پروژه Compose'
|
||||
|
||||
# task - website
|
||||
BackupNginxConfig: 'پشتیبانگیری از پیکربندی OpenResty وبسایت'
|
||||
CompressFileSuccess: 'دایرکتوری به {{ .name }} فشرده شد'
|
||||
CompressDir: 'فشردهسازی دایرکتوری'
|
||||
DeCompressFile: 'باز کردن فشرده فایل {{ .name }}'
|
||||
ErrCheckValid: 'تأیید فایل پشتیبان ناموفق بود: {{ .name }}'
|
||||
Rollback: 'بازگشت'
|
||||
websiteDir: 'دایرکتوری وبسایت'
|
||||
RecoverFailedStartRollBack: 'بازیابی ناموفق بود؛ شروع بازگشت'
|
||||
AppBackupFileIncomplete: 'پشتیبان ناقص است: app.json یا app.tar.gz وجود ندارد'
|
||||
AppAttributesNotMatch: 'نوع یا نام برنامه مطابقت ندارد'
|
||||
|
||||
#alert
|
||||
ErrAlertSync: 'همگامسازی پیام هشدار ناموفق بود'
|
||||
|
||||
#task - runtime
|
||||
ErrInstallExtension: 'وظیفه نصب پسوند دیگری در حال اجراست'
|
||||
|
||||
# alert mail template
|
||||
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 }}. برای مشاهده جزئیات وارد شوید."
|
||||
|
||||
#disk
|
||||
DeviceNotFound: "دستگاه {{ .name }} یافت نشد"
|
||||
DeviceIsMounted: 'دستگاه {{ .name }} متصل است؛ ابتدا قطع اتصال کنید'
|
||||
PartitionDiskErr: 'پارتیشنبندی ناموفق بود: {{ .err }}'
|
||||
FormatDiskErr: 'فرمت کردن ناموفق بود: {{ .err }}'
|
||||
MountDiskErr: 'اتصال ناموفق بود: {{ .err }}'
|
||||
XfsNotFound: 'xfs یافت نشد؛ ابتدا xfsprogs را نصب کنید'
|
||||
|
||||
# terminal
|
||||
TerminalAIBlockedRiskyCommand: 'دستور پرخطر مسدود شد: {{ .command }}'
|
||||
TerminalAIThinking: 'هوش مصنوعی در حال فکر کردن است...'
|
||||
TerminalAIReadyToExecute: 'تفکر کامل شد، برای اجرا Enter را فشار دهید (مدت زمان: {{ .duration }}، توکنها: {{ .tokens }})'
|
||||
TerminalAIRequestFailed: 'درخواست هوش مصنوعی ناموفق بود: {{ .err }}'
|
||||
FileAISearchEmptyDir: 'هیچ فایل یا دایرکتوری در این مسیر یافت نشد (یا همه ورودیها فیلتر شدند).'
|
||||
|
||||
# ai proxy
|
||||
ErrAIProxyServiceNotInstalled: 'سرویس {{ .name }} نصب نشده است'
|
||||
ErrAIProxyModelAccountNotFound: 'حساب مدل {{ .id }} یافت نشد'
|
||||
ErrAIProxyModelMapRequired: 'این فیلد الزامی است.'
|
||||
ErrAIProxyModelMapInvalid: 'نگاشت مدل باید یک شی JSON معتبر باشد: {{ .err }}'
|
||||
ErrAIProxyModelMapEmpty: 'نگاشت مدل نمیتواند خالی باشد'
|
||||
ErrAIProxyModelMapEmptyExternalModel: 'نگاشت مدل شامل یک مدل درخواست خالی است'
|
||||
ErrAIProxyModelMapEmptyUpstreamModel: 'مدل بالادست برای {{ .model }} نمیتواند خالی باشد'
|
||||
AIProxyUserFallback: 'کاربر حذف شده (شناسه: {{ .id }})'
|
||||
@@ -28,6 +28,7 @@ var langFiles = map[string]string{
|
||||
"ko": "lang/ko.yaml",
|
||||
"tr": "lang/tr.yaml",
|
||||
"es-ES": "lang/es-ES.yaml",
|
||||
"fa": "lang/fa.yaml",
|
||||
}
|
||||
|
||||
func GetMsgWithMap(key string, maps map[string]interface{}) string {
|
||||
|
||||
@@ -0,0 +1,353 @@
|
||||
ErrInvalidParams: "پارامترهای درخواست نامعتبر: {{ .detail }}"
|
||||
ErrTokenParse: "خطا در تولید توکن: {{ .detail }}"
|
||||
ErrInitialPassword: "رمز عبور اولیه اشتباه است"
|
||||
ErrInternalServer: "خطای داخلی سرور: {{ .detail }}"
|
||||
ErrRecordExist: "رکورد از قبل وجود دارد"
|
||||
ErrRecordNotFound: "رکورد یافت نشد"
|
||||
ErrStructTransform: "تبدیل نوع ناموفق بود: {{ .detail }}"
|
||||
ErrNotLogin: "کاربر وارد نشده است: {{ .detail }}"
|
||||
ErrSessionDataNotFound: "جلسه منقضی شده است"
|
||||
ErrSessionDataFormat: "فرمت داده جلسه نامعتبر است"
|
||||
ErrPasswordExpired: "رمز عبور منقضی شده است: {{ .detail }}"
|
||||
ErrNotSupportType: "نوع پشتیبانی نمیشود: {{ .detail }}"
|
||||
ErrProxy: "درخواست ناموفق بود؛ وضعیت این گره را بررسی کنید: {{ .detail }}"
|
||||
ErrApiConfigStatusInvalid: "دسترسی API غیرفعال است: {{ .detail }}"
|
||||
ErrApiConfigKeyInvalid: "کلید API نامعتبر است: {{ .detail }}"
|
||||
ErrApiConfigIPInvalid: "IP درخواست API در لیست سفید نیست: {{ .detail }}"
|
||||
ErrApiConfigDisable: "این رابط فراخوانی API را ممنوع میکند: {{ .detail }}"
|
||||
ErrApiConfigKeyTimeInvalid: "مهر زمانی API نامعتبر است: {{ .detail }}"
|
||||
ErrPasskeyDisabled: "کلید عبور نیاز به فعال بودن HTTPS دارد"
|
||||
ErrPasskeyNotConfigured: "هیچ کلید عبوری پیکربندی نشده است"
|
||||
ErrPasskeyLimit: "محدودیت کلید عبور رسیده است (حداکثر ۵)"
|
||||
ErrPasskeySession: "جلسه کلید عبور منقضی یا نامعتبر است"
|
||||
ErrPasskeyDuplicate: "کلید عبور از قبل وجود دارد"
|
||||
ErrPasskeyVerify: "تأیید کلید عبور ناموفق بود"
|
||||
ErrLoginLocked: "تعداد تلاشهای ناموفق زیاد است. ورود به مدت ۵ دقیقه به طور موقت قفل شده است."
|
||||
|
||||
# request
|
||||
ErrNoSuchHost: "تفکیک میزبان ناموفق بود: {{ .err }}"
|
||||
ErrHttpReqNotFound: "منبع درخواستی یافت نشد: {{ .err }}"
|
||||
ErrHttpReqFailed: "درخواست ناموفق بود {{ .err }}"
|
||||
ErrHttpReqTimeOut: "زمان درخواست به پایان رسید {{ .err }}"
|
||||
ErrCreateHttpClient: "ایجاد درخواست ناموفق بود {{ .err }}"
|
||||
ErrProxySetting: "اطلاعات سرور پروکسی در دسترس نیست {{ .err }}، بررسی و دوباره تلاش کنید!"
|
||||
ErrEntranceFormat: "ورودی امنیتی {{ .name }} پشتیبانی نمیشود. بررسی و دوباره تلاش کنید."
|
||||
|
||||
# common
|
||||
ErrDemoEnvironment: "سرور آزمایشی، این عملیات ممنوع است!"
|
||||
ErrCmdTimeout: "زمان اجرای دستور به پایان رسید!"
|
||||
ErrEntrance: "خطا در اطلاعات ورودی امنیتی، بررسی و دوباره تلاش کنید!"
|
||||
ErrGroupIsDefault: "گروه پیشفرض، قابل حذف نیست"
|
||||
ErrGroupIsInUse: "گروه در حال استفاده است و قابل حذف نیست."
|
||||
ErrAIProxyUserGroupIsDefault: "گروه کاربری پیشفرض قابل حذف نیست."
|
||||
ErrAIProxyUserGroupInUse: "گروه کاربری در حال استفاده است و قابل حذف نیست."
|
||||
ErrAIProxyUserGroupExists: "نام گروه کاربری از قبل وجود دارد."
|
||||
ErrAIProxyBackendAccountExists: "این حساب مدل قبلاً به مجموعه حسابهای دروازه AI وارد شده است."
|
||||
ErrAIProxyModelGroupInUse: "گروه مدل در حال استفاده است و قابل حذف نیست."
|
||||
ErrAIProxyModelGroupExists: "نام گروه مدل از قبل وجود دارد."
|
||||
ErrAIProxySensitiveGroupInUse: "گروه کلمات حساس در حال استفاده است و قابل حذف نیست."
|
||||
ErrAIProxySensitiveGroupExists: "نام گروه کلمات حساس از قبل وجود دارد."
|
||||
ErrLocalDelete: "گره محلی قابل حذف نیست!"
|
||||
ErrPortInUsed: "پورت {{ .name }} قبلاً در حال استفاده است!"
|
||||
ErrInternalServerKey: "خطای داخلی سرور:"
|
||||
MasterNode: "گره اصلی"
|
||||
|
||||
# app
|
||||
CustomAppStoreFileValid: "بسته فروشگاه برنامه باید با فرمت .tar.gz باشد"
|
||||
ErrFileNotFound: "فایل {{ .name }} وجود ندارد"
|
||||
AppBackup: 'پشتیبانگیری از برنامه'
|
||||
AppBackupPush: 'انتقال فایل پشتیبان برنامه {{.file}} به گره {{ .name }}'
|
||||
ErrSourceTargetSame: 'گره منبع و گره هدف نمیتوانند یکسان باشند!'
|
||||
AppInstall: 'نصب برنامه {{ .name }} روی گره {{ .targetNode }}'
|
||||
AppInstallCheck: 'بررسی محیط نصب برنامه'
|
||||
|
||||
# backup
|
||||
ErrBackupInUsed: "این حساب پشتیبان در وظایف زمانبندی استفاده میشود و قابل حذف نیست"
|
||||
ErrBackupCheck: "تست اتصال حساب پشتیبان ناموفق بود {{ .err }}"
|
||||
ErrBackupLocal: "حساب پشتیبان سرور محلی از این عملیات پشتیبانی نمیکند!"
|
||||
ErrBackupPublic: "تشخیص داده شد که این حساب پشتیبان عمومی نیست، بررسی و دوباره تلاش کنید!"
|
||||
ErrOSSConn: "امکان دریافت آخرین نسخه وجود ندارد. اتصال اینترنت سرور را بررسی کنید."
|
||||
|
||||
#license
|
||||
LicenseCheck: 'بررسی در دسترس بودن مجوز'
|
||||
ErrLicenseInUsed: 'مجوز قبلاً متصل شده است. بررسی و دوباره تلاش کنید!'
|
||||
ErrLicenseExpired: 'مجوز منقضی شده است. بررسی و دوباره تلاش کنید!'
|
||||
ErrLicense: "خطا در فرمت مجوز، بررسی و دوباره تلاش کنید!"
|
||||
ErrLicenseCheck: "تأیید مجوز ناموفق بود، بررسی و دوباره تلاش کنید!"
|
||||
ErrXpackVersion: "تأیید مجوز ناموفق بود، این مجوز محدودیت نسخه دارد، قابل واردات نیست، بررسی و دوباره تلاش کنید!"
|
||||
ErrLicenseSave: "ذخیره اطلاعات مجوز ناموفق بود، خطا {{ .err }}، دوباره تلاش کنید!"
|
||||
ErrLicenseSync: "همگامسازی مجوز ناموفق بود، هیچ اطلاعات مجوزی در پایگاه داده شناسایی نشد!"
|
||||
ErrLicenseExist: "این رکورد مجوز از قبل وجود دارد. میتوانید مستقیماً به صفحه مجوز برای اتصال گره بروید."
|
||||
ErrXpackNotFound: "این بخش نیاز به نسخه تجاری دارد. در تنظیمات پنل > مجوز یک مجوز وارد کنید."
|
||||
ErrXpackExceptional: "این بخش نیاز به نسخه تجاری دارد. وضعیت مجوز را در تنظیمات پنل > مجوز همگامسازی کنید."
|
||||
ErrXpackLost: "محدودیت تلاش مجدد مجوز رسیده است. به تنظیمات پنل > مجوز بروید و همگامسازی دستی را اجرا کنید."
|
||||
ErrEnterpriseLicenseRequired: "مجوز نسخه سازمانی وارد نشده است. ابتدا یک مجوز وارد کنید."
|
||||
ErrDeviceLost: "فایلهای مورد نیاز برای تأیید مجوز وجود ندارند، بررسی و دوباره تلاش کنید!"
|
||||
ErrDeviceErr: "محیط فعلی با محیط واردات مجوز مطابقت ندارد. مجوز را ویرایش کرده و دوباره وارد کنید."
|
||||
ErrXpackTimeout: "زمان درخواست به پایان رسید، ممکن است اتصال شبکه ناپایدار باشد، بعداً دوباره تلاش کنید!"
|
||||
ErrUnbindMaster: "گرههایی در مدیریت گره وجود دارند. ابتدا گرهها را حذف کنید، سپس مجوز فعلی را قطع اتصال کنید."
|
||||
ErrFreeNodeLimit: "تعداد گرههای قابل افزودن به حد مجاز رسیده است. خرید کرده و دوباره تلاش کنید."
|
||||
ErrNodeBound: "این مجوز به گره دیگری متصل است، بررسی و دوباره تلاش کنید!"
|
||||
ErrNodeBoundDelete: "این مجوز متصل است و از عملیات حذف پشتیبانی نمیکند. بررسی و دوباره تلاش کنید!"
|
||||
ErrNodeBoundLimit: "گره رایگان فعلی به حد مجاز رسیده است، بررسی و دوباره تلاش کنید!"
|
||||
ErrLicenseFree: "گرههای رایگان فقط زمانی در دسترس هستند که مجوز به درستی به یک گره متصل باشد. تأیید کرده و دوباره تلاش کنید."
|
||||
ErrLicenseUnbind: "گرههای نسخه انجمن هنوز به این مجوز متصل هستند. آنها را در تنظیمات پنل > مجوز قطع اتصال کرده و دوباره تلاش کنید."
|
||||
ErrLicenseBindCount: "تعداد گرههای رایگان مجوز جدید کمتر از تعداد گرههای نسخه انجمن متصل فعلی است. بررسی و دوباره تلاش کنید."
|
||||
ErrNoSuchNode: "اطلاعات گره یافت نشد، بررسی و دوباره تلاش کنید!"
|
||||
ErrNodeUnbind: "این گره در محدوده اتصال مجوز نیست، بررسی و دوباره تلاش کنید!"
|
||||
ErrNodeBind: "این گره قبلاً به یک مجوز متصل است، بررسی و دوباره تلاش کنید!"
|
||||
ErrNodeLocalRollback: "گره اصلی از بازگشت مستقیم پشتیبانی نمیکند. برای بازگشت به صورت دستی '1pctl restore' را اجرا کنید."
|
||||
ErrIntlLicense: "نسخه فعلی از واردات مجوزهای بینالمللی پشتیبانی نمیکند. منتظر بهروزرسانیهای بعدی باشید!"
|
||||
|
||||
# user
|
||||
ErrNoSuchUser: "اطلاعات کاربر یافت نشد، بررسی و دوباره تلاش کنید!"
|
||||
ErrToMaster: "این کاربر مجوز انجام این عملیات روی گره اصلی را ندارد. بررسی و دوباره تلاش کنید!"
|
||||
ErrToNode: "این کاربر مجوز انجام این عملیات روی این گره را ندارد. بررسی و دوباره تلاش کنید!"
|
||||
ErrRBAC: "مجوزهای کاربر ناکافی است. این عملیات قابل انجام نیست. بررسی و دوباره تلاش کنید!"
|
||||
ErrNoneNode: "این کاربر هیچ مجوز گرهای ندارد. با مدیر تماس بگیرید یا بررسی و دوباره تلاش کنید!"
|
||||
ErrOnlySuperAdmin: "فقط مدیران کل میتوانند از این ویژگی استفاده کنند!"
|
||||
ErrRolePresetCannotDelete: "نقشهای از پیش تعیین شده سیستم قابل حذف نیستند"
|
||||
ErrRolePresetCannotUpdate: "نقشهای از پیش تعیین شده سیستم قابل بهروزرسانی نیستند"
|
||||
ErrRoleBoundToUser: "این نقش قبلاً به کاربران متصل است و قابل حذف نیست"
|
||||
ErrRolePresetCannotBind: "نقشهای از پیش تعیین شده سیستم قابل انتساب به کاربران نیستند"
|
||||
ErrNodeAdminMasterForbidden: "مجوزهای مدیر گره نمیتوانند به گره اصلی اضافه شوند"
|
||||
ErrSuperAdminCannotDelete: "کاربران مدیر کل قابل حذف نیستند"
|
||||
|
||||
InvalidRequestBodyType: "فرمت بدنه درخواست نامعتبر است. اطمینان حاصل کنید که محتوا با فرمت مورد نیاز مطابقت دارد و دوباره تلاش کنید."
|
||||
InvalidLicenseCodeType: "فرمت کد مجوز ارائه شده نامعتبر است، بررسی و دوباره تلاش کنید!"
|
||||
LicenseNotFoundType: "مجوز یافت نشد، هیچ رکورد منطبقی در سیستم برای مجوز ارائه شده وجود ندارد. بررسی و دوباره تلاش کنید!"
|
||||
LicenseRevokedType: "مجوز درخواستی باطل شده است و دیگر قابل استفاده نیست. بررسی و دوباره تلاش کنید!"
|
||||
LicenseExpiredType: "مجوز منقضی شده است. آن را تمدید کنید یا دوباره در تنظیمات پنل - مجوز وارد کنید و سپس دوباره تلاش کنید."
|
||||
LicenseProductMismatchType: "مجوز با محصول یا سرویس درخواستی مطابقت ندارد!"
|
||||
InvalidAssigneeType: "اطلاعات کاربر یا دستگاه هدف برای انتساب مجوز نامعتبر است. بررسی و دوباره تلاش کنید!"
|
||||
LicenseUsageNotFoundType: "هیچ رکورد استفادهای یافت نشد. این مجوز هنوز فعال یا استفاده نشده است. بررسی و دوباره تلاش کنید!"
|
||||
LicenseUsageLimitExceededType: "این مجوز قبلاً به گره دیگری متصل است. بررسی و دوباره تلاش کنید!"
|
||||
|
||||
# alert
|
||||
ErrAlertSync: "خطا در همگامسازی اطلاعات هشدار، بررسی و دوباره تلاش کنید!"
|
||||
|
||||
# task
|
||||
TaskStart: "وظیفه {{ .name }} شروع شد [شروع]"
|
||||
TaskEnd: "وظیفه {{ .name }} پایان یافت [تکمیل شد]"
|
||||
TaskFailed: "وظیفه {{ .name }} ناموفق بود"
|
||||
TaskTimeout: "زمان وظیفه {{ .name }} به پایان رسید"
|
||||
TaskSuccess: "وظیفه {{ .name }} با موفقیت انجام شد"
|
||||
TaskRetry: "تلاش مجدد {{ .name }}"
|
||||
SubTaskSuccess: "{{ .name }} با موفقیت انجام شد"
|
||||
SubTaskFailed: "{{ .name }} ناموفق بود: {{ .err }}"
|
||||
TaskInstall: "نصب"
|
||||
TaskUpgrade: "ارتقاء"
|
||||
TaskSync: 'همگامسازی'
|
||||
TaskSyncForNode: "همگامسازی دادههای گره"
|
||||
TaskBackup: "پشتیبانگیری"
|
||||
BatchInstallAgent: "نصب دستهای عامل"
|
||||
DispatchAgentInstallTasks: "ارسال وظایف نصب عامل"
|
||||
BatchUpgradeAgent: "ارتقاء دستهای عامل"
|
||||
DispatchAgentUpgradeTasks: "ارسال وظایف ارتقاء عامل"
|
||||
BatchAgentInstallDispatchFailed: "گره {{ .node }} در ارسال وظیفه نصب {{ .agentType }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchAgentInstallSubmitted: "گره {{ .node }} وظیفه نصب {{ .agentType }} را با موفقیت ارسال کرد!"
|
||||
BatchAgentUpgradeDispatchFailed: "گره {{ .node }} در ارسال وظیفه ارتقاء {{ .agentType }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchAgentUpgradeAlreadyLatest: "گره {{ .node }} {{ .agent }} از قبل در نسخه هدف است، رد شد"
|
||||
BatchAgentUpgradeSubmitted: "گره {{ .node }} وظیفه ارتقاء {{ .agent }} را با موفقیت ارسال کرد!"
|
||||
BatchAgentUpgradeFailed: "گره {{ .node }} در ارسال وظیفه ارتقاء {{ .agent }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchInstallAgentSkill: "توزیع دستهای مهارت"
|
||||
DispatchAgentSkillInstallTasks: "ارسال وظایف نصب مهارت"
|
||||
BatchAgentSkillDispatchFailed: "گره {{ .node }} در ارسال {{ .skill }} به {{ .target }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchAgentNoAgentsFound: "گره {{ .node }} هیچ عامل {{ .agentType }} پیدا نکرد، رد شد"
|
||||
BatchAgentSkillSkipped: "گره {{ .node }} {{ .agent }} رد شد پیام: {{ .msg }}"
|
||||
BatchAgentSkillInstallSubmitted: "گره {{ .node }} وظیفه نصب {{ .skill }} را به {{ .agent }} با موفقیت ارسال کرد!"
|
||||
BatchAgentSkillInstallFailed: "گره {{ .node }} در ارسال وظیفه نصب {{ .skill }} به {{ .agent }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchAgentOperateDispatchFailed: "گره {{ .node }} در ارسال وظیفه {{ .operate }} {{ .agentType }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchAgentOperateSkipped: "گره {{ .node }} {{ .agent }} رد شد پیام: {{ .msg }}"
|
||||
BatchAgentOperateSubmitted: "گره {{ .node }} وظیفه {{ .operate }} {{ .agent }} را با موفقیت ارسال کرد!"
|
||||
BatchAgentOperateFailed: "گره {{ .node }} در ارسال وظیفه {{ .operate }} {{ .agent }} ناموفق بود پیام: {{ .err }}"
|
||||
BatchStartAgent: "شروع دستهای عامل"
|
||||
DispatchAgentStartTasks: "ارسال وظایف شروع عامل"
|
||||
BatchStopAgent: "توقف دستهای عامل"
|
||||
DispatchAgentStopTasks: "ارسال وظایف توقف عامل"
|
||||
BatchRestartAgent: "راهاندازی مجدد دستهای عامل"
|
||||
DispatchAgentRestartTasks: "ارسال وظایف راهاندازی مجدد عامل"
|
||||
BatchDeleteAgent: "حذف دستهای عامل"
|
||||
DispatchAgentDeleteTasks: "ارسال وظایف حذف عامل"
|
||||
AgentOperateStart: "شروع"
|
||||
AgentOperateStop: "توقف"
|
||||
AgentOperateRestart: "راهاندازی مجدد"
|
||||
AgentOperateDelete: "حذف"
|
||||
AIBenchmarkRun: "اجرای معیار سنجش هوش مصنوعی"
|
||||
SuccessStatus: "{{ .name }} با موفقیت انجام شد"
|
||||
FailedStatus: "{{ .name }} ناموفق بود {{ .err }}"
|
||||
Start: "شروع"
|
||||
SubTask: "وظیفه فرعی"
|
||||
Skip: "نادیده گرفتن خطاها و ادامه"
|
||||
PushAppInstallTaskToNode: "ارسال وظیفه نصب برنامه به گره [{{ .name }}]"
|
||||
TaskPush: "ارسال"
|
||||
AppInstallTask: "وظیفه نصب برنامه"
|
||||
PushAppFailed: "ارسال وظیفه نصب برنامه ناموفق بود"
|
||||
SkillHubInstallTask: "نصب مهارت [{{ .name }}]"
|
||||
SkillHubInstallToTarget: "نصب مهارت به هدف [{{ .name }}]"
|
||||
Success: "موفق"
|
||||
|
||||
#script
|
||||
ScriptLibrary: "کتابخانه اسکریپت"
|
||||
RemoteScriptLibrary: "کتابخانه اسکریپت از راه دور"
|
||||
ScriptSyncSkip: "کتابخانه اسکریپت از قبل بهروز است"
|
||||
DownloadData: "دانلود فایل دادههای کتابخانه اسکریپت data.yaml"
|
||||
DownloadPackage: "دانلود بسته کتابخانه اسکریپت"
|
||||
AnalyticCompletion: "تحلیل کامل شد، در حال همگامسازی با پایگاه داده..."
|
||||
|
||||
Node: "گره"
|
||||
SyncNode: "همگامسازی دادهها با گره {{ .name }}"
|
||||
LocalName: "نام 'local' فقط برای شناسایی محلی سیستم استفاده میشود"
|
||||
SyncPackageData: "همگامسازی دادههای بسته"
|
||||
SyncPackageEncrypt: "رمزگذاری بسته داده"
|
||||
SyncRequest: "درخواست API همگامسازی گره"
|
||||
SyncFailedRetry: "زمان همگامسازی دادههای گره به پایان رسید (تلاش {{ .index }})، در حال تلاش مجدد..."
|
||||
SyncFailed: "همگامسازی ناموفق بود، به صورت دستی در لیست گرهها همگامسازی کنید!"
|
||||
SyncSystemProxy: "تنظیمات پراکسی سیستم"
|
||||
SyncScripts: "کتابخانه اسکریپت"
|
||||
SyncBackupAccounts: "حسابهای پشتیبان"
|
||||
SyncAlertSetting: "تنظیمات هشدار"
|
||||
SyncCustomApp: "برنامه سفارشی"
|
||||
SyncLanguage: "زبان سیستم"
|
||||
SyncEdition: "منطقه"
|
||||
|
||||
#upgrade node
|
||||
NodeUpgrade: "ارتقاء گره {{ .name }}"
|
||||
UpgradeCheck: "بررسی بهروزرسانی گره"
|
||||
UpgradeCheckLocal: "گرههای محلی از ارتقاء دستهای پشتیبانی نمیکنند، رد شد..."
|
||||
UpgradeCheckLatest: "گره از قبل آخرین نسخه است، رد شد..."
|
||||
NewSSHClient: "در حال راهاندازی اتصال SSH"
|
||||
BackupBeforeUpgrade: "پشتیبانگیری از دادهها قبل از ارتقاء"
|
||||
UploadUpgradeFile: "توزیع فایلهای ارتقاء"
|
||||
RestartAfterUpgrade: "شروع سرویس پس از ارتقاء"
|
||||
LoadAutoUpgradeNodesFailed: "بارگذاری گرههای ارتقاء خودکار ناموفق بود، خطا: {{ .err }}"
|
||||
AutoUpgradeNodes: "گرههای ارتقاء خودکار: {{ .nodes }}"
|
||||
UpdateAutoUpgradeNodesStatusFailed: "بهروزرسانی وضعیت گرههای ارتقاء خودکار ناموفق بود، خطا: {{ .err }}"
|
||||
|
||||
#add node
|
||||
MasterData: "دادههای گره اصلی"
|
||||
LoadSftpClient: "بارگذاری کلاینت SFTP"
|
||||
PackageMasterData: "تولید بسته پشتیبان گره اصلی"
|
||||
UploadBackup: "بارگذاری دادههای پشتیبان"
|
||||
MvBackup: "انتقال دادهها به دایرکتوری پشتیبان"
|
||||
TaskAddNode: "افزودن گره"
|
||||
LoadNodeArch: "دریافت اطلاعات معماری گره"
|
||||
LoadNodeArchDetail: "معماری گره اصلی شناسایی شد: {{ .local }}، معماری گره زیرین: {{ .node }}"
|
||||
LoadNodeUpgradeDetail: "استفاده از دایرکتوری نصب تاریخی نسخه v1: {{ .baseDir }}، پورت شنود سرویس: {{ .port }}"
|
||||
SyncAgentBaseInfo: "همگامسازی اطلاعات پایه گره"
|
||||
GenerateSSLInfo: "تولید اطلاعات SSL گره"
|
||||
ConnInfoNotMatch: "اطلاعات اتصال مطابقت ندارد"
|
||||
MakeAgentPackage: "تولید بسته نصب گره"
|
||||
SendAgent: "توزیع بسته نصب گره"
|
||||
StartService: "شروع سرویس"
|
||||
NoBackupNode: "گره پشتیبان خالی است. ابتدا یکی را انتخاب کرده و ذخیره کنید"
|
||||
|
||||
#cmd
|
||||
AppVersion: "نسخه برنامه"
|
||||
AppCommands: "دستورات مرتبط با برنامه"
|
||||
AppInit: "راهاندازی برنامه"
|
||||
AppKeyVal: "کلید برنامه (فقط انگلیسی پشتیبانی میشود)"
|
||||
AppCreateFileErr: "ایجاد فایل {{ .name }} ناموفق بود {{ .err }}"
|
||||
AppCreateDirErr: "ایجاد پوشه {{ .name }} ناموفق بود {{ .err }}"
|
||||
AppMissKey: "کلید برنامه وجود ندارد، از -k برای مشخص کردن استفاده کنید"
|
||||
AppMissVersion: "نسخه برنامه وجود ندارد، از -v برای مشخص کردن استفاده کنید"
|
||||
AppVersionExist: "نسخه از قبل وجود دارد!"
|
||||
AppCreateSuccessful: "ایجاد با موفقیت انجام شد!"
|
||||
AppWriteErr: "نوشتن فایل {{ .name }} ناموفق بود {{ .err }}"
|
||||
SudoHelper: "از {{ .cmd }} استفاده کنید یا به کاربر root تغییر دهید"
|
||||
UsernameNeed: "نسخه سازمانی باید --username را مشخص کند"
|
||||
ListenIPCommands: "تغییر IP شنود"
|
||||
ListenIPv4: "شنود روی IPv4"
|
||||
ListenIPv6: "شنود روی IPv6"
|
||||
ListenChangeSuccessful: "تغییر با موفقیت انجام شد! در حال شنود روی {{ .value }}"
|
||||
ResetCommands: "بازنشانی اطلاعات سیستم"
|
||||
ResetMFA: "لغو احراز هویت دو مرحلهای 1Panel"
|
||||
ResetHttps: "لغو ورود https 1Panel"
|
||||
ResetEntrance: "لغو ورودی امنیتی 1Panel"
|
||||
ResetIPs: "لغو محدودیتهای IP مجاز 1Panel"
|
||||
ResetDomain: "لغو اتصال دامنه 1Panel"
|
||||
ResetPasskey: "پاکسازی کلیدهای عبور 1Panel"
|
||||
UserList: "دریافت لیست کاربران 1Panel"
|
||||
UserTableName: "نام"
|
||||
UserTableMFAStatus: "وضعیت MFA"
|
||||
UserTableSuperAdmin: "مدیر کل"
|
||||
UserTableCreatedAt: "تاریخ ایجاد"
|
||||
UserEmptyList: "هیچ کاربری یافت نشد"
|
||||
RestoreCommands: "بازگشت سرویس و دادههای 1Panel"
|
||||
RestoreNoSuchFile: "هیچ فایل بازگشتی یافت نشد"
|
||||
RestoreStep1: "(۱/۵) شروع بازگشت سرویس و دادههای 1Panel از دایرکتوری {{ .name }}..."
|
||||
RestoreStep2: "(۲/۵) بازگشت باینری 1Panel تکمیل شد"
|
||||
RestoreStep3: "(۳/۵) بازگشت اسکریپت 1Panel تکمیل شد"
|
||||
RestoreStep4: "(۴/۵) بازگشت سرویس 1Panel تکمیل شد"
|
||||
RestoreStep5: "(۵/۵) بازگشت دادههای 1Panel تکمیل شد"
|
||||
RestoreSuccessful: "بازگشت تکمیل شد. به نسخه {{ .version }} بازگردانده شد. در حال راهاندازی مجدد سرویس..."
|
||||
UpdateCommands: "بهروزرسانی اطلاعات پنل"
|
||||
UpdateUser: "بهروزرسانی اطلاعات کاربر"
|
||||
UpdatePassword: "بهروزرسانی رمز عبور کاربر"
|
||||
UpdatePort: "بهروزرسانی پورت پنل"
|
||||
UpdateUserNull: "خطا: کاربر خالی است!"
|
||||
UpdateUserBlank: "خطا: کاربر شامل فاصله است!"
|
||||
UpdateUserFormat: "خطا: فرمت کاربر نامعتبر است! فقط انگلیسی، چینی، اعداد و _ با طول ۳-۳۰ پشتیبانی میشود"
|
||||
UpdateUserErr: "خطا: بهروزرسانی کاربر ناموفق بود، {{ .err }}"
|
||||
UpdateSuccessful: "بهروزرسانی با موفقیت انجام شد!"
|
||||
UpdateUserResult: "کاربر: {{ .name }}"
|
||||
UpdatePasswordRead: "خطا: خواندن اطلاعات رمز عبور کاربر ناموفق بود، {{ .err }}"
|
||||
UpdatePasswordNull: "خطا: رمز عبور کاربر خالی است!"
|
||||
UpdateUPasswordBlank: "خطا: رمز عبور کاربر شامل فاصله است!"
|
||||
UpdatePasswordFormat: "خطا: رمز عبور کاربر فقط از حروف، اعداد و کاراکترهای ویژه (!@#$%*_,.?) با طول ۸-۳۰ پشتیبانی میکند."
|
||||
UpdatePasswordLen: "خطا: رمز عبور بیشتر از ۶ کاراکتر وارد کنید"
|
||||
UpdatePasswordRe: "تکرار رمز عبور:"
|
||||
UpdatePasswordErr: "خطا: بهروزرسانی رمز عبور کاربر ناموفق بود، {{ .err }}"
|
||||
UpdatePasswordSame: "خطا: دو رمز عبور مطابقت ندارند، بررسی و دوباره تلاش کنید!"
|
||||
UpdatePasswordResult: "رمز عبور کاربر: {{ .name }}"
|
||||
UpdatePortFormat: "خطا: شماره پورت ورودی باید بین ۱ تا ۶۵۵۳۵ باشد!"
|
||||
UpdatePortUsed: "خطا: شماره پورت قبلاً در حال استفاده است، بررسی و دوباره تلاش کنید!"
|
||||
UpdatePortErr: "خطا: بهروزرسانی پورت پنل ناموفق بود، {{ .err }}"
|
||||
UpdatePortResult: "پورت پنل: {{ .name }}"
|
||||
UpdatePortFirewallAdd: "افزودن قانون پورت دیواره آتش ناموفق بود، {{ .err }}، پورت {{ .name }} را به صورت دستی به قوانین دیواره آتش اضافه کنید."
|
||||
UpdatePortFirewallDel: "خطا: حذف پورت دیواره آتش ناموفق بود، {{ .err }}"
|
||||
UpdatePortFirewallReload: "بارگذاری مجدد دیواره آتش ناموفق بود، {{ .err }}، دیواره آتش را به صورت دستی بارگذاری مجدد کنید."
|
||||
UserInfo: "دریافت اطلاعات پنل"
|
||||
UserInfoAddr: "آدرس پنل: "
|
||||
UserInfoPassHelp: "نکته: برای تغییر رمز عبور، میتوانید دستور را اجرا کنید: "
|
||||
DBConnErr: "خطا: راهاندازی اتصال پایگاه داده ناموفق بود، {{ .err }}"
|
||||
SystemVersion: "نسخه: "
|
||||
SystemMode: "حالت: "
|
||||
|
||||
#exchange
|
||||
LocalNodeIpFailed: "دریافت IP گره اصلی ناموفق بود. گره اصلی را ویرایش کرده و آدرس IP و اطلاعات احراز هویت SSH را اضافه کنید."
|
||||
HandlePrivateKey: "مدیریت کلید خصوصی گره"
|
||||
HandlePublicKey: "مدیریت کلید عمومی گره"
|
||||
ExchangeFile: "شروع همگامسازی {{ .sourcePath }} از گره {{ .source }} به گره {{ .dest }}:{{ .destPath }}"
|
||||
TaskRsync: "همگامسازی"
|
||||
NodeFile: "فایل گره"
|
||||
ImageSyncTaskName: "همگامسازی تصویر {{ .source }} -> {{ .count }} گره"
|
||||
ImageSyncSave: "ذخیره تصویر {{ .image }}"
|
||||
ImageSyncSaveTags: "ذخیره برچسبهای تصویر {{ .tags }}"
|
||||
ImageSyncToNode: "همگامسازی تصویر {{ .image }} به گره {{ .node }}"
|
||||
ImageSyncLoad: "بارگذاری تصویر {{ .image }} روی گره {{ .node }}"
|
||||
ImageSyncClean: "پاکسازی فایلهای موقت تصویر {{ .image }}"
|
||||
ImageSyncNoTag: "تصویر {{ .image }} هیچ برچسبی ندارد و با شناسه تصویر ذخیره میشود"
|
||||
ImageSyncFrontendTagsIgnored: "هیچ برچسبی برای تصویر {{ .image }} در گره منبع یافت نشد. برچسبهای فرانتاند نادیده گرفته شدند."
|
||||
ImageSyncHandlePrivateKey: "مدیریت کلید خصوصی گره همگامسازی تصویر"
|
||||
ImageSyncHandlePublicKey: "مدیریت کلید عمومی گره همگامسازی تصویر"
|
||||
ImageSyncTransfer: "شروع انتقال فایل موقت تصویر: {{ .source }}:{{ .sourcePath }} -> {{ .dest }}:{{ .destPath }}"
|
||||
|
||||
#mobile app
|
||||
ErrVerifyToken: 'تأیید توکن ناموفق بود. بازنشانی کرده و دوباره اسکن کنید.'
|
||||
ErrInvalidToken: 'توکن نامعتبر است. بازنشانی کرده و دوباره اسکن کنید.'
|
||||
ErrExpiredToken: 'توکن منقضی شده است. بازنشانی کرده و دوباره اسکن کنید.'
|
||||
|
||||
#cluster
|
||||
ErrMasterDelete: "گره اصلی قابل حذف نیست. ابتدا گرههای برده را حذف کنید."
|
||||
ClusterNameIsExist: "نام خوشه از قبل وجود دارد."
|
||||
AppStatusUnHealthy: "دریافت وضعیت برنامه ناموفق بود. وضعیت گره نصب را در لیست گرهها بررسی کنید."
|
||||
MasterNodePortNotAvailable: "بررسی اتصال پورت {{ .port }} گره {{ .name }} ناموفق بود. تنظیمات دیواره آتش/گروه امنیتی و وضعیت گره اصلی را بررسی کنید."
|
||||
ClusterMasterNotExist: "گره اصلی خوشه قطع شده است. گرههای زیرین را حذف کنید."
|
||||
|
||||
#ssl
|
||||
ErrReqFailed: "درخواست {{.name}} ناموفق بود: {{ .err }}"
|
||||
|
||||
#command
|
||||
Name: "نام"
|
||||
Command: "دستور"
|
||||
@@ -17,6 +17,7 @@ import ru from 'element-plus/es/locale/lang/ru';
|
||||
import ko from 'element-plus/es/locale/lang/ko';
|
||||
import tr from 'element-plus/es/locale/lang/tr';
|
||||
import esES from 'element-plus/es/locale/lang/es';
|
||||
import fa from 'element-plus/es/locale/lang/fa';
|
||||
import { useTheme } from '@/global/use-theme';
|
||||
useTheme();
|
||||
|
||||
@@ -36,6 +37,7 @@ const i18nLocale = computed(() => {
|
||||
if (language.value === 'ko') return ko;
|
||||
if (language.value === 'tr') return tr;
|
||||
if (language.value === 'es-ES') return esES;
|
||||
if (language.value === 'fa') return fa;
|
||||
return zhCn;
|
||||
});
|
||||
|
||||
|
||||
@@ -141,6 +141,20 @@ const fuLocales: Record<string, FuLocaleMessage> = {
|
||||
},
|
||||
},
|
||||
},
|
||||
fa: {
|
||||
fu: {
|
||||
table: {
|
||||
more: 'بیشتر',
|
||||
custom_table_rows: 'ستونهای سفارشی',
|
||||
},
|
||||
steps: {
|
||||
cancel: 'لغو',
|
||||
prev: 'قبلی',
|
||||
next: 'بعدی',
|
||||
finish: 'پایان',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const getFuLocaleMessage = (locale: string) => {
|
||||
|
||||
@@ -16,6 +16,7 @@ const LOCALE_LOADERS: Record<string, LocaleLoader> = {
|
||||
ms: () => import('./modules/ms'),
|
||||
ko: () => import('./modules/ko'),
|
||||
tr: () => import('./modules/tr'),
|
||||
fa: () => import('./modules/fa'),
|
||||
'es-ES': () => import('./modules/es-es'),
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -62,6 +62,7 @@
|
||||
<el-dropdown-item command="ru">Русский</el-dropdown-item>
|
||||
<el-dropdown-item command="ms">Bahasa Melayu</el-dropdown-item>
|
||||
<el-dropdown-item command="tr">Turkish</el-dropdown-item>
|
||||
<el-dropdown-item command="fa">فارسی</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
||||
@@ -285,6 +285,7 @@ const languageOptions = ref([
|
||||
{ value: 'ms', label: 'Bahasa Melayu' },
|
||||
{ value: 'tr', label: 'Turkish' },
|
||||
{ value: 'es-ES', label: 'España - Español' },
|
||||
{ value: 'fa', label: 'فارسی' },
|
||||
]);
|
||||
|
||||
if (isIntl.value) {
|
||||
|
||||
Reference in New Issue
Block a user