Files
meezi/web/dashboard/messages/fa.json
T
soroush.asadi d811b7d6d5
CI/CD / CI · API (dotnet build + test) (push) Successful in 47s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 28s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m6s
CI/CD / CI · Admin Web (tsc) (push) Successful in 40s
CI/CD / CI · Website (tsc) (push) Successful in 44s
CI/CD / CI · Koja (tsc) (push) Successful in 50s
CI/CD / Deploy · all services (push) Successful in 2m43s
feat(dashboard): simplify navigation — frequency-based IA
The sidebar had 22 items in 5 accordion groups, all defaulting closed:
first visit showed five vague headers and zero destinations, there was
no Dashboard/Home link at all, and rare pages (taxes, subscription) had
equal weight with POS. Restructured around usage frequency:

- Flat primary (always visible, no header): Dashboard, POS, Tables,
  Kitchen, Queue, Reservations, Menu, Reports
- Two collapsible groups: Customers & marketing (crm, coupons, sms,
  reviews, discover) and Café management (inventory, expenses, shifts,
  taxes, hr, branches)
- Footer utility icons: settings, subscription, support
- Removed "notifications" from the nav (duplicate of the topbar bell)

Other fixes folded in:
- Deleted [locale]/page.tsx which redirected "/" to /pos — it made the
  POS exit button a no-op loop and left OverviewScreen unreachable.
  "/" now renders the overview home; login still lands on /pos.
- Branch gating moved from group-level to an item whitelist
  (BRANCH_ALLOWED_NAV_KEYS) — also closes the hole where branch
  accounts could deep-link to /reports etc. past the RouteGuard.
- RouteGuard now checks footer items too (subscription stays gated).
- revalidate=300 on the locale layout: Next emitted s-maxage=31536000
  and the WCDN edge kept serving year-old HTML shells after deploys.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 22:06:59 +03:30

1731 lines
76 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "ذخیره",
"cancel": "انصراف",
"confirm": "تأیید",
"delete": "حذف",
"search": "جستجو",
"loading": "در حال بارگذاری...",
"logout": "خروج",
"language": "زبان",
"comingSoon": "به‌زودی",
"edit": "ویرایش"
},
"confirm": {
"title": "تأیید عملیات",
"confirm": "تأیید",
"cancel": "انصراف"
},
"notify": {
"saved": "ذخیره شد",
"errorGeneric": "خطایی رخ داد. دوباره تلاش کنید."
},
"errors": {
"planLimit": "به سقف پلن رسیده‌اید. برای ادامه ارتقا دهید",
"notFound": "یافت نشد",
"unauthorized": "دسترسی ندارید",
"network": "خطای ارتباط با سرور",
"generic": "خطایی رخ داد. دوباره تلاش کنید.",
"OFFLINE_UNAVAILABLE": "برای این کار به اینترنت نیاز است. لطفاً پس از اتصال دوباره تلاش کنید."
},
"brand": {
"name": "میزی"
},
"languages": {
"fa": "فارسی",
"ar": "العربية",
"en": "English"
},
"auth": {
"title": "ورود به میزی",
"subtitle": "کد تأیید به موبایل شما ارسال می‌شود",
"phone": "شماره موبایل",
"phonePlaceholder": "۰۹۱۲۱۲۳۴۵۶۷",
"sendOtp": "ارسال کد",
"otp": "کد تأیید",
"otpPlaceholder": "۶ رقم",
"verify": "ورود",
"resend": "ارسال مجدد",
"rateLimited": "تعداد درخواست کد بیش از حد است. حداکثر یک ساعت صبر کنید یا با پشتیبانی تماس بگیرید.",
"notFound": "حسابی با این شماره موبایل یافت نشد.",
"smsFailed": "ارسال پیامک ناموفق بود. دوباره تلاش کنید.",
"invalidOtp": "کد تأیید نادرست یا منقضی شده است.",
"register": "ثبت‌نام",
"registerSubtitle": "کافه خود را در میزی ثبت کنید",
"cafeName": "نام کافه یا رستوران",
"cafeNamePlaceholder": "مثال: کافه رویا",
"createAccount": "ایجاد حساب",
"alreadyHaveAccount": "حساب دارید؟",
"loginLink": "ورود",
"noAccount": "حساب ندارید؟",
"registerLink": "ثبت‌نام",
"alreadyRegistered": "این شماره قبلاً ثبت‌نام کرده است. لطفاً وارد شوید.",
"registrationExpired": "زمان ثبت‌نام منقضی شد. دوباره تلاش کنید.",
"chooseCafe": "انتخاب کافه",
"chooseCafeSubtitle": "این شماره به چند کافه دسترسی دارد. یکی را انتخاب کنید.",
"createNewCafe": "ایجاد کافه جدید",
"createNewCafeHint": "می‌خواهید کافه خودتان را با همین شماره راه‌اندازی کنید؟",
"tabOtp": "کد یکبارمصرف",
"tabPassword": "رمز عبور",
"username": "نام کاربری",
"usernamePlaceholder": "نام کاربری",
"password": "رمز عبور",
"passwordPlaceholder": "رمز عبور",
"invalidCredentials": "نام کاربری یا رمز عبور اشتباه است.",
"kojaSlug": "آدرس پروفایل در کوجا",
"kojaSlugHint": "بازدیدکنندگان از این آدرس کافه شما را پیدا می‌کنند",
"kojaSlugPlaceholder": "مثال: cafe-roya"
},
"roles": {
"owner": "مالک",
"manager": "مدیر",
"cashier": "صندوق‌دار",
"waiter": "گارسون",
"chef": "آشپز",
"delivery": "پیک",
"unknown": "کاربر"
},
"branchSwitcher": {
"title": "شعبه فعال",
"allBranches": "همه شعب",
"selectBranch": "انتخاب شعبه"
},
"branchAccess": {
"title": "دسترسی شعب",
"staff": "کارکنان",
"noStaff": "کارمندی ثبت نشده است",
"selectStaff": "یک کارمند را برای مدیریت دسترسی انتخاب کنید",
"ownerNote": "مالک به همه شعب دسترسی دارد و نیازی به تعیین نقش شعبه‌ای ندارد.",
"noAssignments": "هنوز نقشی برای شعبه‌ای تعیین نشده است",
"loading": "در حال بارگذاری...",
"branch": "شعبه",
"role": "نقش",
"selectBranch": "انتخاب شعبه",
"add": "افزودن",
"remove": "حذف"
},
"access": {
"deniedTitle": "دسترسی به این صفحه ندارید",
"deniedBody": "نقش شما اجازه مشاهده این صفحه را ندارد. در صورت نیاز با مدیر یا مالک هماهنگ کنید."
},
"nav": {
"aria": "منوی اصلی",
"collapseSidebar": "جمع کردن نوار کناری",
"expandSidebar": "باز کردن نوار کناری",
"groups": {
"customers": "مشتریان و بازاریابی",
"management": "مدیریت کافه"
},
"home": "داشبورد",
"pos": "صندوق",
"tables": "میزها",
"crm": "مشتریان",
"coupons": "کوپن‌ها",
"menu": "منو",
"inventory": "انبار",
"hr": "منابع انسانی",
"reports": "گزارش‌ها",
"expenses": "هزینه‌ها",
"shifts": "بستن شیفت",
"reviews": "نظرات",
"reservations": "رزرو",
"sms": "پیامک",
"taxes": "مالیات",
"branches": "شعب",
"subscription": "اشتراک و پلن",
"support": "پشتیبانی",
"settings": "تنظیمات",
"kds": "آشپزخانه",
"notifications": "اعلان‌ها",
"queue": "نوبت‌دهی",
"discover": "کشف کافه‌ها"
},
"dashboard": {
"cafeName": "کافه دمو",
"planPro": "پرو",
"online": "متصل",
"offline": "آفلاین",
"activePlan": "پلن فعال",
"editCafeSettings": "تنظیمات کافه",
"viewSubscription": "اشتراک و پلن",
"switchCafe": "تغییر کافه",
"currentCafe": "کافه فعلی",
"otherCafes": "کافه‌های دیگر",
"createNewCafe": "ایجاد کافه جدید",
"openMenu": "منو",
"switchCafeError": "تغییر کافه ناموفق بود. دوباره تلاش کنید."
},
"overview": {
"title": "خانه",
"greeting": "خوش‌آمدید",
"todayRevenue": "فروش امروز",
"todayOrders": "سفارش‌های امروز",
"netIncome": "درآمد خالص",
"avgOrder": "میانگین سفارش",
"revenueChart": "روند فروش ۷ روز",
"tableStatus": "وضعیت میزها",
"tableFree": "آزاد",
"tableBusy": "اشغال",
"tableCleaning": "نظافت",
"tableTotal": "کل میزها",
"topProducts": "پرفروش‌ترین آیتم‌ها",
"vsYesterday": "نسبت به دیروز",
"noData": "داده‌ای موجود نیست",
"quickLinks": "دسترسی سریع",
"unit": "قلم"
},
"pos": {
"order": "سفارش",
"table": "میز",
"total": "مبلغ نهایی",
"subtotal": "جمع جزء",
"tax": "مالیات",
"discount": "تخفیف",
"confirmOrder": "ثبت و پرداخت",
"modeOrder": "ثبت سفارش",
"modePay": "پرداخت",
"takeOrder": "سفارش‌گیری",
"submitOrder": "ثبت سفارش",
"submitOrderAndPay": "ثبت سفارش و پرداخت",
"orderPaidNew": "سفارش ثبت و پرداخت شد",
"orderPaidAdd": "آیتم‌ها ثبت و پرداخت شد",
"posDeviceSent": "مبلغ به دستگاه پوز ارسال شد",
"posDeviceError": "ارسال به دستگاه پوز ناموفق بود",
"posDeviceNotConfigured": "دستگاه پوز تنظیم نشده — فقط پرداخت در سیستم ثبت شد",
"posDeviceConnectionFailed": "اتصال به دستگاه پوز برقرار نشد",
"posDeviceTimeout": "زمان انتظار دستگاه پوز تمام شد",
"posDeviceRejected": "دستگاه پوز پرداخت را رد کرد",
"posDeviceNoBranch": "شعبه برای ارسال به پوز مشخص نیست",
"kitchenSlip": "فیش آشپزخانه (پیش‌نمایش و چاپ)",
"queueNumber": "نوبت {number}",
"orderPlaced": "سفارش ثبت شد — برای دریافت وجه به «پرداخت» بروید",
"guestName": "نام مهمان",
"guestNamePlaceholder": "مثلاً علی",
"needTableOrName": "میز، مشتری، یا نام مهمان را وارد کنید",
"openOrders": "سفارش‌های باز",
"openOrdersHint": "سفارش‌هایی که هنوز پرداخت نشده‌اند",
"noOpenOrders": "سفارش بازی برای پرداخت نیست",
"payOrder": "پرداخت",
"payFor": "پرداخت برای",
"selectOrderToPay": "یک سفارش از لیست انتخاب کنید",
"confirmPay": "دریافت وجه",
"confirmPayCash": "دریافت وجه (نقد)",
"confirmPayCard": "دریافت وجه (کارت)",
"confirmPayCredit": "دریافت وجه (اعتبار)",
"confirmPaySplit": "دریافت وجه (ترکیبی)",
"previewBill": "پیش‌نمایش و چاپ صورتحساب",
"paySuccess": "پرداخت ثبت شد",
"payError": "خطا در ثبت پرداخت",
"payNeedsOpenShift": "ابتدا صندوق این شعبه را باز کنید (شیفت)",
"cancelOrder": "لغو سفارش (بدون پرداخت)",
"cancelOrderConfirm": "مشتری بدون پرداخت رفته است؟ سفارش لغو می‌شود و میز آزاد می‌شود.",
"cancelOrderSuccess": "سفارش لغو شد",
"cancelOrderError": "لغو سفارش ناموفق بود",
"cancelReasonPlaceholder": "دلیل لغو (اختیاری)",
"cancelOrderHasPayments": "ابتدا پرداخت‌های ثبت‌شده را بازگردانید، سپس سفارش را لغو کنید",
"itemsCount": "قلم",
"applyCoupon": "اعمال کوپن",
"couponPlaceholder": "کد کوپن",
"couponCode": "کد کوپن",
"selectTable": "میز",
"emptyCart": "سبد خالی است",
"cash": "نقد",
"card": "کارت",
"clearCart": "پاک کردن",
"allCategories": "همه",
"searchItems": "جستجوی آیتم",
"searchItemsPlaceholder": "نام آیتم را جستجو کنید…",
"searchNoResults": "آیتمی با این عبارت یافت نشد",
"reservationBanner": "رزرو: {name} — آیتم‌ها را اضافه کنید و «ثبت و پرداخت» بزنید",
"orderSuccess": "سفارش ثبت شد",
"orderError": "خطا در ثبت سفارش",
"orderInvalid": "سفارش نامعتبر است (منو یا میز را بررسی کنید)",
"orderNotOpen": "این سفارش دیگر باز نیست",
"orderValidation": "اطلاعات سفارش نامعتبر است",
"nothingPending": "آیتم جدیدی برای ارسال به آشپزخانه نیست",
"couponApplied": "کوپن «{code}» اعمال شد — {amount} تخفیف",
"couponActive": "کوپن {code}",
"couponRemoved": "کوپن حذف شد",
"removeCoupon": "حذف",
"couponInvalid": "کد کوپن نامعتبر است",
"couponExpired": "این کوپن منقضی شده است",
"couponNotStarted": "این کوپن هنوز فعال نیست",
"couponLimitReached": "سقف استفاده از این کوپن پر شده",
"couponMinOrder": "حداقل مبلغ سفارش برای این کوپن رعایت نشده",
"couponCartEmpty": "ابتدا آیتم به سبد اضافه کنید",
"couponRequired": "کد کوپن را وارد کنید",
"guestPhone": "موبایل مهمان",
"guestPhonePlaceholder": "09121234567",
"selectTableBoard": "انتخاب میز",
"loadingTables": "بارگذاری میزها...",
"selectBranchForTables": "ابتدا شعبه را انتخاب کنید",
"noTablesOnBoard": "میزی برای این شعبه ثبت نشده. از بخش میزها میز اضافه کنید.",
"tablesLoadError": "بارگذاری میزها ناموفق بود",
"retryTables": "تلاش مجدد",
"manageTablesLink": "رفتن به مدیریت میزها",
"sessionActive": "سفارش فعال روی میز",
"addToOrder": "به سفارش میز اضافه شد",
"void": "ابطال",
"voidItem": "ابطال آیتم",
"voided": "ابطال شده",
"itemNotePlaceholder": "یادداشت برای آشپزخانه/بار (اختیاری)",
"confirmVoid": "آیا مطمئن هستید که می‌خواهید این آیتم را ابطال کنید؟",
"voidError": "خطا در ابطال آیتم",
"transferTable": "انتقال میز",
"selectTargetTable": "میز مقصد را انتخاب کنید",
"transferSuccess": "سفارش با موفقیت منتقل شد",
"transferError": "خطا در انتقال میز",
"tableNotAvailable": "میز در حال نظافت است",
"tableOccupied": "میز مشغول است",
"searchOpenOrder": "میز، نام، موبایل یا شناسه سفارش...",
"paidSoFar": "پرداخت‌شده",
"remaining": "مانده",
"loyaltyBalance": "امتیاز مشتری: {points}",
"loyaltyUseMax": "حداکثر",
"loyaltyRedeemHint": "هر ۱ امتیاز = ۱۰۰ ت تخفیف روی همین پرداخت",
"loyaltyRedeemApplied": "تخفیف امتیاز",
"loyaltyNoCustomer": "برای استفاده از امتیاز، مشتری را به سفارش وصل کنید",
"loyaltyInsufficient": "امتیاز کافی نیست",
"splitPayments": "پرداخت ترکیبی",
"addPaymentRow": "ردیف پرداخت",
"credit": "اعتبار",
"paySelectTable": "انتخاب میز (اشغال)",
"payPickByName": "یا از نام / لیست سفارش‌های باز",
"payOpenOrdersHint": "میز اشغال را بزنید، از منوی میز انتخاب کنید، یا نام/موبایل را جستجو کنید",
"allTables": "همه میزها",
"noOrderOnTable": "سفارش بازی روی این میز نیست",
"noOpenOrdersOnTable": "سفارش بازی برای این میز نیست",
"customerSection": "مشتری",
"existingCustomer": "مشتری موجود",
"newCustomer": "مهمان جدید",
"customerSearchPlaceholder": "نام، موبایل یا کد ملی...",
"customerSearchHint": "حداقل ۲ حرف برای جستجو",
"customerNotFound": "مشتری یافت نشد — مهمان جدید ثبت کنید",
"customerSaved": "مشتری در CRM ذخیره شد",
"customerSaveError": "خطا در ذخیره مشتری",
"customerPhoneExists": "این موبایل قبلاً ثبت شده — از جستجو انتخاب کنید",
"newCustomerHint": "می‌توانید فقط برای این سفارش نام بزنید یا با «افزودن مشتری» در CRM ذخیره کنید",
"offlineQueueNotice": "آفلاین ‐ سفارش در صف ذخیره شد و پس از اتصال ارسال می‌شود",
"orderTypePicker": "سفارش چطور ثبت می‌شود؟",
"orderTypeTable": "میز",
"orderTypeTableDesc": "مهمان روی میز می‌نشیند",
"orderTypeCounter": "پیشخوان",
"orderTypeCounterDesc": "بدون تخصیص میز",
"orderTypeTakeaway": "بیرون‌بر",
"orderTypeTakeawayDesc": "سفارش برای بیرون",
"counterBadge": "پیشخوان",
"takeawayBadge": "بیرون‌بر",
"assignTable": "تخصیص میز",
"newOrder": "سفارش جدید"
},
"print": {
"printReceipt": "چاپ رسید",
"printKitchen": "ارسال به آشپزخانه",
"success": "رسید با موفقیت چاپ شد",
"notConfigured": "آدرس پرینتر تنظیم نشده است",
"connectionFailed": "خطا در اتصال به پرینتر",
"testPrint": "تست پرینت",
"printerSettings": "تنظیمات پرینتر",
"receiptPrinter": "پرینتر رسید",
"kitchenPrinter": "پرینتر آشپزخانه",
"paperWidth": "عرض کاغذ",
"autoCut": "برش خودکار",
"port": "پورت",
"receiptHeader": "سرتیتر رسید",
"receiptFooter": "پاورقی رسید",
"wifiOnReceipt": "رمز WiFi روی رسید",
"saveSettings": "ذخیره تنظیمات",
"settingsSaved": "تنظیمات پرینتر ذخیره شد",
"noBranchForPrinter": "برای تنظیم پرینتر ابتدا یک شعبه در سیستم ثبت کنید.",
"testPageHint": "یک رسید تست به پرینترهای ذخیره‌شده ارسال می‌شود. ابتدا IP و پورت را در تنظیمات پرینتر وارد کنید.",
"testPrintReceipt": "چاپ تست رسید",
"testPrintKitchen": "چاپ تست آشپزخانه",
"configurePrinters": "رفتن به تنظیمات پرینتر",
"posDeviceSection": "دستگاه پوز (کارتخوان)",
"posDeviceHint": "هنگام پرداخت کارتی، مبلغ به آدرس HTTP دستگاه ارسال می‌شود (POST /pay).",
"posDeviceIp": "آدرس IP دستگاه پوز"
},
"receipt": {
"table": "میز",
"order": "سفارش",
"guest": "مهمان",
"total": "مجموع",
"print": "چاپ",
"close": "بستن",
"thankYou": "ممنون از انتخاب شما",
"kitchenTitle": "فیش آشپزخانه / بار",
"billTitle": "صورتحساب مشتری",
"kitchenFooter": "— برای آشپزخانه —",
"payment": {
"cash": "نقد",
"card": "کارت",
"credit": "اعتبار"
}
},
"crm": {
"title": "مشتریان",
"searchPlaceholder": "نام، موبایل یا کد ملی...",
"addCustomer": "مشتری جدید",
"name": "نام",
"phone": "موبایل",
"nationalId": "کد ملی",
"birthDate": "تاریخ تولد (شمسی)",
"group": "گروه",
"loyaltyPoints": "امتیاز",
"noCustomers": "مشتری‌ای یافت نشد",
"groups": {
"Regular": "عادی",
"Vip": "ویژه",
"New": "جدید",
"Employee": "کارمند"
},
"wizard": {
"titleCreate": "ثبت مشتری جدید",
"titleEdit": "ویرایش مشتری",
"stepOf": "مرحله {current} از {total}",
"steps": {
"contact": "تماس",
"profile": "اطلاعات تکمیلی",
"loyalty": "گروه و امتیاز",
"confirm": "بازبینی"
},
"back": "قبلی",
"next": "بعدی",
"birthHint": "فرمت شمسی، مثلاً 1400/01/01",
"referredBy": "معرف (اختیاری)",
"loyaltyCreateHint": "امتیاز وفاداری پس از ثبت، از طریق سفارش‌ها قابل تنظیم است.",
"errors": {
"duplicatePhone": "این شماره موبایل قبلاً ثبت شده است.",
"generic": "ذخیره انجام نشد. دوباره تلاش کنید."
}
},
"deleted": "مشتری حذف شد",
"deleteConfirmTitle": "حذف مشتری",
"deleteConfirmDesc": "آیا از حذف «{name}» مطمئن هستید؟"
},
"coupons": {
"title": "کوپن‌ها",
"addCoupon": "کوپن جدید",
"code": "کد",
"type": "نوع",
"value": "مقدار",
"usage": "استفاده",
"active": "فعال",
"inactive": "غیرفعال",
"types": {
"Percentage": "درصد",
"FixedAmount": "مبلغ ثابت",
"FreeItem": "آیتم رایگان"
},
"noCoupons": "کوپنی ثبت نشده",
"deleted": "کوپن حذف شد",
"deleteConfirmTitle": "حذف کوپن",
"deleteConfirmDesc": "آیا از حذف کوپن «{code}» مطمئن هستید؟"
},
"hr": {
"title": "منابع انسانی",
"tabs": {
"attendance": "حضور و غیاب",
"leave": "مرخصی",
"payroll": "حقوق",
"access": "دسترسی شعب",
"credentials": "رمز ورود",
"team": "کارکنان"
},
"myAttendance": "حضور من",
"clockIn": "ورود",
"clockOut": "خروج",
"approve": "تأیید",
"noLeave": "درخواست مرخصی در انتظار نیست",
"paid": "پرداخت شده",
"markPaid": "ثبت پرداخت",
"employeeCount": "تعداد کارمندان",
"monthYear": "ماه حقوق",
"credentials": {
"title": "مدیریت رمز ورود کارمندان",
"subtitle": "برای هر کارمند می‌توانید نام کاربری و رمز عبور تعریف کنید تا بدون نیاز به کد OTP وارد شوند.",
"selectEmployee": "ابتدا یک کارمند انتخاب کنید",
"username": "نام کاربری",
"usernamePlaceholder": "مثال: ali_barista",
"password": "رمز عبور (حداقل ۸ کاراکتر)",
"passwordPlaceholder": "رمز عبور جدید",
"set": "ذخیره رمز ورود",
"remove": "حذف رمز ورود",
"removeConfirm": "آیا مطمئنید؟ کارمند دیگر نمی‌تواند با رمز عبور وارد شود.",
"saved": "رمز ورود ذخیره شد.",
"removed": "رمز ورود حذف شد.",
"usernameTaken": "این نام کاربری قبلاً استفاده شده است."
},
"addEmployee": "افزودن کارمند",
"noEmployees": "هنوز کارمندی ثبت نشده است.",
"employeeCreated": "کارمند اضافه شد",
"save": "ذخیره",
"cancel": "انصراف",
"fields": {
"name": "نام",
"phone": "موبایل",
"role": "نقش",
"branch": "شعبه",
"branchOptional": "اختیاری",
"noBranch": "بدون شعبه",
"baseSalary": "حقوق پایه (تومان)",
"optional": "اختیاری",
"enableLogin": "ایجاد نام کاربری و رمز ورود",
"username": "نام کاربری",
"password": "رمز عبور",
"passwordHint": "حداقل ۸ کاراکتر"
},
"roles": {
"Owner": "مالک",
"Manager": "مدیر",
"Cashier": "صندوق‌دار",
"Waiter": "گارسون",
"Chef": "آشپز",
"Delivery": "پیک"
}
},
"reviews": {
"title": "نظرات مشتریان",
"summary": "میانگین امتیاز",
"reviewCount": "{count} نظر",
"empty": "هنوز نظری ثبت نشده است.",
"ownerReply": "پاسخ کافه",
"reply": "پاسخ دادن",
"replyPlaceholder": "پاسخ خود را بنویسید..."
},
"sms": {
"title": "پیامک بازاریابی",
"message": "متن پیام",
"messagePlaceholder": "متن پیامک را بنویسید...",
"targetGroup": "گروه هدف",
"allCustomers": "همه مشتریان",
"send": "ارسال",
"usage": "مصرف این ماه",
"unlimited": "نامحدود",
"sent": "ارسال شد",
"failed": "ناموفق",
"charCount": "{count} حرف",
"smsPartsHint": "{parts} پیامک",
"balance": "اعتبار حساب",
"balanceAmount": "{amount} ریال",
"balanceNotConfigured": "Kavenegar پیکربندی نشده",
"sender": "خط فرستنده",
"recipientsCount": "{count} مخاطب",
"sendConfirm": "ارسال به {count} نفر؟",
"sending": "در حال ارسال..."
},
"reports": {
"title": "گزارش‌ها و تحلیل",
"subtitle": "خلاصه فروش بر اساس گزارش روزانه",
"exportCsv": "دانلود CSV",
"fromDate": "از تاریخ",
"toDate": "تا تاریخ",
"branch": "شعبه",
"allBranches": "همه شعبه‌ها",
"preset": {
"7d": "۷ روز",
"30d": "۳۰ روز",
"90d": "۹۰ روز"
},
"kpiTotalRevenue": "کل فروش",
"kpiTotalOrders": "تعداد سفارش",
"kpiAvgOrder": "میانگین سفارش",
"kpiNetIncome": "درآمد خالص",
"kpiTotalExpenses": "جمع هزینه‌ها",
"vsPrevious": "نسبت به دوره قبل",
"revenueChartTitle": "روند فروش روزانه",
"paymentMixTitle": "روش پرداخت",
"branchCompareTitle": "مقایسه شعب",
"topProductsTitle": "پرفروش‌ترین محصولات",
"colProduct": "نام محصول",
"colQuantity": "تعداد",
"colRevenue": "درآمد",
"revenue": "درآمد",
"cash": "نقد",
"card": "کارت",
"credit": "اعتبار",
"noData": "داده‌ای نیست",
"loading": "در حال بارگذاری...",
"csvDate": "تاریخ",
"csvBranch": "شعبه",
"csvTotalRevenue": "کل فروش",
"csvTotalOrders": "تعداد سفارش",
"csvAvgOrder": "میانگین سفارش",
"csvCash": "نقد",
"csvCard": "کارت",
"csvCredit": "اعتبار",
"csvNetIncome": "درآمد خالص",
"csvVoids": "ابطال‌ها",
"csvVoidAmount": "مبلغ ابطال",
"csvExpenses": "هزینه‌ها"
},
"shifts": {
"title": "شیفت صندوق",
"subtitle": "باز و بستن صندوق روزانه",
"branch": "شعبه",
"openShift": "باز کردن شیفت",
"shiftOpen": "شیفت باز است",
"startShift": "شروع شیفت",
"closeShift": "بستن شیفت",
"confirmClose": "تأیید بستن",
"openingCash": "موجودی اول صندوق",
"expectedCash": "مبلغ مورد انتظار",
"countedCash": "نقد شمارش‌شده",
"opened": "شیفت باز شد",
"closed": "شیفت بسته شد"
},
"expenses": {
"title": "هزینه‌ها",
"subtitle": "ثبت و پیگیری هزینه‌های شعبه",
"addExpense": "ثبت هزینه",
"listTitle": "لیست هزینه‌ها",
"branch": "شعبه",
"fromDate": "از تاریخ",
"toDate": "تا تاریخ",
"periodTotal": "جمع دوره",
"category": "دسته",
"amount": "مبلغ",
"note": "توضیح",
"notePlaceholder": "اختیاری",
"linkOpenShift": "کسر از صندوق باز (برداشت نقدی)",
"noOpenShift": "صندوق باز نیست — هزینه بدون ارتباط با شیفت ثبت می‌شود",
"colDate": "تاریخ",
"colCategory": "دسته",
"colNote": "توضیح",
"colAmount": "مبلغ",
"loading": "در حال بارگذاری...",
"empty": "هزینه‌ای ثبت نشده",
"rowCount": "{count} ردیف",
"categories": {
"Supplies": "ملزومات",
"Utilities": "آب و برق و گاز",
"Salary": "حقوق",
"Rent": "اجاره",
"Maintenance": "تعمیرات",
"Other": "سایر"
}
},
"queue": {
"title": "نوبت‌دهی روزانه",
"subtitle": "شماره نوبت هر روز از ۱ شروع می‌شود (بر اساس تاریخ ایران)",
"nowServing": "نوبت فعلی",
"lastIssued": "آخرین شماره",
"waitingCount": "{count} نفر در صف",
"issueNext": "شماره جدید",
"callNext": "فراخوانی نوبت بعدی",
"customerLabelPlaceholder": "نام مهمان (اختیاری)",
"dailyResetHint": "هر شب نیمه‌شب به‌وقت ایران شماره‌ها صفر می‌شوند.",
"empty": "امروز هنوز نوبتی صادر نشده.",
"issuedOnOrder": "نوبت {number}",
"openDisplay": "نمایشگر TV",
"displayMode": "نمایش تمام‌صفحه",
"exitDisplay": "بازگشت به پنل",
"displayWaitingLabel": "در صف",
"displayUpNext": "نوبت‌های بعدی",
"status": {
"Waiting": "در انتظار",
"Called": "فراخوانده",
"Done": "انجام شد",
"Cancelled": "لغو"
}
},
"kds": {
"title": "نمایشگر آشپزخانه",
"pending": "در انتظار",
"preparing": "در حال آماده‌سازی",
"ready": "آماده",
"table": "میز",
"noOrders": "سفارشی نیست",
"loading": "در حال بارگذاری...",
"live": "زنده",
"polling": "به‌روزرسانی دوره‌ای",
"advance": "مرحله بعد",
"status": {
"Pending": "در انتظار",
"Confirmed": "تأیید شده",
"Preparing": "در حال آماده‌سازی",
"Ready": "آماده",
"Delivered": "تحویل شده",
"Cancelled": "لغو شده"
},
"advanceTo": {
"Confirmed": "تأیید سفارش",
"Preparing": "شروع آماده‌سازی",
"Ready": "آماده شد",
"Delivered": "تحویل شد"
}
},
"tables": {
"title": "مدیریت میزها",
"addTable": "افزودن میز",
"number": "شماره میز",
"capacity": "ظرفیت",
"floor": "طبقه",
"floorPlan": "نقشه سالن",
"empty": "میزی ثبت نشده است.",
"emptyBranch": "برای این شعبه میزی ثبت نشده است.",
"allBranches": "همه شعب",
"branchFilter": "فیلتر شعبه",
"branch": "شعبه",
"branchUnassigned": "بدون شعبه",
"branchHint": "میزها متعلق به کافه شماست؛ شعبه فقط برای صندوق و گزارش است.",
"tableLabel": "میز {number}",
"meta": "ظرفیت {capacity} · طبقه {floor}",
"status": {
"Free": "آزاد",
"Busy": "مشغول",
"Reserved": "رزرو",
"Cleaning": "نظافت",
"free": "آزاد",
"occupied": "مشغول",
"reserved": "رزرو",
"cleaning": "نظافت"
},
"markCleaning": "نیاز به نظافت",
"markReady": "آماده پذیرش",
"activeOrder": "سفارش فعال",
"reserved": "رزرو شده",
"printQr": "چاپ QR",
"qrMenuUrl": "لینک منوی مهمان",
"openQrUrl": "باز کردن",
"copyQrUrl": "کپی لینک",
"qrUrlCopied": "لینک کپی شد",
"qrUrlCopyFailed": "کپی لینک ناموفق بود",
"reprintHint": "QR گم شده؟ همان دکمه — کد ثابت است.",
"deactivate": "غیرفعال",
"inactive": "غیرفعال",
"edit": "ویرایش",
"editTable": "ویرایش میز",
"reactivate": "فعال‌سازی مجدد",
"saveTable": "ذخیره میز",
"media": "تصویر و ویدیو میز",
"section": "بخش",
"sections": "بخش‌ها",
"addSection": "افزودن بخش",
"noSection": "بدون بخش",
"noSectionsYet": "هنوز بخشی تعریف نشده است.",
"sectionTableCount": "{count} میز",
"sectionHasTables": "این بخش دارای میز است و قابل حذف نیست",
"tableHasOpenOrder": "این میز دارای سفارش باز است",
"deleteTable": "حذف میز",
"deleteTableConfirm": "این میز برای همیشه حذف شود؟ (فقط وقتی سفارش باز ندارد)",
"deleteError": "حذف میز ناموفق بود",
"createError": "افزودن میز ناموفق بود",
"cleaningError": "تغییر وضعیت نظافت ناموفق بود"
},
"menuAdmin": {
"title": "مدیریت منو",
"subtitle": "تصویر، قیمت و تخفیف هر آیتم",
"categories": "دسته‌ها",
"items": "آیتم‌ها",
"addCategory": "دسته جدید",
"addItem": "افزودن",
"name": "نام",
"nameEn": "نام انگلیسی (برای مهمان خارجی)",
"price": "قیمت (ت)",
"category": "دسته",
"available": "موجود",
"unavailable": "ناموجود",
"discountPercent": "تخفیف (٪)",
"discountBadge": "تخفیف",
"uploadImage": "آپلود تصویر",
"imageReady": "تصویر آماده است",
"empty": "هنوز آیتمی نیست.",
"editItem": "ویرایش",
"editCategory": "ویرایش دسته",
"categoryIcon": "آیکون (ایموجی)",
"categoryImage": "تصویر دسته",
"iconTabPreset": "آیکون آماده",
"iconTabEmoji": "ایموجی",
"iconTabImage": "تصویر آپلود",
"iconStyleLabel": "سبک طراحی",
"iconPreview": "پیش‌نمایش:",
"clearIconPreset": "حذف آیکون",
"clearIconEmoji": "حذف ایموجی",
"categoryIconCustom": "یا ایموجی دلخواه",
"iconPresetGroupDrinks": "نوشیدنی",
"iconPresetGroupFood": "غذا",
"iconStyles": {
"flat": "فلت",
"modern": "مدرن",
"real": "واقعی",
"minimal": "مینیمال",
"outline": "خطی",
"soft": "نرم",
"bold": "پررنگ",
"gradient": "گرادیان",
"pastel": "پاستلی",
"duotone": "دو رنگ"
},
"iconEmojiGroups": {
"hotDrinks": "نوشیدنی گرم",
"coldDrinks": "نوشیدنی سرد",
"breakfast": "صبحانه",
"mains": "غذای اصلی",
"pastaPizza": "پاستا و پیتزا",
"desserts": "دسر و شیرینی",
"salads": "سالاد و سبزی",
"seafoodGrill": "گریل و دریایی",
"snacks": "اسنک و فست‌فود",
"vegan": "گیاهی",
"specials": "ویژه و پرومو",
"general": "عمومی"
},
"iconPresets": {
"drinks-hot": "قهوه گرم",
"drinks-cold": "نوشیدنی سرد",
"drinks-tea": "چای",
"drinks-juice": "آبمیوه",
"drinks-milkshake": "شیر و اسموتی",
"drinks-alcohol": "شراب",
"drinks-beer": "آبجو",
"breakfast": "صبحانه",
"food-mains": "غذای اصلی",
"food-fastfood": "فست‌فود",
"food-rice": "برنج و پلو",
"pasta-pizza": "پاستا و پیتزا",
"dessert": "دسر",
"ice-cream": "بستنی",
"bakery": "نان و شیرینی",
"salad": "سالاد",
"grill": "گریل",
"seafood": "دریایی",
"snacks": "ساندویچ",
"snacks-sweet": "شیرینی خشک",
"appetizers": "پیش‌غذا",
"vegan": "گیاهی",
"fruits": "میوه",
"specials": "ویژه",
"chef-special": "پیشنهاد سرآشپز",
"generic": "عمومی"
},
"media": "تصویر و ویدیو",
"tabCatalog": "کاتالوگ",
"tabBranch": "تنظیمات شعبه",
"selectBranchForOverrides": "برای تنظیم منوی شعبه، یک شعبه از بالا انتخاب کنید.",
"allItems": "همه آیتم‌ها",
"searchItemsPlaceholder": "جستجوی آیتم‌ها…",
"itemCount": "{count} آیتم",
"noItemsInCategory": "هنوز آیتمی در این دسته نیست",
"noItemsMatchSearch": "آیتمی با این عبارت یافت نشد",
"outOfStock": "ناموجود",
"newItem": "آیتم جدید",
"newCategory": "دسته جدید",
"editCategoryTitle": "ویرایش دسته",
"close": "بستن",
"saving": "در حال ذخیره…",
"model3d": "مدل سه‌بعدی",
"nameEnOptional": "نام انگلیسی (اختیاری)",
"addItemSuccess": "آیتم اضافه شد",
"updateItemSuccess": "آیتم به‌روز شد",
"addCategorySuccess": "دسته اضافه شد",
"updateCategorySuccess": "دسته به‌روز شد",
"deleteItemConfirmTitle": "حذف آیتم",
"deleteItemConfirmDesc": "آیا از حذف «{name}» مطمئن هستید؟ این عمل قابل بازگشت نیست.",
"deleteItemSuccess": "آیتم حذف شد",
"deleteCategoryConfirmTitle": "حذف دسته‌بندی",
"deleteCategoryConfirmDesc": "آیا از حذف دسته «{name}» مطمئن هستید؟",
"deleteCategorySuccess": "دسته حذف شد"
},
"branchMenu": {
"title": "منوی شعبه",
"name": "نام",
"masterPrice": "قیمت اصلی",
"branchPrice": "قیمت شعبه",
"availability": "وضعیت",
"available": "فعال",
"unavailable": "غیرفعال",
"resetOverride": "بازنشانی",
"savePrice": "ذخیره",
"actions": "عملیات",
"priceOverridePro": "قیمت‌گذاری اختصاصی برای پلن Pro",
"overrideActive": "تنظیمات شعبه فعال",
"confirmReset": "آیا می‌خواهید تنظیمات این آیتم را به حالت پیش‌فرض برگردانید؟",
"loading": "در حال بارگذاری..."
},
"media": {
"uploadImage": "آپلود تصویر",
"uploadVideo": "آپلود ویدیو",
"removeImage": "حذف تصویر",
"removeVideo": "حذف ویدیو",
"upload3dTitle": "نمای سه‌بعدی (اختیاری)",
"upload3dHint": "فایل GLB تا {maxMb} مگابایت — با لمس، مهمان می‌تواند آیتم را بچرخاند",
"upload3dPhotoCount": "علاوه بر عکس کاور: یک مدل GLB کافی است. برای چرخش ۳۶۰° با عکس (آینده): {min} تا {ideal} عکس از زوایای مختلف",
"upload3d": "آپلود مدل ۳D",
"remove3d": "حذف مدل",
"upload3dReady": "مدل ۳D آماده نمایش در منوی QR است",
"ai3dTitle": "تولید مدل ۳D با هوش مصنوعی",
"ai3dHint": "از عکس محصول، مدل GLB برای منوی QR ساخته می‌شود (پلن کسب‌وکار و بالاتر).",
"ai3dGenerate": "ساخت ۳D با AI",
"ai3dGenerating": "در حال ساخت…",
"ai3dUsage": "سهمیه ماهانه: {used} از {limit}",
"ai3dSuccess": "مدل ۳D ساخته شد.",
"ai3dFailed": "ساخت مدل ۳D ناموفق بود.",
"ai3dLimitReached": "سهمیه ماهانه AI (۱۰۰ بار) تمام شده است.",
"ai3dNoImage": "ابتدا عکس محصول را آپلود کنید."
},
"taxes": {
"title": "مالیات و عوارض",
"subtitle": "نرخ مالیات برای دسته‌های منو",
"addTax": "افزودن مالیات",
"name": "نام (مثلاً مالیات بر ارزش افزوده)",
"rate": "نرخ (٪)",
"hint": "مالیات پیش‌فرض روی دسته‌های جدید اعمال می‌شود. ارسال به تاراز از تنظیمات.",
"empty": "مالیاتی تعریف نشده.",
"default": "پیش‌فرض",
"setDefault": "پیش‌فرض کن",
"delete": "حذف",
"deleteConfirm": "«{name}» از لیست حذف شود؟ دسته‌های منو که به این مالیات وصل بودند به مالیات پیش‌فرض بعدی (یا بدون مالیات) منتقل می‌شوند.",
"required": "اجباری",
"optional": "اختیاری",
"ownerOnly": "فقط مالک کافه می‌تواند مالیات را تغییر دهد."
},
"branches": {
"label": "شعبه"
},
"inventory": {
"title": "انبار",
"subtitle": "مواد اولیه، رسپی هر آیتم منو و کسر خودکار پس از سفارش",
"description": "موجودی مواد را ثبت و تنظیم کنید.",
"tabMaterials": "مواد",
"tabRecipes": "رسپی منو",
"addIngredient": "ماده جدید",
"name": "نام",
"unit": "واحد",
"unitHint": "گرم، میلی‌لیتر، عدد...",
"unitCustom": "واحد دیگر (دستی)",
"unitCustomPlaceholder": "مثلاً فنجان، شات",
"unitsHelp": "واحد برای موجودی و رسپی: عدد (لیوان)، گرم، میلی‌لیتر و... — مقدار فعلی با +/- زیر هر کارت تغییر می‌کند.",
"units": {
"piece": "عدد (شمارشی)",
"gram": "گرم",
"kilogram": "کیلوگرم",
"milliliter": "میلی‌لیتر",
"liter": "لیتر",
"cc": "سی‌سی",
"pack": "بسته",
"can": "قوطی",
"bag": "کیسه"
},
"editIngredient": "ویرایش ماده",
"updated": "ماده به‌روز شد",
"quantityEditHint": "موجودی فقط با فیلد +/- در همین کارت",
"quantity": "موجودی فعلی",
"parLevel": "سطح پر (مثلاً ۵۰۰ گرم)",
"unitCost": "قیمت واحد (تومان)",
"warningPercent": "درصد هشدار کمبود",
"reorderLevel": "حد مطلق هشدار",
"reorder": "حد هشدار",
"warningAt": "هشدار زیر",
"stockValue": "ارزش موجودی",
"lowStock": "کمبود",
"lowStockAlert": "مواد زیر سطح هشدار — موجودی را شارژ کنید",
"adjust": "اعمال",
"adjustDelta": "+/- مقدار",
"adjustNote": "تنظیم دستی",
"adjusted": "موجودی به‌روز شد",
"created": "ماده ثبت شد",
"empty": "ماده‌ای ثبت نشده.",
"defaultUnit": "عدد",
"selectMenuItem": "آیتم منو",
"selectMenuItemPlaceholder": "انتخاب کنید...",
"recipeLines": "مواد مصرفی برای هر واحد فروش",
"perUnit": "مقدار",
"pickIngredient": "ماده",
"addLine": "افزودن",
"saveRecipe": "ذخیره رسپی",
"recipeSaved": "رسپی ذخیره شد",
"materialCostPerUnit": "هزینه مواد هر واحد",
"recipeHint": "مثال: اسپرسو = ۱۰ گرم پودر قهوه برای هر فنجان؛ با ۱۰ سفارش، ۱۰۰ گرم کم می‌شود.",
"totalPaid": "مبلغ پرداختی (تومان)",
"impliedUnitCost": "قیمت واحد محاسبه‌شده",
"purchaseNote": "خرید / ورود به انبار",
"purchaseHint": "برای ورود موجودی (+) مبلغ پرداختی را وارد کنید — در هزینه‌ها و گزارش ثبت می‌شود.",
"purchaseRequired": "برای افزایش موجودی، مبلغ پرداختی و شعبه لازم است.",
"purchasesThisMonth": "خرید مواد این ماه",
"purchaseCount": "{count} خرید",
"viewInExpenses": "مشاهده در هزینه‌ها",
"selectBranchForPurchases": "برای ثبت خرید انبار، ابتدا شعبه را از نوار بالا انتخاب کنید.",
"deleted": "ماده حذف شد",
"deleteConfirmTitle": "حذف ماده",
"deleteConfirmDesc": "آیا از حذف «{name}» مطمئن هستید؟ این عمل قابل بازگشت نیست."
},
"qr": {
"brand": "میزی",
"notFound": "میز یافت نشد",
"loadError": "خطا در بارگذاری",
"tableLabel": "میز {number}",
"hint": "برای سفارش، اپلیکیشن میزی را باز کنید یا به صندوق مراجعه کنید.",
"discoverCta": "کافه‌یاب میزی"
},
"qrMenu": {
"loading": "در حال بارگذاری...",
"welcome": "خوش آمدید",
"tableLabel": "میز",
"tableNotFound": "میز یافت نشد یا منو در دسترس نیست",
"tableCleaning": "میز در حال نظافت است — لطفاً کارکنان را مطلع کنید",
"loadError": "خطا در بارگذاری منو",
"scanAgain": "لطفاً دوباره کد QR را اسکن کنید",
"addToCart": "افزودن",
"viewCart": "مشاهده سبد خرید",
"cartTitle": "سبد خرید",
"placeOrder": "ثبت سفارش",
"orderPlaced": "سفارش ثبت شد!",
"orderNumber": "شماره سفارش: {number}",
"orderHint": "کارکنان به زودی سفارش شما را آماده می‌کنند",
"guestName": "نام شما (اختیاری)",
"guestPhone": "شماره موبایل (اختیاری)",
"itemNote": "یادداشت (مثلاً بدون گوجه، کم‌شکر)",
"addMoreItems": "افزودن آیتم دیگر",
"orderError": "خطا در ثبت سفارش. دوباره امتحان کنید",
"orderSaveError": "سفارش ثبت شد اما ذخیره محلی ناموفق بود. صفحه را رفرش نکنید.",
"rateLimited": "درخواست‌های زیاد — لطفاً چند دقیقه صبر کنید",
"captchaRequired": "لطفاً تأیید امنیتی را تکمیل کنید",
"cafeUnavailable": "این کافه موقتاً در دسترس نیست",
"subtotal": "جمع کل",
"searchPlaceholder": "جستجو در منو...",
"allCategories": "همه",
"searchNoResults": "آیتمی با این عبارت پیدا نشد",
"clearSearch": "پاک کردن جستجو",
"emptyCategory": "آیتمی در این دسته نیست",
"view3d": "۳D",
"view3dHint": "با انگشت بچرخانید — مدل به‌صورت زنده می‌چرخد",
"close3d": "بستن",
"emptyMenu": "منوی این شعبه خالی است یا در دسترس نیست",
"guestQrBadge": "سفارش QR مهمان",
"tabMenu": "منو",
"tabOrders": "سفارش‌های من",
"callWaiter": "صدا کردن گارسون",
"callWaiterSent": "گارسون در راه است!",
"callWaiterCooldown": "لطفاً ۶۰ ثانیه صبر کنید",
"callWaiterError": "خطا — دوباره امتحان کنید",
"myOrders": "سفارش‌های این میز",
"noOrders": "هنوز سفارشی ثبت نکرده‌اید",
"tracking": {
"back": "بازگشت به منو",
"orderNumber": "شماره سفارش",
"table": "میز",
"loadError": "پیگیری سفارش ممکن نیست",
"currentStep": "در حال انجام",
"readyHint": "سفارش شما آماده است — از میز یا پیشخوان تحویل بگیرید",
"status": {
"pending": "در انتظار تأیید کافه",
"seen": "کافه سفارش را دید",
"preparing": "آشپزخانه شروع به آماده‌سازی کرد",
"ready": "آماده تحویل",
"done": "تحویل شد",
"cancelled": "لغو شد"
},
"steps": {
"submitted": "ثبت سفارش",
"seen": "دیده شد توسط رستوران",
"preparing": "در حال آماده‌سازی",
"ready": "آماده",
"done": "تحویل شده",
"cancelled": "لغو شده"
}
}
},
"notifications": {
"title": "اعلان‌ها",
"pageTitle": "اعلان‌ها",
"empty": "اعلانی نیست",
"emptyUnread": "اعلان خوانده‌نشده‌ای نیست",
"markAllRead": "خواندن همه",
"unreadCount": "{count} اعلان خوانده‌نشده",
"filterLabel": "فیلتر اعلان‌ها",
"filterAll": "همه",
"filterUnread": "خوانده‌نشده",
"loading": "در حال بارگذاری...",
"refreshing": "به‌روزرسانی...",
"backToList": "بازگشت به لیست"
},
"reservations": {
"title": "رزرو میز",
"guest": "مهمان",
"phone": "موبایل",
"date": "تاریخ",
"time": "ساعت",
"party": "نفر",
"table": "میز",
"tableOptional": "بدون میز مشخص",
"tableNumber": "میز {number}",
"notes": "یادداشت",
"confirm": "تأیید",
"cancel": "لغو",
"create": "ثبت رزرو",
"newReservation": "رزرو دستی",
"newReservationHint": "میز و زمان را مشخص کنید. هنگام حضور مهمان از «ثبت سفارش و پرداخت» در صندوق استفاده کنید.",
"openPos": "ثبت سفارش و پرداخت",
"markCompleted": "پایان ویزیت",
"empty": "رزروی نیست",
"status": {
"Pending": "در انتظار",
"Confirmed": "تأیید شده",
"Cancelled": "لغو شده",
"Seated": "نشسته",
"Completed": "انجام شده"
},
"deleted": "رزرو حذف شد",
"deleteConfirmTitle": "حذف رزرو",
"deleteConfirmDesc": "آیا از حذف رزرو «{name}» مطمئن هستید؟"
},
"branchesPage": {
"title": "شعب",
"subtitle": "مدیریت شعب کافه؛ هر شعبه با موبایل ورود جدا و زیر اشتراک کافه اصلی",
"listTitle": "لیست شعب",
"newName": "نام شعبه",
"loginPhone": "موبایل ورود شعبه",
"managerName": "نام مسئول شعبه",
"managerNamePlaceholder": "اختیاری — پیش‌فرض نام شعبه",
"addSection": "شعبه جدید",
"add": "افزودن شعبه",
"empty": "هنوز شعبه‌ای ثبت نشده.",
"created": "شعبه و حساب ورود اضافه شد.",
"createError": "خطا در افزودن شعبه (موبایل تکراری یا سقف پلن)",
"branchSelectHint": "در صندوق و نوبت‌دهی شعبه فعال را انتخاب کنید.",
"masterPlanHint": "اشتراک و مالیات فقط از حساب مالک کافه تنظیم می‌شود.",
"ownerOnly": "فقط مالک کافه می‌تواند شعب را مدیریت کند.",
"delete": "حذف شعبه",
"deleteTitle": "حذف شعبه؟",
"deleteWarning": "میزها، پرسنل، تنظیمات منوی شعبه و داده‌های وابسته حذف می‌شوند. تا ۷ روز می‌توانید شعبه را بازیابی کنید؛ پس از آن حذف دائمی انجام می‌شود.",
"deleteConfirm": "بله، حذف شعبه",
"deleteScheduled": "شعبه برای حذف ثبت شد. تا ۷ روز امکان بازیابی دارید.",
"deleteError": "حذف شعبه انجام نشد (شاید آخرین شعبه فعال باشد).",
"restore": "بازیابی",
"restored": "شعبه بازیابی شد.",
"restoreError": "بازیابی انجام نشد.",
"pendingTitle": "در انتظار حذف دائمی",
"pendingHint": "شعب زیر غیرفعال‌اند. پس از پایان مهلت، به‌طور کامل پاک می‌شوند.",
"purgeInDays": "حذف دائمی تا {days} روز دیگر",
"purgeInOneDay": "حذف دائمی تا فردا",
"purgeToday": "حذف دائمی امروز",
"review": "بررسی",
"reviewTitle": "جزئیات شعبه",
"location": "موقعیت"
},
"subscription": {
"title": "اشتراک و پلن",
"subtitle": "پلن فعلی، مصرف و ارتقا",
"currentPlan": "پلن فعلی",
"expires": "انقضا",
"noExpiry": "—",
"refresh": "بروزرسانی",
"ordersToday": "سفارش امروز",
"customers": "مشتریان",
"smsUsage": "پیامک این ماه",
"paymentSuccess": "پرداخت موفق بود. پلن شما به‌روز شد.",
"paymentFailed": "پرداخت ناموفق بود.",
"loading": "در حال بارگذاری...",
"ownerOnly": "فقط مالک کافه می‌تواند اشتراک را مدیریت کند. شعب زیر پوشش پلن کافه اصلی هستند.",
"paymentMethod": "روش پرداخت",
"planExpired": "اشتراک منقضی شده",
"featureMenu3d": "منوی سه‌بعدی",
"featureDiscover": "پروفایل کشف (هوش مصنوعی)",
"featureOn": "فعال",
"featureOff": "غیرفعال — ارتقا دهید",
"featureMenu3dUpgrade": "منوی ۳D در پلن حرفه‌ای و بالاتر فعال است.",
"featureMenuAi3d": "تولید ۳D با AI",
"featureMenuAi3dUpgrade": "تولید ۳D با هوش مصنوعی در پلن کسب‌وکار و سازمانی (۱۰۰ بار در ماه) فعال است.",
"checkout": {
"title": "پیش‌فاکتور و پرداخت",
"subtitle": "جزئیات سفارش را بررسی و پرداخت کنید",
"backToPlans": "بازگشت به پلن‌ها",
"invalidPlan": "پلن انتخاب‌شده برای خرید آنلاین معتبر نیست.",
"invoiceLabel": "پیش‌فاکتور",
"invoiceNo": "شماره فاکتور",
"issuedAt": "تاریخ صدور",
"billingPeriod": "مدت اشتراک",
"monthsCount": "{count} ماه",
"description": "شرح",
"qty": "تعداد",
"unitPrice": "قیمت واحد",
"amount": "مبلغ",
"planLine": "اشتراک پلن {plan}",
"subtotal": "جمع جزء",
"total": "مبلغ قابل پرداخت",
"secureNote": "پرداخت از طریق درگاه امن بانکی انجام می‌شود.",
"payTotal": "پرداخت {total}",
"redirecting": "در حال انتقال به درگاه...",
"paymentFailed": "پرداخت ناموفق بود. لطفاً دوباره امتحان کنید.",
"queuedNotice": "شما اشتراک فعالی دارید. این خرید در صف قرار می‌گیرد و از {date} آغاز می‌شود."
},
"queued": {
"title": "اشتراک‌های در صف",
"subtitle": "این اشتراک‌ها پس از پایان اشتراک فعلی به‌صورت خودکار فعال می‌شوند.",
"months": "{count} ماه",
"window": "از {from} تا {to}",
"cancel": "لغو",
"cancelled": "اشتراک در صف لغو شد",
"cancelConfirmTitle": "لغو اشتراک در صف",
"cancelConfirmDesc": "اشتراک {plan} که قرار بود از {from} آغاز شود لغو شود؟ اشتراک فعلی شما دست‌نخورده می‌ماند."
}
},
"settings": {
"title": "تنظیمات",
"subtitle": "کافه، پرینتر و یکپارچه‌سازی‌ها",
"terminals": {
"title": "ترمینال‌های فعال",
"hint": "پلن شما حداکثر {max} ترمینال همزمان دارد.",
"thisDevice": "این دستگاه",
"empty": "ترمینالی ثبت نشده",
"revoke": "حذف",
"revoked": "ترمینال حذف شد",
"loading": "در حال بارگذاری…"
},
"nav": {
"aria": "منوی تنظیمات",
"shop": "کافه و فروشگاه",
"shopGeneral": "پروفایل و اتصال‌ها",
"shopAppearance": "ظاهر و رنگ‌بندی",
"printer": "پرینتر",
"printerSettings": "تنظیمات پرینتر",
"printTest": "صفحه تست چاپ",
"shopDiscover": "کشف و AI"
},
"appearance": {
"paletteSection": "پالت رنگ",
"paletteTitle": "انتخاب پالت آماده",
"paletteHint": "رنگ پالت روی پنل داشبورد و منوی QR مهمان اعمال می‌شود.",
"dashboardSection": "پنل مدیریت",
"dashboardTitle": "سبک داشبورد",
"dashboardDesc": "ظاهر صفحات پنل (صندوق، انبار، گزارش و…) — جدا از منوی QR میز.",
"dashboardPreviewSection": "پیش‌نمایش",
"dashboardPreviewTitle": "نمونه پنل داشبورد",
"dashboardPreviewHint": "نمونه سایدبار و کارت آیتم در همین پنل؛ با تغییر سبک پنل، فشردگی و گوشه‌ها به‌روز می‌شود.",
"panelStyle": "سبک پنل داشبورد",
"guestMenuStyle": "سبک نمایش منوی QR",
"menuTexture": "بافت پس‌زمینه منوی QR",
"guestMenuSection": "منوی QR میز",
"guestMenuTitle": "قالب منوی مهمان",
"guestMenuDesc": "مشتری با اسکن QR روی میز همین چیدمان و بافت را می‌بیند — جدا از ظاهر پنل شما.",
"guestMenuPreviewSection": "پیش‌نمایش",
"guestMenuPreviewHint": "پیش‌نمایش موبایل (منوی QR)",
"density": "فشردگی",
"radius": "گوشه‌ها",
"customSection": "رنگ سفارشی",
"customTitle": "رنگ‌های اختصاصی کافه",
"customHint": "هر فیلد خالی از پالت انتخاب‌شده استفاده می‌کند. شفافیت روی رنگ سفارشی یا پالت اعمال می‌شود.",
"colorOpacity": "شفافیت",
"resetCustom": "بازنشانی رنگ‌های سفارشی",
"previewSection": "پیش‌نمایش",
"previewTitle": "نمونه پنل و منو",
"previewNav": "منو",
"previewItem": "لاته",
"previewCta": "افزودن",
"saved": "ظاهر ذخیره شد.",
"palettes": {
"meezi-green": "میزی سبز",
"ocean-blue": "اقیانوسی",
"royal-purple": "بنفش سلطنتی",
"sunset-orange": "غروب نارنجی",
"rose-blush": "رز",
"charcoal-gold": "ذغالی طلایی",
"espresso": "اسپرسو",
"forest": "جنگلی",
"midnight": "نیمه‌شب",
"coral": "مرجانی",
"gold-luxury": "لوکس طلایی",
"mint-fresh": "نعنایی",
"wine-bar": "بار شراب",
"slate-modern": "اسلیت مدرن",
"cherry": "گیلاسی",
"teal-wave": "فیروزه‌ای",
"sand-cafe": "کافه شنی"
},
"panelStyles": {
"flat": "فلت",
"modern": "مدرن",
"glass": "شیشه‌ای",
"minimal": "مینیمال",
"bold": "پررنگ",
"soft": "نرم",
"elevated": "برجسته",
"outline": "خطی"
},
"menuStyles": {
"cards": "کارت",
"compact": "فشرده",
"grid": "شبکه",
"list": "لیست",
"magazine": "مجله‌ای",
"classic": "کلاسیک"
},
"menuTextures": {
"none": "ساده",
"paper": "کاغذی",
"linen": "کتان",
"dots": "نقطه‌ای",
"grid": "شبکه‌ای",
"marble": "مرمر",
"wood": "چوب",
"warm": "گرم کافه"
},
"densities": {
"compact": "فشرده",
"comfortable": "معمولی",
"spacious": "گشاد"
},
"radiusOptions": {
"none": "تیز",
"sm": "کم",
"md": "متوسط",
"lg": "زیاد",
"full": "گرد"
},
"colors": {
"primary": "رنگ اصلی",
"secondary": "رنگ ثانویه",
"accent": "تأکید / پرومو",
"background": "پس‌زمینه",
"surface": "کارت / سطح",
"text": "متن",
"textMuted": "متن کم‌رنگ",
"destructive": "خطا / حذف",
"success": "موفقیت"
}
},
"taraz": "سامانه مودیان (تاراز)",
"tarazHint": "ارسال فاکتورهای روز گذشته به تاراز (در حالت دمو فقط ثبت می‌شود).",
"tarazSubmit": "ارسال به تاراز",
"tarazQueued": "درخواست ارسال ثبت شد.",
"snappfoodVendor": "شناسه فروشنده اسنپ‌فود",
"saveProfile": "ذخیره پروفایل",
"profile": {
"title": "پروفایل کافه",
"name": "نام کافه",
"city": "شهر",
"phone": "تلفن",
"address": "آدرس",
"description": "توضیحات",
"logo": "لوگو",
"uploadLogo": "بارگذاری لوگو",
"uploadCover": "بارگذاری کاور",
"saved": "پروفایل ذخیره شد.",
"reloginHint": "پلن به‌روز شد؛ در صورت نیاز یک‌بار خارج و وارد شوید.",
"slug": "آدرس پروفایل کوجا",
"slugHint": "آدرس صفحه کافه شما در کوجا — فقط حروف انگلیسی، اعداد و خط تیره",
"slugPlaceholder": "cafe-roya",
"slugTaken": "این آدرس قبلاً گرفته شده. آدرس دیگری انتخاب کنید.",
"slugInvalid": "آدرس نامعتبر است. فقط حروف انگلیسی کوچک، اعداد و خط تیره مجاز است.",
"kojaUrl": "آدرس کوجا"
},
"plans": {
"compareLabel": "مقایسه پلن‌ها",
"compareHint": "امکانات هر پلن را مقایسه کنید و مناسب کافه خود انتخاب کنید.",
"featureColumn": "امکانات",
"popular": "پرفروش",
"current": "پلن فعلی",
"perMonth": "ماهانه",
"freePrice": "رایگان",
"customPrice": "تماس بگیرید",
"unlimited": "نامحدود",
"included": "فعال",
"currentPlanBtn": "پلن شما",
"contactSales": "تماس با فروش",
"subscribe": "خرید {plan}",
"names": {
"Free": "رایگان",
"Pro": "پرو",
"Business": "بیزنس",
"Enterprise": "سازمانی"
},
"features": {
"ordersPerDay": "سفارش در روز",
"terminals": "ترمینال صندوق",
"crmCustomers": "مشتری CRM",
"smsPerMonth": "پیامک بازاریابی",
"branches": "شعبه",
"posKds": "صندوق و آشپزخانه",
"tablesQr": "میز و QR",
"menuReservations": "منو و رزرو",
"reports": "گزارش‌ها",
"hrModule": "منابع انسانی",
"snappfoodDelivery": "اسنپ‌فود / پیک",
"tarazTax": "سامانه مودیان (تاراز)",
"badges": "نشان اعتبار",
"whiteLabel": "برند اختصاصی",
"apiAccess": "API عمومی"
},
"levels": {
"basic": "پایه",
"full": "کامل"
}
},
"discoverProfile": {
"title": "پروفایل کشف و AI",
"subtitle": "برچسب‌ها برای پیشنهاد کافه به مهمان‌ها",
"save": "ذخیره",
"saved": "ذخیره شد",
"loading": "در حال بارگذاری..."
}
},
"support": {
"title": "پشتیبانی میزی",
"subtitle": "تیکت بزنید تا تیم سامانه پاسخ دهد",
"newTicket": "تیکت جدید",
"subject": "موضوع",
"message": "پیام شما",
"submit": "ارسال تیکت",
"myTickets": "تیکت‌های من",
"messages": "پیام",
"created": "تیکت ثبت شد",
"createFailed": "ثبت تیکت ناموفق بود",
"empty": "هنوز تیکتی ندارید",
"loadFailed": "بارگذاری تیکت‌ها ناموفق بود.",
"retry": "تلاش دوباره",
"loading": "در حال بارگذاری...",
"notFound": "تیکت یافت نشد",
"back": "بازگشت",
"reply": "پاسخ شما",
"send": "ارسال",
"replySent": "پاسخ ارسال شد",
"replyFailed": "ارسال پاسخ ناموفق بود",
"fromAdmin": "پشتیبانی میزی",
"fromYou": "شما",
"closedHint": "این تیکت بسته شده و امکان پاسخ جدید نیست.",
"status": {
"open": "باز",
"inProgress": "در حال بررسی",
"waitingMerchant": "منتظر پاسخ شما",
"resolved": "حل‌شده",
"closed": "بسته"
}
},
"admin": {
"nav": {
"title": "مدیریت سامانه",
"dashboard": "داشبورد",
"plans": "اشتراک و قیمت",
"integrations": "درگاه و پیامک",
"notifications": "اعلان‌ها",
"settings": "تنظیمات اپ",
"features": "قابلیت‌ها",
"cafes": "کافه‌ها",
"tickets": "تیکت‌ها",
"logout": "خروج"
},
"auth": {
"title": "ورود مدیر سامانه",
"subtitle": "فقط حساب‌های مجاز میزی",
"phone": "موبایل",
"sendOtp": "ارسال کد",
"otp": "کد تأیید",
"login": "ورود",
"error": "خطا در ورود",
"devHint": "در حالت توسعه کد در لاگ Admin API چاپ می‌شود (DEV admin OTP)."
},
"dashboard": {
"title": "خلاصه سامانه",
"totalCafes": "کل کافه‌ها",
"activeCafes": "فعال",
"openTickets": "تیکت باز",
"plans": "پلن‌های تعریف‌شده"
},
"plans": {
"title": "پلن‌ها و قیمت‌گذاری",
"monthlyPrice": "قیمت ماهانه (تومان)",
"maxOrders": "سقف سفارش روزانه",
"saved": "پلن ذخیره شد"
},
"settings": {
"title": "تنظیمات اپلیکیشن",
"saved": "ذخیره شد"
},
"features": {
"title": "فعال/غیرفعال قابلیت‌ها",
"enabled": "فعال",
"disabled": "غیرفعال"
},
"cafes": {
"title": "کافه‌های ثبت‌شده",
"suspended": "معلق",
"suspend": "تعلیق",
"activate": "فعال‌سازی",
"discoverProfile": {
"edit": "پروفایل کشف",
"title": "پروفایل کشف و AI",
"subtitle": "برچسب‌ها برای پیشنهاد کافه به مهمان‌ها",
"save": "ذخیره",
"saved": "ذخیره شد",
"loading": "در حال بارگذاری..."
}
},
"integrations": {
"title": "درگاه پرداخت و کاوه‌نگار",
"save": "ذخیره تنظیمات",
"saved": "تنظیمات ذخیره شد",
"paymentTitle": "درگاه‌های پرداخت",
"kavenegarTitle": "کاوه‌نگار (پیامک)",
"active": "فعال برای اشتراک",
"enabled": "فعال",
"sandbox": "حالت تست",
"merchantId": "مرچنت آیدی",
"apiKey": "توکن API",
"username": "نام کاربری",
"password": "رمز عبور",
"branchCode": "کد شعبه",
"terminalCode": "کد ترمینال (اختیاری)",
"clientId": "Client ID",
"clientSecret": "Client Secret",
"baseUrl": "آدرس API (اختیاری)",
"taraHint": "تارا — اعتبار خرید. مستندات: api.tara-club.ir/club/api/v1 (login، trace، request، verify)",
"snappPayHint": "اسنپ‌پی — خرید اقساطی (BNPL). OAuth و payment token از پنل پذیرنده اسنپ‌پی",
"otpTemplate": "قالب OTP (نام الگو در پنل کاوه‌نگار)"
},
"notifications": {
"title": "مرکز اعلان‌ها",
"broadcastTitle": "ارسال اعلان به همه کافه‌ها",
"broadcastTitlePlaceholder": "عنوان اعلان",
"broadcastBodyPlaceholder": "متن اعلان (اختیاری)",
"sendBroadcast": "ارسال به همه",
"broadcastSent": "اعلان به {count} کافه ارسال شد",
"allNotifications": "همه اعلان‌ها",
"empty": "اعلانی ثبت نشده است"
},
"tickets": {
"title": "تیکت‌های پشتیبانی",
"messages": "پیام",
"loading": "بارگذاری...",
"empty": "تیکتی وجود ندارد",
"notFound": "تیکت یافت نشد",
"back": "لیست تیکت‌ها",
"replyPlaceholder": "پاسخ به کافه...",
"sendReply": "ارسال پاسخ",
"replySent": "پاسخ ارسال شد",
"replyFailed": "ارسال ناموفق بود",
"resolve": "علامت‌گذاری حل‌شده",
"close": "بستن تیکت",
"statusUpdated": "وضعیت تیکت به‌روز شد",
"closedHint": "تیکت بسته است — پاسخ جدید غیرفعال است.",
"fromAdmin": "پشتیبانی میزی",
"fromCafe": "کافه",
"filter": {
"all": "همه",
"open": "باز",
"closed": "بسته"
}
}
},
"discoverPublic": {
"brand": "میزی",
"title": "کافه‌یاب",
"subtitle": "کافه مناسب خودت را در تهران و کرج پیدا کن",
"searchPlaceholder": "بنویس: آروم، قرار عاشقانه، وای‌فای، رستری، کتاب‌کافه…",
"searchHint": "جستجوی هوشمند — فیلترها را خودکار تشخیص می‌دهد",
"aiDetectedLabel": "فیلترهای تشخیص‌داده‌شده:",
"aiDetectedClear": "پاک کردن",
"loading": "در حال بارگذاری…",
"empty": "کافه‌ای با این فیلترها پیدا نشد",
"resultCount": "{count} کافه",
"applyFilters": "اعمال فیلتر",
"clearFilters": "پاک کردن",
"viewCafe": "مشاهده کافه",
"backToList": "بازگشت به لیست",
"notFound": "کافه یافت نشد",
"exploreMore": "کافه‌های بیشتر",
"reviewCount": "{count} نظر",
"mapTitle": "موقعیت روی نقشه",
"openInNeshan": "باز کردن در نشان",
"reviewsTitle": "نظرات مهمان‌ها",
"ownerReply": "پاسخ کافه",
"coffeeAdvisor": {
"title": "مشاور نوشیدنی",
"subtitle": "بگویید برای چه منظوری می‌آیید تا پیشنهاد مناسب بگیرید",
"placeholder": "مثلاً: کار گروهی، قرار عاشقانه، انرژی برای امتحان…",
"submit": "پیشنهاد بده",
"loading": "در حال فکر کردن…",
"notConfigured": "مشاور هوشمند هنوز برای این کافه فعال نشده",
"failed": "پیشنهاد در دسترس نیست. بعداً دوباره تلاش کنید"
},
"cities": {
"tehran": "تهران",
"karaj": "کرج"
},
"sort": {
"rating": "بیشترین امتیاز",
"reviews": "بیشترین نظر",
"name": "نام"
},
"openNow": "فقط باز",
"openNowLabel": "الان باز",
"closedLabel": "بسته",
"galleryTitle": "گالری تصاویر",
"workingHoursTitle": "ساعت کاری",
"instagramLabel": "اینستاگرام",
"websiteLabel": "وبسایت",
"days": {
"sat": "شنبه",
"sun": "یکشنبه",
"mon": "دوشنبه",
"tue": "سه‌شنبه",
"wed": "چهارشنبه",
"thu": "پنجشنبه",
"fri": "جمعه"
},
"filters": {
"themes": "تم",
"vibes": "حس و حال",
"occasions": "مناسب برای",
"spaceFeatures": "فضا",
"noise": "سطح صدا",
"priceTier": "قیمت",
"size": "اندازه"
}
},
"cafePublicProfile": {
"title": "پروفایل عمومی کافه",
"subtitle": "اطلاعاتی که به مهمانان در صفحه کافه‌یاب نمایش داده می‌شود",
"tabs": {
"info": "اطلاعات",
"gallery": "گالری",
"hours": "ساعت کاری",
"social": "شبکه‌های اجتماعی"
},
"description": "توضیحات کافه",
"descriptionPlaceholder": "درباره کافه، فضا، نوشیدنی‌ها و تجربه‌ای که ارائه می‌دهید بنویسید…",
"instagram": "آدرس اینستاگرام (بدون @)",
"instagramPlaceholder": "mycafe.tehran",
"website": "آدرس وبسایت",
"websitePlaceholder": "https://mycafe.ir",
"gallery": "گالری تصاویر (حداکثر ۸ عکس)",
"galleryHint": "عکس با کیفیت از فضای کافه آپلود کنید — JPEG، PNG یا WebP تا ۵ مگابایت",
"uploadPhoto": "آپلود عکس",
"uploading": "در حال آپلود…",
"uploadFailed": "آپلود ناموفق بود",
"galleryFull": "گالری پر است. ابتدا یک عکس را حذف کنید",
"removePhoto": "حذف",
"workingHours": "ساعت کاری هر روز",
"isOpen": "باز است",
"openTime": "ساعت باز",
"closeTime": "ساعت بسته",
"days": {
"sat": "شنبه",
"sun": "یکشنبه",
"mon": "دوشنبه",
"tue": "سه‌شنبه",
"wed": "چهارشنبه",
"thu": "پنجشنبه",
"fri": "جمعه"
},
"save": "ذخیره",
"saved": "ذخیره شد",
"saveFailed": "ذخیره ناموفق بود",
"loading": "در حال بارگذاری…",
"showOnKoja": "نمایش در کوجا",
"showOnKojaHint": "کافه شما در فهرست عمومی کوجا (koja.meezi.ir) نمایش داده شود. پیش‌فرض روشن است."
},
"discoverProfile": {
"sections": {
"themes": "تم و سبک فضا",
"occasions": "مناسب برای (چند انتخابی)",
"spaceFeatures": "امکانات فضا",
"vibes": "حس و حال",
"size": "اندازه",
"floors": "طبقات",
"noiseLevel": "سطح صدا",
"priceTier": "رده قیمت"
},
"hints": {
"themes": "برای پیشنهاد هوشمند به مهمان — مثلاً مدرن، سنتی، پر گیاه",
"occasions": "قرار، خانواده، دوستان، پیدا کردن نفر جدید و …",
"spaceFeatures": "فضای باز، بسته، تراس، گیاه و …",
"vibes": "آرام، شلوغ، رمانتیک و …"
},
"themes": {
"modern": "مدرن",
"minimal": "مینیمال",
"vintage": "رترو",
"industrial": "صنعتی",
"scandi": "اسکاندیناوی",
"persian_traditional": "سنتی ایرانی",
"book_cafe": "کتاب‌کافه",
"roastery": "رستری",
"dessert_focus": "دسرمحور",
"brunch": "برانچ",
"late_night": "شب‌گاه",
"plants_heavy": "پر گیاه",
"instagrammable": "عکاسی",
"heritage": "میراث",
"luxury": "لوکس",
"specialty_coffee": "قهوه تخصصی",
"tea_house": "چای‌خانه",
"art_gallery": "گالری هنر",
"sport_cafe": "کافه ورزشی",
"gaming_cafe": "گیمینگ کافه"
},
"occasions": {
"date": "قرار عاشقانه",
"family": "با خانواده",
"friends": "با دوستان",
"finding_someone": "پیدا کردن نفر جدید",
"solo": "تنهایی",
"business_meeting": "جلسه کاری",
"study_work": "درس و کار",
"celebration": "جشن",
"quick_coffee": "قهوه سریع",
"breakfast": "صبحانه",
"brunch": "برانچ",
"after_dinner": "بعد از شام",
"group_large": "گروه بزرگ"
},
"spaceFeatures": {
"indoor": "فضای بسته",
"outdoor": "فضای باز",
"terrace": "تراس",
"rooftop": "پشت‌بام",
"garden": "باغ",
"plants": "گیاه",
"wifi": "وای‌فای",
"parking": "پارکینگ",
"wheelchair": "ویلچر",
"kids_friendly": "مناسب کودک",
"pet_friendly": "حیوان خانگی",
"smoking_area": "سیگار",
"live_music": "موسیقی زنده",
"private_room": "اتاق خصوصی",
"counter_only": "فقط پیشخوان",
"takeaway": "بیرون‌بر",
"hookah": "قلیان",
"board_games": "بازی رومیزی",
"no_smoking": "بدون دود",
"prayer_room": "نمازخانه"
},
"vibes": {
"quiet": "آرام",
"lively": "شلوغ و پرانرژی",
"romantic": "رمانتیک",
"cozy": "دنج",
"trendy": "ترندی",
"traditional": "سنتی",
"artistic": "هنری",
"luxury": "لوکس",
"casual": "راحت",
"study_friendly": "مناسب درس"
},
"sizes": {
"tiny": "خیلی کوچک",
"cozy": "دنج",
"medium": "متوسط",
"large": "بزرگ",
"spacious": "فراخ"
},
"floors": {
"one": "یک طبقه",
"two": "دو طبقه",
"three": "سه طبقه",
"multi": "چند طبقه"
},
"noiseLevels": {
"quiet": "آرام",
"moderate": "متوسط",
"lively": "پرصدا"
},
"priceTiers": {
"budget": "اقتصادی",
"mid": "میانه",
"premium": "پریمیوم"
}
}
}