// Persian (fa-IR) dictionary — the source of truth for the app's copy. // The `Dictionary` type is derived from this object; en.ts must match its shape. const fa = { common: { appName: 'ابربان', login: 'ورود', register: 'ثبت‌نام', logout: 'خروج', signOut: 'خروج از حساب', dashboard: 'داشبورد', backHome: 'بازگشت به خانه', loading: 'در حال بارگذاری…', save: 'ذخیره', cancel: 'انصراف', delete: 'حذف', edit: 'ویرایش', create: 'ایجاد', back: 'بازگشت', search: 'جستجو', confirm: 'تأیید', close: 'بستن', yes: 'بله', no: 'خیر', currency: 'تومان', currencyShort: 'ت', }, language: { label: 'زبان', }, meta: { title: 'ابربان | زیرساخت ابری، در کنترل تو', description: 'ابربان؛ پلتفرم ابریِ خودسرویس روی کوبرنتیز. اپ خود را در چند ثانیه منتشر کن — دیتابیس مدیریت‌شده، دامنهٔ اختصاصی، SSL خودکار و لاگ زنده.', }, roles: { admin: 'مدیر', technical: 'فنی', sales: 'فروش', }, landing: { badge: 'پلتفرم ابریِ خودسرویس', hero: { title: 'ابربان', tagline: 'زیرساخت ابری، در کنترل تو', subtitle: 'اپلیکیشنت را در چند ثانیه روی کوبرنتیز منتشر کن — بدون دردسر سرور، بدون پیچیدگیِ DevOps.', ctaPrimary: 'رایگان شروع کن', ctaSecondary: 'ورود', scrollHint: 'به دلِ ابرها بزن', }, value: { lead: 'یک پلتفرمِ ', highlight: 'PaaS خودسرویس', tail: ' روی کوبرنتیز — تمامِ قدرتِ زیرساختِ ابری، بدون پیچیدگیِ طوفانی‌اش.', body: 'ابربان لایه‌های سختِ DevOps را برایت مدیریت می‌کند تا فقط روی محصولت تمرکز کنی.', }, how: { title: 'به سادگیِ سه قدم', steps: [ { n: '۱', title: 'کدت را بده', desc: 'ریپازیتوری یا اپت را وصل کن.' }, { n: '۲', title: 'ما می‌سازیم', desc: 'ابربان به‌صورت خودکار بیلد و روی کوبرنتیز دیپلوی می‌کند.' }, { n: '۳', title: 'آنلاین شو', desc: 'دامنه و SSL آماده است؛ اپت زنده می‌شود.' }, ], }, features: { title: 'هرچه برای ساختن لازم داری', subtitle: 'یک جعبه‌ابزارِ کامل برای انتشار و نگه‌داریِ اپ.', items: [ { title: 'دیپلوی برق‌آسا', desc: 'Node.js، لاراول و وردپرس را با یک کلیک منتشر کن؛ بیلد و انتشار خودکار.' }, { title: 'دیتابیس مدیریت‌شده', desc: 'PostgreSQL، MySQL، Redis، RabbitMQ و Elasticsearch، آماده و پایدار.' }, { title: 'SSL خودکار', desc: 'دامنهٔ اختصاصی وصل کن؛ گواهی SSL خودکار صادر و تمدید می‌شود.' }, { title: 'لینک پیش‌نمایش', desc: 'برای هر دیپلوی یک Preview URL پایدار روی TLS بگیر و سریع تست کن.' }, { title: 'لاگ زنده', desc: 'لاگ بیلد و اجرای اپ را همان لحظه و به‌صورت زنده دنبال کن.' }, { title: 'اسنپ‌شات و بکاپ', desc: 'از وضعیت اپ اسنپ‌شات بگیر و هر زمان خواستی بازگردان.' }, { title: 'بیلینگ شفاف', desc: 'کیف‌پول پیش‌پرداخت، فاکتور دقیق و مصرف لحظه‌ای — بدون سورپرایز.' }, { title: 'پشتیبانی فارسی', desc: 'تیم پشتیبانی و سیستم تیکت، فارسی و همیشه کنارت.' }, ], }, trust: { title: 'چرا تیم‌ها به ابربان اعتماد می‌کنند', items: [ { kpi: '< ۶۰ ثانیه', label: 'میانگین زمان دیپلوی' }, { kpi: '۹۹٫۹٪', label: 'پایداریِ زیرساخت' }, { kpi: 'TLS خودکار', label: 'امنیتِ پیش‌فرض' }, { kpi: 'بومیِ ایران', label: 'بهینه برای کاربر ایرانی' }, ], }, finalCta: { titleLead: 'آسمان صاف است؛ وقتِ ', titleHighlight: 'زنده', titleTail: ' کردنِ اپِ توست.', body: 'همین حالا حسابت را بساز و اولین دیپلوی را تجربه کن.', ctaPrimary: 'همین حالا شروع کن', ctaSecondary: 'داشبورد', }, footer: { copyright: '© ابربان — همهٔ حقوق محفوظ است', }, }, auth: { backHome: 'بازگشت به خانه', login: { title: 'خوش آمدی', subtitle: 'به حساب ابربان خود وارد شو', altPrompt: 'هنوز حساب نداری؟', altLabel: 'ثبت‌نام کن', email: 'ایمیل', password: 'رمز عبور', submit: 'ورود', submitting: 'در حال ورود…', success: 'با موفقیت وارد شدی!', error: 'ورود ناموفق بود', }, register: { title: 'ساخت حساب', subtitle: 'در چند دقیقه اولین اپت را منتشر کن', altPrompt: 'قبلاً حساب ساخته‌ای؟', altLabel: 'وارد شو', firstName: 'نام', firstNamePlaceholder: 'مثلاً علی', lastName: 'نام خانوادگی', lastNamePlaceholder: 'مثلاً رضایی', email: 'ایمیل', password: 'رمز عبور', passwordPlaceholder: 'حداقل ۸ کاراکتر', submit: 'ساخت حساب', submitting: 'در حال ساخت حساب…', success: 'حساب با موفقیت ساخته شد!', error: 'ثبت‌نام ناموفق بود', }, }, nav: { sectionAdmin: 'مدیریت', sectionTechnical: 'فنی', sectionSales: 'فروش', walletBalanceTitle: 'موجودی کیف‌پول', dashboard: 'داشبورد', applications: 'اپلیکیشن‌ها', services: 'دیتابیس‌ها و سرویس‌ها', logs: 'لاگ‌ها', newDeploy: 'دیپلوی جدید', wallet: 'کیف‌پول', invoices: 'فاکتورها', tickets: 'تیکت‌ها', users: 'کاربران', allApplications: 'همهٔ اپلیکیشن‌ها', billingPlans: 'پلن‌های صورت‌حساب', clusters: 'کلاسترها', clusterPools: 'پول‌های کلاستر', allTickets: 'همهٔ تیکت‌ها', technicalTickets: 'تیکت‌های فنی', salesTickets: 'تیکت‌های فروش', }, dashboard: { status: { running: 'در حال اجرا', pending: 'در انتظار', building: 'در حال بیلد', deploying: 'در حال انتشار', failed: 'ناموفق', build_failed: 'خطای بیلد', cancelled: 'لغو شده', stopped: 'متوقف', }, home: { welcome: 'خوش آمدی، {name}!', overview: 'نمای کلیِ اپلیکیشن‌ها و سرویس‌های مدیریت‌شدهٔ تو.', creditsTitle: 'اعتبارِ پیش‌پرداختِ منابع', creditsBody: 'اگر اپی را پیش از پایان پلنت حذف کنی، می‌توانی تا زمان انقضای اعتبار، اپ جدیدی با همان منابع و بدون هزینهٔ اضافه منتشر کنی.', fromApp: 'از اپِ «{name}»', resourceCredit: 'اعتبارِ منابع', remaining: '{label} باقی‌مانده', expires: 'انقضا {date}', cpu: 'پردازنده', ram: 'حافظه', replicas: 'تعداد نمونه', db: 'دیتابیس', dbDisk: 'دیسکِ دیتابیس', appDisk: 'دیسکِ اپ', useOnNewApp: 'استفاده روی اپ جدید →', statApplications: 'اپلیکیشن‌ها', statAppsRunning: 'اپ‌های در حال اجرا', statManagedServices: 'سرویس‌های مدیریت‌شده', statServicesRunning: 'سرویس‌های در حال اجرا', appsFailed: '{n} اپلیکیشن ناموفق', servicesFailed: '{n} سرویس ناموفق', recentApplications: 'اپلیکیشن‌های اخیر', newApplication: 'اپلیکیشن جدید', noApplications: 'هنوز اپلیکیشنی نداری', deployFirst: 'اولین اپت را منتشر کن', viewAllApplications: 'مشاهدهٔ همهٔ {n} اپلیکیشن →', recentServices: 'دیتابیس‌ها و سرویس‌های اخیر', newService: 'سرویس جدید', noServices: 'هنوز سرویس مدیریت‌شده‌ای نداری', createServiceCta: 'ساخت دیتابیس یا سرویس', viewAllServices: 'مشاهدهٔ همهٔ {n} سرویس →', replica: 'نمونه', replicaPlural: 'نمونه', }, apps: { title: 'اپلیکیشن‌های من', count: '{n} اپلیکیشن', newApplication: 'اپلیکیشن جدید', noApplications: 'هنوز اپلیکیشنی نداری', emptyDesc: 'برای شروع، اولین اپلیکیشنت را منتشر کن.', deployFirst: 'اولین اپت را منتشر کن', colApplication: 'اپلیکیشن', colRuntime: 'محیط اجرا', colStatus: 'وضعیت', colServiceStatus: 'وضعیت سرویس', colExpiry: 'انقضا', colActions: 'عملیات', view: 'مشاهده', lifecycle: { active: 'فعال', suspended: 'معلق — پرداخت‌نشده', pending_deletion: 'در انتظار حذف', deleted: 'حذف‌شده', }, expired: 'منقضی شده', daysHours: '{d} روز و {h} ساعت باقی‌مانده', hours: '{h} ساعت باقی‌مانده', mins: '{m} دقیقه باقی‌مانده', noPlan: 'بدون پلن', deleteTitle: 'حذف اپلیکیشن', deleteMessage: 'اپلیکیشن «{name}» و همهٔ داده‌هایش برای همیشه حذف شود؟\n\nاگر از پلنت زمان باقی مانده باشد، منابع پیش‌پرداخت‌شده روی داشبوردت نمایش داده می‌شود تا بدون هزینهٔ اضافه روی اپ جدید استفاده کنی.', deleted: 'اپلیکیشن حذف شد', deletedWithCredit: 'اپلیکیشن حذف شد. منابع پیش‌پرداختت روی داشبورد نمایش داده می‌شود.', }, services: { title: 'دیتابیس‌ها و سرویس‌ها', subtitle: 'دیتابیس‌های مستقل، Redis و RabbitMQ — {n} سرویس', newService: 'سرویس جدید', noServices: 'هنوز سرویس مدیریت‌شده‌ای نداری', emptyDesc: 'بدون انتشار یک اپلیکیشن کامل، یک دیتابیس، Redis یا RabbitMQ بساز.', createFirst: 'اولین سرویست را بساز', deleteTitle: 'حذف سرویس؟', deleteMessage: 'سرویس «{name}» برای همیشه حذف شود؟ این عمل قابل بازگشت نیست.', deleted: 'سرویس حذف شد', deletedWithCredit: 'سرویس حذف شد. منابع پیش‌پرداختت روی داشبورد است.', }, wallet: { title: 'کیف‌پول', subtitle: 'موجودی و تراکنش‌هایت را مدیریت کن', currentBalance: 'موجودی فعلی', toman: 'تومان', topUp: 'افزایش موجودی', amountPlaceholder: 'مبلغ (تومان) — حداقل ۱٬۰۰۰', payNow: 'پرداخت', transactionHistory: 'تاریخچهٔ تراکنش‌ها', noTransactions: 'هنوز تراکنشی نداری', balanceAfter: 'موجودی: {amount} {unit}', invoice: 'فاکتور {number}', minChargeError: 'حداقل مبلغ شارژ ۱٬۰۰۰ تومان است', chargedSuccess: 'کیف‌پول با موفقیت شارژ شد', chargeFailed: 'شارژ کیف‌پول ناموفق بود', paymentSuccess: 'پرداخت موفق — کیف‌پول شارژ شد', paymentFailed: 'پرداخت ناموفق بود', topUpDesc: 'شارژ کیف‌پول', topUpGatewayDesc: 'شارژ کیف‌پول از طریق درگاه', txTypes: { charge: 'واریز', deduction: 'پرداخت', refund: 'بازگشت وجه', gateway_payment: 'پرداخت درگاهی', }, }, tickets: { status: { open: 'باز', waiting: 'در انتظار', answered: 'پاسخ‌داده‌شده', closed: 'بسته' }, priority: { low: 'کم', medium: 'متوسط', high: 'زیاد' }, department: { technical: 'فنی', sales: 'فروش' }, departmentFull: { technical: 'پشتیبانی فنی', sales: 'فروش' }, role: { admin: 'مدیر', technical: 'فنی', sales: 'فروش' }, myTickets: 'تیکت‌های من', myTicketsSubtitle: 'تیکت‌های پشتیبانی و وضعیتشان', newTicket: 'تیکت جدید', createNewTicket: 'ساخت تیکت جدید', subject: 'موضوع', subjectPlaceholder: 'توضیح کوتاهی از مشکلت', departmentField: 'بخش', priorityField: 'اولویت', messageField: 'پیام', messagePlaceholder: 'مشکلت را با جزئیات توضیح بده…', submitTicket: 'ثبت تیکت', creating: 'در حال ساخت…', noTickets: 'هنوز تیکتی نداری', noTicketsHint: 'اگر به کمک نیاز داری یک تیکت بساز', createdSuccess: 'تیکت با موفقیت ساخته شد', createFailed: 'ساخت تیکت ناموفق بود', messages: '{n} پیام', msg: '{n} پیام', back: 'بازگشت', notFound: 'تیکت پیدا نشد', by: 'توسط', closeTicket: 'بستن تیکت', closedNotice: 'این تیکت بسته شده است. اگر باز هم کمک خواستی، تیکت جدیدی بساز.', replyPlaceholder: 'پاسخت را بنویس…', send: 'ارسال', replySent: 'پاسخ ارسال شد', replyFailed: 'ارسال پاسخ ناموفق بود', ticketClosed: 'تیکت بسته شد', unknown: 'ناشناس', ticketsTitle: 'تیکت‌های {dept}', totalTickets: '{n} تیکت در مجموع', unanswered: 'بی‌پاسخ', needResponse: 'نیازمند پاسخ', answered: 'پاسخ‌داده‌شده', waitingForUser: 'منتظر کاربر', totalOpen: 'مجموع باز', excludingClosed: 'به‌جز بسته‌ها', all: 'همه', noTicketsStaff: 'تیکتی نیست', noStatusTickets: 'تیکت «{status}» وجود ندارد', noDeptTickets: 'در این بخش تیکتی نیست', allTickets: 'همهٔ تیکت‌ها', allTicketsSubtitle: 'نمای کلیِ همهٔ تیکت‌های پشتیبانی در همهٔ بخش‌ها', totalTicketsStat: 'کل تیکت‌ها', needStaffResponse: 'نیازمند پاسخ پشتیبان', avgResponseTime: 'میانگین زمان پاسخ', byDepartment: 'بر اساس بخش', departmentLabel: 'بخش:', statusLabel: 'وضعیت:', noTicketsFound: 'تیکتی پیدا نشد', minutes: '{n} دقیقه', hours: '{n} ساعت', days: '{n} روز', }, invoices: { status: { draft: 'پیش‌نویس', issued: 'پرداخت‌نشده', partially_paid: 'پرداخت جزئی', paid: 'پرداخت‌شده', void: 'باطل', failed: 'ناموفق', }, title: 'فاکتورها', subtitle: 'ببین هر پرداخت بابت چه بوده و فاکتورهای باز را پرداخت کن.', walletBalance: 'موجودی کیف‌پول', toman: 'تومان', filterAll: 'همه', filterUnpaid: 'پرداخت‌نشده', loadingInvoices: 'در حال بارگذاری فاکتورها…', noInvoices: 'فاکتوری پیدا نشد', total: 'مجموع', due: 'مانده', paidLabel: 'پرداخت‌شده', method: 'روش', selectInvoice: 'برای دیدن جزئیات یک فاکتور را انتخاب کن', downloadPdf: 'دانلود PDF', lineItems: 'اقلام', payment: 'پرداخت', walletCoversNote: 'موجودی کیف‌پول {wallet} تومان را پوشش می‌دهد. مابقی {rest} تومان از طریق درگاه پرداخت می‌شود.', processing: 'در حال پردازش…', pay: 'پرداخت', paidOn: 'پرداخت‌شده در {date}', paymentFailed: 'پرداخت ناموفق بود', waitingRemaining: 'منتظر پرداخت مابقی.', paymentComplete: 'پرداخت کامل شد', paymentCompleteUpdated: 'پرداخت کامل شد و سرویس به‌روزرسانی شد', gatewayFailed: 'پرداخت درگاهی ناموفق بود', invoicePaid: 'فاکتور پرداخت شد', invoicePaidUpdated: 'فاکتور پرداخت شد و سرویس به‌روزرسانی شد', downloadFailed: 'دانلود PDF فاکتور ناموفق بود', adminTitle: 'مدیریت فاکتورها', adminSubtitle: 'پیگیری همهٔ فاکتورهای کاربران، پرداخت‌ها، ارجاع درگاه و تراکنش‌های کیف‌پول.', searchPlaceholder: 'جستجوی فاکتور، ایمیل یا اپلیکیشن', allStatuses: 'همهٔ وضعیت‌ها', allMethods: 'همهٔ روش‌ها', methodWallet: 'کیف‌پول', methodGateway: 'درگاه', methodMixed: 'ترکیبی', colInvoice: 'فاکتور', colUser: 'کاربر', colStatus: 'وضعیت', colMethod: 'روش', colDue: 'مانده', selectInvoiceShort: 'یک فاکتور را انتخاب کن', tracking: 'کد رهگیری', transactions: 'تراکنش‌ها', noTransactions: 'هنوز تراکنشی متصل نشده', manualStatusChange: 'تغییر دستی وضعیت', reasonPlaceholder: 'برای ثبت در لاگ، ذکر دلیل الزامی است', failedBtn: 'ناموفق', voidBtn: 'باطل', statusUpdated: 'وضعیت فاکتور به‌روزرسانی شد', statusUpdateFailed: 'به‌روزرسانی وضعیت فاکتور ناموفق بود', reasonRequired: 'برای تغییر دستی وضعیت، ذکر دلیل الزامی است', }, }, }; export type Dictionary = typeof fa; export default fa;