Localize the deploy wizard.

Move the multi-step deploy wizard (app type/runtime, source, versions &
database, optional services, resources & cluster assignment, custom
domain + DNS, env vars, cost/payment, review and the provisioning
overlay) onto a dashboard.deployWizard dictionary, with localized runtime
descriptions, billing cycles, stage labels and RTL-aware controls.

This completes full fa-IR/en-US localization of the dashboard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
keyhan
2026-06-12 00:48:45 +03:30
parent aca69fc5e6
commit e43274e9a2
4 changed files with 483 additions and 257 deletions
+135
View File
@@ -1169,6 +1169,141 @@ const fa = {
revision: 'نسخهٔ', hoursUnit: '{n} ساعت',
payFromWalletBtn: 'پرداخت از کیف‌پول', applyDirectly: 'اعمال مستقیم',
},
deployWizard: {
cycles: { hourly: 'ساعتی', monthly: 'ماهانه', yearly: 'سالانه' },
deployNewApp: 'انتشار اپلیکیشن جدید',
followSteps: 'برای انتشار اپت روی ابر، مراحل را دنبال کن.',
basicInfo: 'اطلاعات پایه',
appType: 'نوع اپلیکیشن',
appName: 'نام اپلیکیشن',
descriptionOptional: 'توضیحات (اختیاری)',
whatDoesApp: 'این اپ چه کاری انجام می‌دهد؟',
nameHint: 'فقط حروف کوچک، اعداد و خط تیره',
source: 'منبع',
sourceCode: 'سورس‌کد',
gitRepository: 'مخزن Git',
uploadZip: 'آپلود ZIP',
uploadAZip: 'آپلود یک ZIP',
repositoryUrl: 'آدرس مخزن',
branch: 'شاخه',
accessToken: 'توکن دسترسی',
auth: 'احراز هویت',
tokenProvided: 'توکن داده شد',
versionsDatabase: 'نسخه‌ها و دیتابیس',
runtime: 'رانتایم',
nodeVersion: 'نسخهٔ Node.js', phpVersion: 'نسخهٔ PHP', pythonVersion: 'نسخهٔ Python',
goVersion: 'نسخهٔ Go', wordpressVersion: 'نسخهٔ WordPress',
database: 'دیتابیس',
databaseCredentials: 'اطلاعات ورود دیتابیس',
dbUsername: 'نام کاربری دیتابیس', dbPassword: 'رمز دیتابیس', dbStorage: 'فضای دیتابیس', dbDump: 'dump دیتابیس',
databaseStorageSize: 'اندازهٔ فضای ذخیرهٔ دیتابیس',
username: 'نام کاربری', password: 'رمز عبور', autoGenerated: 'تولید خودکار',
generatePassword: 'تولید رمز تصادفی',
dbCredsNote: 'این اطلاعات فقط برای ارتباط داخلی کلاستر استفاده می‌شوند. دیتابیس به‌صورت خارجی expose نمی‌شود.',
optionalDbDump: 'اختیاری: آپلود dump دیتابیس برای بازیابی هنگام ساخت',
uploadSqlNote: 'یک SQL dump آپلود کن تا پس از ساخت دیتابیس بازیابی شود',
uploadDbDumpHint: 'در مرحلهٔ بعد می‌توانی یک dump دیتابیس SQL برای بازیابی داده‌هایت آپلود کنی.',
optionalServices: 'سرویس‌های اختیاری',
configurePerService: 'منابع هر سرویسِ فعال را جدا از اپلیکیشن خود پیکربندی کن.',
redisResources: 'منابع Redis', rabbitmqResources: 'منابع RabbitMQ',
centralizedLogging: 'لاگینگ متمرکز', logsViaFluentBit: 'لاگ‌ها از طریق سایدکار Fluent Bit جمع‌آوری می‌شوند',
logFilePaths: 'مسیر فایل‌های لاگ',
specifyLogFiles: 'مشخص کن کدام فایل‌های لاگ جمع‌آوری شوند. برای مسیرهای پیش‌فرض بر اساس رانتایم، خالی بگذار.',
defaultPathsByRuntime: 'مسیرهای پیش‌فرض بر اساس رانتایم:',
resourcesConfig: 'منابع و پیکربندی',
applicationWorkload: 'workload اپلیکیشن',
cpu: 'CPU', memory: 'حافظه', storage: 'فضای ذخیره', replicas: 'رپلیکاها', port: 'پورت',
cpuRequest: 'درخواست CPU', cpuLimit: 'محدودیت CPU', memoryRequest: 'درخواست حافظه', memoryLimit: 'محدودیت حافظه',
clusterAssignment: 'تخصیص کلاستر',
useDefaultCluster: 'استفاده از کلاستر پیش‌فرض', defaultClusterUsed: 'کلاستر پیش‌فرض استفاده خواهد شد',
pickSpecificCluster: 'انتخاب یک کلاستر مشخص', pickClusterPool: 'انتخاب یک پول کلاستر',
loadBalanced: 'متوازن‌شده', cluster: 'کلاستر',
noClustersAvailable: 'کلاستری در دسترس نیست', noClusterPools: 'هیچ پول کلاستری پیکربندی نشده',
askAdminPool: 'از مدیر بخواه یک پول کلاستر بسازد', defaultClusterWillBeUsed: 'کلاستر پیش‌فرض استفاده خواهد شد',
customDomain: 'دامنهٔ اختصاصی', domainAddress: 'آدرس دامنه',
dnsSetupRequired: 'تنظیم DNS لازم است', dnsNotVerified: 'DNS تأیید نشده', verifyDnsRecords: 'تأیید رکوردهای DNS',
checkingDns: 'در حال بررسی DNS…', dnsVerified: 'DNS تأیید شد', dnsVerifiedProceed: 'DNS تأیید شد! می‌توانی ادامه بدهی.',
mustVerifyDns: 'پیش از ادامه باید DNS را تأیید کنی. SSL پس از انتشار به‌صورت خودکار صادر می‌شود.',
requiredCnameRecord: 'رکورد CNAME موردنیاز:',
record: 'رکورد:', typeColon: 'نوع:', nameHost: 'نام/هاست:', valueColon: 'مقدار:', cnameTarget: 'مقصد CNAME:', versionColon: 'نسخه:',
yourPlatformDomain: 'دامنهٔ پلتفرمِ اپت (پس از ساخت)',
environmentVariables: 'متغیرهای محیطی', envVars: 'متغیرهای محیط',
uploadEnvFile: 'آپلود فایل .env', add: 'افزودن', clear: 'پاک‌کردن', remove: 'حذف',
reviewDeploy: 'بررسی و انتشار',
costEstimate: 'برآورد هزینه', calculating: 'در حال محاسبه…', breakdown: 'تفکیک',
additionalCharges: 'هزینه‌های اضافه (پرداختی شما)', coveredByCredit: 'پوشش‌داده‌شده با اعتبار پیش‌پرداخت',
customDomainFee: 'هزینهٔ دامنهٔ اختصاصی:', feeIncludedNote: 'این هزینه در محاسبهٔ هزینهٔ کل لحاظ شده است.',
prepaidCreditApplied: 'اعتبار پیش‌پرداخت اعمال شد', prepaidCreditPricing: 'قیمت‌گذاری اعتبار پیش‌پرداخت',
deployWithCredit: 'انتشار با اعتبار پیش‌پرداخت',
noChargeCovered: 'بدون هزینهٔ اضافه — کاملاً پوشش داده شده.',
noPaymentCredit: 'نیازی به پرداخت نیست — اعتبار منابع پیش‌پرداختت این انتشار را پوشش می‌دهد.',
noPricingPlans: 'هنوز پلن قیمتی تعریف نشده',
paymentMethod: 'روش پرداخت', payFromWallet: 'پرداخت از کیف‌پول', payNow: 'پرداخت', onlineGateway: 'درگاه پرداخت آنلاین',
insufficientBalance: 'موجودی ناکافی', toman: 'تومان',
payDeploy: 'پرداخت و انتشار', deployApplication: 'انتشار اپلیکیشن',
processingPayment: 'در حال پردازش پرداخت', creatingApplication: 'ساخت اپلیکیشن', startingDeployment: 'شروع انتشار',
stageCreating: 'در حال ساخت اپلیکیشن…', stageUploadingSource: 'در حال آپلود سورس‌کد…',
stageUploadingDb: 'در حال آپلود dump دیتابیس…', stagePaying: 'در حال پردازش پرداخت…',
stageDeploying: 'در حال شروع انتشار…', stageRedirecting: 'در حال انتقال…', stageError: 'خطایی رخ داد',
deploymentFailed: 'انتشار ناموفق بود', success: 'موفق!', deployingApplication: 'در حال انتشار اپلیکیشن',
// app types
appTypeApplication: 'اپلیکیشن', appTypeDatabase: 'دیتابیس',
// service types descriptions
inMemoryCache: 'کش و ذخیرهٔ درون‌حافظه‌ای', messageBroker: 'بروکر پیام',
// wordpress
wordpressOfficial: 'WordPress (ایمیج رسمی)',
freshInstall: 'نصب تازه', migrateExisting: 'انتقال سایت موجود',
freshInstallNote: 'با یک WordPress تمیز شروع کن. تم‌ها و افزونه‌ها را از پنل مدیریت نصب کن.',
migrateNote: 'فایل‌های WordPress خود (wp-content، تم‌ها، افزونه‌ها) و در صورت تمایل یک dump دیتابیس را آپلود کن.',
dragWpZip: 'فایل ZIP وردپرس خود را اینجا بکش و رها کن',
dragProjectZip: 'فایل ZIP پروژهٔ خود را اینجا بکش و رها کن',
// strategies
stratLeastApps: 'کمترین اپ', stratLeastLoaded: 'کم‌بارترین', stratRoundRobin: 'چرخشی',
stratWeightedRR: 'چرخشی وزن‌دار', stratWeightedResource: 'منابع وزن‌دار', stratRegionBased: 'بر اساس منطقه',
default: 'پیش‌فرض', manual: 'دستی', none: 'هیچ‌کدام',
// toasts
appCreatedDeploying: 'اپلیکیشن ساخته شد! در حال آغاز انتشار…',
paymentSuccessDeploying: 'پرداخت موفق! در حال انتشار…',
insufficientWallet: 'موجودی کیف‌پول کافی نیست. لطفاً شارژ کن یا از درگاه پرداخت استفاده کن.',
archiveMax10: 'آرشیو باید حداکثر ۱۰ گیگابایت باشد', fileMax10: 'حجم فایل باید حداکثر ۱۰ گیگابایت باشد',
onlyZipAllowed: 'فقط فایل‌های .zip یا .tar.gz مجاز هستند', envReadFailed: 'خواندن فایل محیطی ناموفق بود',
dnsCheckFailed: 'بررسی DNS ناموفق بود. لطفاً دوباره تلاش کن.',
allowedDumpFormats: 'مجاز: .sql، .gz، .dump', maxSize500: 'حداکثر ۵۰۰ مگابایت',
storageTooSmall: 'فضای ذخیره خیلی کم است',
// misc fragments
anyCustom: 'هر',
ofYourEntire: 'از کل',
uploadAZipContaining: 'یک ZIP حاوی فایل‌های WordPress خود آپلود کن. ساختارهای پشتیبانی‌شده:',
zipWithFullRoot: 'ZIP با ریشهٔ کامل WordPress (',
filesAtRoot: 'فایل‌ها در سطح ریشه',
directoryFullRoot: 'پوشه (ریشهٔ کامل WordPress):',
zipWith: 'ZIP با',
containingWpFiles: ' حاوی فایل‌های WordPress خود. ساختارهای پشتیبانی‌شده:',
wpContentDesc: ' — تم‌ها، افزونه‌ها، آپلودها',
wpConfigDesc: ' — پیکربندی سفارشی (اختیاری)',
anyCustomA: 'هر فایل ', anyCustomB: ' سفارشی در سطح ریشه',
folderMax10: ' پوشه • حداکثر ۱۰ گیگابایت',
fullRootSuffix: '، ...) • حداکثر ۱۰ گیگابایت',
invalidDomainFormat: 'فرمت دامنه نامعتبر است. از فرمتی مثل example.com یا www.example.com استفاده کن',
dnsNotConfigured: 'رکوردهای DNS درست تنظیم نشده‌اند. رکورد CNAME را تنظیم کن و پیش از ادامه منتظر انتشار آن بمان.',
dnsVerifyFailed: 'تأیید DNS ناموفق بود. تنظیمات دامنه‌ات را بررسی کن و دوباره تلاش کن.',
platformDomainArrow: 'دامنهٔ پلتفرمِ اپت (پس از ساخت)',
runtimeDescs: {
nodejs: 'Express، NestJS، Fastify',
laravel: 'PHP، Composer، Artisan',
wordpress: 'تصویر رسمی',
go: 'Gin، Echo، Fiber',
python: 'Flask، FastAPI',
django: 'فریم‌ورک وب پایتون',
php: 'اپ‌های PHP ساده',
dotnet: 'ASP.NET Core',
},
noValidEnvVars: 'هیچ متغیر محیطی معتبری در فایل پیدا نشد',
appDataStorage: 'فضای ذخیرهٔ دادهٔ اپلیکیشن',
wordpressFreshInstall: 'WordPress (نصب تازه)',
automaticAllocator: 'تخصیص‌دهندهٔ خودکار',
back: 'بازگشت', next: 'بعدی',
},
},
};