import type { DashboardLocale, RouteTitleRule } from '@meshkee/dashboard-core'

const en = {
  'app.dashboardName': 'Business Dashboard',
  'app.storeFallback': 'Business',
  'app.poweredBy': 'powered by Meshkee.app',
  'app.userFallback': 'User',

  'role.superAdmin': 'Super Admin',
  'role.owner': 'Business Owner',
  'role.staff': 'Staff',

  'nav.home': 'Home',
  'nav.businessProfile': 'Business Profile',
  'nav.products': 'Products',
  'nav.products.overview': 'Overview',
  'nav.products.list': 'My Products',
  'nav.products.new': 'Add New Product',
  'nav.products.categories': 'Categories',
  'nav.products.brands': 'Brands',
  'nav.products.settings': 'Settings',
  'nav.store': 'Store',
  'nav.store.overview': 'Overview',
  'nav.store.items': 'My Store Items',
  'nav.store.orders': 'My Orders',
  'nav.store.shipping': 'Shipping Fees',
  'nav.store.cards': 'Shopping Cards',
  'nav.store.settings': 'Settings',
  'nav.customers': 'Customers',
  'nav.settings': 'Settings',
  'nav.blog': 'Blog',
  'nav.blog.overview': 'Overview',
  'nav.blog.list': 'My Blogs',
  'nav.blog.new': 'Add New Blog',
  'nav.blog.categories': 'Categories',
  'nav.blog.settings': 'Settings',
  'nav.portfolios': 'Portfolios',
  'nav.portfolios.overview': 'Overview',
  'nav.portfolios.list': 'My Portfolios',
  'nav.portfolios.new': 'Add New Portfolio',
  'nav.portfolios.categories': 'Categories',
  'nav.portfolios.settings': 'Settings',
  'nav.website': 'Website',
  'nav.website.overview': 'Overview',
  'nav.website.sliders': 'Sliders',
  'nav.website.specialCategories': 'Special Categories',
  'nav.website.specialBrands': 'Special Brands',
  'nav.website.specialItems': 'Special Items',
  'nav.website.contact': 'Contact Us Form',
  'nav.website.subscriptions': 'Subscriptions',
  'nav.website.faq': 'FAQ',
  'nav.website.badges': 'Badges',
  'nav.website.ePayment': 'E-Payment',
  'nav.help': 'Help Center',
  'nav.logout': 'Logout',

  'header.toggleMenu': 'Toggle menu',
  'header.title': 'Admin Dashboard',
  'header.messages': 'Messages',
  'header.notifications': 'Notifications',
  'header.profile': 'Profile',
  'header.setting': 'Setting',
  'header.changePassword': 'Change password',

  'bc.dashboard': 'Dashboard',
  'bc.editProduct': 'Edit Product',
  'bc.productDetails': 'Product Details',
  'bc.editBlog': 'Edit Blog',
  'bc.blogDetails': 'Blog Details',
  'bc.editPortfolio': 'Edit Portfolio',
  'bc.portfolioDetails': 'Portfolio Details',

  'home.welcome': 'Welcome back, {name}!',
  'home.welcomeFallback': 'there',
  'home.subtitle': "Here's what's happening with your store today.",
  'home.card.products.title': 'Products',
  'home.card.products.desc': 'Manage your products, inventory and categories.',
  'home.card.products.link': 'View products',
  'home.card.products.count': 'products',
  'home.card.store.title': 'Store',
  'home.card.store.desc': 'Manage your store settings, pages and themes.',
  'home.card.store.link': 'View store',
  'home.card.store.count': 'on sale',
  'home.card.customers.title': 'Customers',
  'home.card.customers.desc': 'View and manage your customers and their activity.',
  'home.card.customers.link': 'View customers',
  'home.card.customers.count': 'people',
  'home.card.settings.title': 'Settings',
  'home.card.settings.desc': 'Configure your store preferences and system settings.',
  'home.card.settings.link': 'View settings',
  'home.card.blog.title': 'Blog',
  'home.card.blog.desc': 'Create and manage blog posts and categories.',
  'home.card.blog.link': 'View blog',
  'home.card.blog.count': 'posts',
  'home.card.portfolios.title': 'Portfolios',
  'home.card.portfolios.desc': 'Manage your portfolio items and showcase projects.',
  'home.card.portfolios.link': 'View portfolios',
  'home.card.portfolios.count': 'portfolios',
  'home.card.website.title': 'Website',
  'home.card.website.desc': 'Manage contact forms, FAQ, badges, subscriptions, and e-payment.',
  'home.card.website.link': 'View website',

  'home.chart.orders.title': 'Orders',
  'home.chart.orders.subtitle': 'Orders and cart adds in the last 30 days',
  'home.chart.orders.legend': 'Orders ({count})',
  'home.chart.orders.cartLegend': 'Added to basket ({count})',
  'home.chart.orders.loading': 'Loading chart...',
  'home.chart.orders.error': 'Unable to load order activity.',
  'home.chart.orders.bar': '{day}: {count} orders',
  'home.chart.orders.cartBar': '{day}: {count} added to basket',
  'home.chart.customers.title': 'Customers',
  'home.chart.customers.subtitle': 'Registrations and active users in the last 30 days',
  'home.chart.customers.legend': 'Registered ({count})',
  'home.chart.customers.activeLegend': 'Active ({count})',
  'home.chart.customers.loading': 'Loading chart...',
  'home.chart.customers.error': 'Unable to load customer activity.',
  'home.chart.customers.bar': '{day}: {count} registered',
  'home.chart.customers.activeBar': '{day}: {count} active',

  'products.overview.subtitle': 'Manage your products, inventory and categories.',
  'products.card.list.desc': 'View, edit and manage all your existing products.',
  'products.card.new.title': 'Add a New Product',
  'products.card.new.desc': 'Create and publish a new product to your store.',
  'products.form.edit.subtitle': 'Update product details and save changes.',
  'products.card.categories.desc': 'Organize your products into categories and subcategories.',
  'products.card.brands.desc': 'Manage product brands and assign them when creating products.',
  'products.card.settings.desc': 'Configure product defaults, variants and display options.',
  'products.activity.title': 'Product activity',
  'products.activity.subtitle': 'Products added or updated in the last 12 months',
  'products.activity.added': 'Added ({count})',
  'products.activity.updated': 'Updated ({count})',
  'products.activity.loading': 'Loading chart...',
  'products.activity.error': 'Unable to load product activity.',
  'products.activity.chartAria': 'Bar chart of products added and updated per month',
  'products.activity.barAdded': '{month}: {count} added',
  'products.activity.barUpdated': '{month}: {count} updated',

  'title.signIn': 'Sign in',
  'title.home': 'Home',
  'title.businessProfile': 'Business Profile',
  'title.products': 'Products',
  'title.myProducts': 'My Products',
  'title.addProduct': 'Add New Product',
  'title.editProduct': 'Edit Product',
  'title.productDetails': 'Product Details',
  'title.categories': 'Categories',
  'title.brands': 'Brands',
  'title.settings': 'Settings',
  'title.store': 'Store',
  'title.storeItems': 'My Store Items',
  'title.orders': 'My Orders',
  'title.shoppingCards': 'Shopping Cards',
  'title.customers': 'Customers',
  'title.blog': 'Blog',
  'title.myBlogs': 'My Blogs',
  'title.addBlog': 'Add New Blog',
  'title.editBlog': 'Edit Blog',
  'title.blogDetails': 'Blog Details',
  'title.portfolios': 'Portfolios',
  'title.myPortfolios': 'My Portfolios',
  'title.addPortfolio': 'Add New Portfolio',
  'title.editPortfolio': 'Edit Portfolio',
  'title.portfolioDetails': 'Portfolio Details',
  'title.website': 'Website',
  'title.sliders': 'Sliders',
  'title.specialCategories': 'Special Categories',
  'title.specialBrands': 'Special Brands',
  'title.specialItems': 'Special Items',
  'title.contactForm': 'Contact Us Form',
  'title.subscriptions': 'Subscriptions',
  'title.faq': 'FAQ',
  'title.badges': 'Badges',
  'title.ePayment': 'E-Payment',

  'login.welcome': 'Welcome back',
  'login.subtitle': 'Sign in with your mobile number',
  'login.mobile': 'Mobile number',
  'login.password': 'Password',
  'login.passwordPlaceholder': 'Enter your password',
  'login.hidePassword': 'Hide password',
  'login.showPassword': 'Show password',
  'login.forgot': 'Forgot password?',
  'login.signIn': 'Sign in',
  'login.signingIn': 'Signing in...',
  'login.or': 'or',
  'login.otp': 'One-time login with SMS',
  'login.noAccount': "Don't have an account?",
  'login.signUp': 'Sign up',
  'login.error.signIn': 'Unable to sign in. Check your connection and try again.',
  'login.error.sendCode': 'Unable to send verification code.',
  'login.error.access': 'You do not have access to this business dashboard.',

  'signup.title': 'Create account',
  'signup.subtitle': 'Register for {domain}',
  'signup.firstName': 'First name',
  'signup.lastName': 'Last name',
  'signup.passwordPlaceholder': 'Choose a password',
  'signup.confirm': 'Confirm password',
  'signup.confirmPlaceholder': 'Repeat your password',
  'signup.create': 'Create account',
  'signup.creating': 'Creating account...',
  'signup.hasAccount': 'Already have an account?',
  'signup.signIn': 'Sign in',
  'signup.error.match': 'Passwords do not match.',
  'signup.error.length': 'Password must be at least 8 characters.',
  'signup.error.create': 'Unable to create account.',

  'forgot.back': 'Back to sign in',
  'forgot.title': 'Forgot password',
  'forgot.subtitlePhone': 'We will send a verification code via SMS',
  'forgot.subtitleCode': 'Enter the code and your new password',
  'forgot.sendCode': 'Send SMS code',
  'forgot.sending': 'Sending...',
  'forgot.code': 'SMS verification code',
  'forgot.newPassword': 'New password',
  'forgot.newPasswordPlaceholder': 'Enter new password',
  'forgot.reset': 'Reset password',
  'forgot.verifying': 'Verifying...',
  'forgot.error.length': 'Password must be at least 8 characters.',
  'forgot.error.verify': 'Unable to verify code.',
  'forgot.info.partial':
    'Phone number verified. Full password reset via SMS is not available yet — please contact support or sign in if you remember your password.',

  'otp.back': 'Back to sign in',
  'otp.title': 'One-time login',
  'otp.subtitlePhone': 'Verify your mobile number with a one-time SMS code',
  'otp.subtitleCode': 'Enter the SMS code and your password',
  'otp.sendCode': 'Send SMS code',
  'otp.sending': 'Sending...',
  'otp.code': 'SMS verification code',
  'otp.password': 'Password',
  'otp.passwordPlaceholder': 'Your account password',
  'otp.signIn': 'Sign in',
  'otp.signingIn': 'Signing in...',
  'otp.error.password': 'Enter your account password to complete sign-in after SMS verification.',
  'otp.error.signIn': 'Unable to sign in with SMS verification.',

  'common.close': 'Close',
  'common.resendIn': 'Resend code in {seconds}s',
  'common.resend': 'Resend SMS code',
  'common.codeSent': 'Verification code sent to {phone}',
  'common.breadcrumb': 'Breadcrumb',
  'common.overview': 'Overview',
} as const

type MessageKey = keyof typeof en

const fa: Record<MessageKey, string> = {
  'app.dashboardName': 'پنل کسب‌وکار',
  'app.storeFallback': 'کسب‌وکار',
  'app.poweredBy': 'قدرت‌گرفته از Meshkee.app',
  'app.userFallback': 'کاربر',

  'role.superAdmin': 'سوپرادمین',
  'role.owner': 'صاحب کسب‌وکار',
  'role.staff': 'کارمند',

  'nav.home': 'خانه',
  'nav.businessProfile': 'پروفایل کسب‌وکار',
  'nav.products': 'محصولات',
  'nav.products.overview': 'نمای کلی',
  'nav.products.list': 'محصولات من',
  'nav.products.new': 'افزودن محصول',
  'nav.products.categories': 'دسته‌بندی‌ها',
  'nav.products.brands': 'برندها',
  'nav.products.settings': 'تنظیمات',
  'nav.store': 'فروشگاه',
  'nav.store.overview': 'نمای کلی',
  'nav.store.items': 'اقلام فروشگاه',
  'nav.store.orders': 'سفارش‌های من',
  'nav.store.shipping': 'هزینه ارسال',
  'nav.store.cards': 'کارت‌های خرید',
  'nav.store.settings': 'تنظیمات',
  'nav.customers': 'مشتریان',
  'nav.settings': 'تنظیمات',
  'nav.blog': 'بلاگ',
  'nav.blog.overview': 'نمای کلی',
  'nav.blog.list': 'بلاگ‌های من',
  'nav.blog.new': 'افزودن بلاگ',
  'nav.blog.categories': 'دسته‌بندی‌ها',
  'nav.blog.settings': 'تنظیمات',
  'nav.portfolios': 'نمونه کارها',
  'nav.portfolios.overview': 'نمای کلی',
  'nav.portfolios.list': 'نمونه کارهای من',
  'nav.portfolios.new': 'افزودن نمونه کار',
  'nav.portfolios.categories': 'دسته‌بندی‌ها',
  'nav.portfolios.settings': 'تنظیمات',
  'nav.website': 'وب‌سایت',
  'nav.website.overview': 'نمای کلی',
  'nav.website.sliders': 'اسلایدرها',
  'nav.website.specialCategories': 'دسته‌های ویژه',
  'nav.website.specialBrands': 'برندهای ویژه',
  'nav.website.specialItems': 'اقلام ویژه',
  'nav.website.contact': 'فرم تماس با ما',
  'nav.website.subscriptions': 'عضویت‌ها',
  'nav.website.faq': 'سوالات متداول',
  'nav.website.badges': 'نشان‌ها',
  'nav.website.ePayment': 'پرداخت الکترونیک',
  'nav.help': 'مرکز راهنما',
  'nav.logout': 'خروج',

  'header.toggleMenu': 'باز و بسته کردن منو',
  'header.title': 'پنل مدیریت',
  'header.messages': 'پیام‌ها',
  'header.notifications': 'اعلان‌ها',
  'header.profile': 'پروفایل',
  'header.setting': 'تنظیمات',
  'header.changePassword': 'تغییر رمز عبور',

  'bc.dashboard': 'داشبورد',
  'bc.editProduct': 'ویرایش محصول',
  'bc.productDetails': 'جزئیات محصول',
  'bc.editBlog': 'ویرایش بلاگ',
  'bc.blogDetails': 'جزئیات بلاگ',
  'bc.editPortfolio': 'ویرایش نمونه کار',
  'bc.portfolioDetails': 'جزئیات نمونه کار',

  'home.welcome': '{name} عزیز، خوش آمدی.',
  'home.welcomeFallback': 'کاربر',
  'home.subtitle': 'وضعیت فروشگاهتان را از اینجا دنبال کنید.',
  'home.card.products.title': 'محصولات',
  'home.card.products.desc': 'محصولات، موجودی و دسته‌بندی‌ها را مدیریت کنید.',
  'home.card.products.link': 'مشاهده محصولات',
  'home.card.products.count': 'محصول',
  'home.card.store.title': 'فروشگاه',
  'home.card.store.desc': 'تنظیمات، صفحات و ظاهر فروشگاه را مدیریت کنید.',
  'home.card.store.link': 'مشاهده فروشگاه',
  'home.card.store.count': 'محصول فروش',
  'home.card.customers.title': 'مشتریان',
  'home.card.customers.desc': 'مشتریان و فعالیت آن‌ها را ببینید و مدیریت کنید.',
  'home.card.customers.link': 'مشاهده مشتریان',
  'home.card.customers.count': 'نفر',
  'home.card.settings.title': 'تنظیمات',
  'home.card.settings.desc': 'ترجیحات فروشگاه و تنظیمات سیستم را پیکربندی کنید.',
  'home.card.settings.link': 'مشاهده تنظیمات',
  'home.card.blog.title': 'بلاگ',
  'home.card.blog.desc': 'مطالب و دسته‌بندی‌های بلاگ را ایجاد و مدیریت کنید.',
  'home.card.blog.link': 'مشاهده بلاگ',
  'home.card.blog.count': 'مطلب',
  'home.card.portfolios.title': 'نمونه کارها',
  'home.card.portfolios.desc': 'نمونه کارها و پروژه‌های نمایشی را مدیریت کنید.',
  'home.card.portfolios.link': 'مشاهده نمونه کارها',
  'home.card.portfolios.count': 'نمونه کار',
  'home.card.website.title': 'وب‌سایت',
  'home.card.website.desc': 'فرم تماس، سوالات متداول، نشان‌ها، عضویت‌ها و پرداخت الکترونیک.',
  'home.card.website.link': 'مشاهده وب‌سایت',

  'home.chart.orders.title': 'سفارش‌ها',
  'home.chart.orders.subtitle': 'سفارش‌ها و افزودن به سبد در ۳۰ روز گذشته',
  'home.chart.orders.legend': 'سفارش ({count})',
  'home.chart.orders.cartLegend': 'افزودن به سبد ({count})',
  'home.chart.orders.loading': 'در حال بارگذاری نمودار...',
  'home.chart.orders.error': 'بارگذاری فعالیت سفارش‌ها ممکن نشد.',
  'home.chart.orders.bar': '{day}: {count} سفارش',
  'home.chart.orders.cartBar': '{day}: {count} افزودن به سبد',
  'home.chart.customers.title': 'مشتریان',
  'home.chart.customers.subtitle': 'ثبت‌نام و کاربران فعال در ۳۰ روز گذشته',
  'home.chart.customers.legend': 'ثبت‌نام ({count})',
  'home.chart.customers.activeLegend': 'فعال ({count})',
  'home.chart.customers.loading': 'در حال بارگذاری نمودار...',
  'home.chart.customers.error': 'بارگذاری فعالیت مشتریان ممکن نشد.',
  'home.chart.customers.bar': '{day}: {count} ثبت‌نام',
  'home.chart.customers.activeBar': '{day}: {count} فعال',

  'products.overview.subtitle': 'محصولات، موجودی و دسته‌بندی‌ها را مدیریت کنید.',
  'products.card.list.desc': 'همه محصولات موجود را ببینید، ویرایش و مدیریت کنید.',
  'products.card.new.title': 'افزودن محصول جدید',
  'products.card.new.desc': 'یک محصول جدید بسازید و در فروشگاه منتشر کنید.',
  'products.form.edit.subtitle': 'جزئیات محصول را به‌روز کنید و ذخیره کنید.',
  'products.card.categories.desc': 'محصولات را در دسته‌بندی‌ها و زیردسته‌ها سازماندهی کنید.',
  'products.card.brands.desc': 'برندهای محصول را مدیریت کنید و هنگام ساخت محصول به آن‌ها اختصاص دهید.',
  'products.card.settings.desc': 'پیش‌فرض‌ها، تنوع‌ها و گزینه‌های نمایش محصول را پیکربندی کنید.',
  'products.activity.title': 'فعالیت محصولات',
  'products.activity.subtitle': 'محصولات افزوده‌شده یا به‌روزرسانی‌شده در ۱۲ ماه گذشته',
  'products.activity.added': 'افزوده‌شده ({count})',
  'products.activity.updated': 'به‌روزرسانی‌شده ({count})',
  'products.activity.loading': 'در حال بارگذاری نمودار...',
  'products.activity.error': 'بارگذاری فعالیت محصولات ممکن نشد.',
  'products.activity.chartAria': 'نمودار میله‌ای محصولات افزوده‌شده و به‌روزرسانی‌شده در هر ماه',
  'products.activity.barAdded': '{month}: {count} افزوده‌شده',
  'products.activity.barUpdated': '{month}: {count} به‌روزرسانی‌شده',

  'title.signIn': 'ورود',
  'title.home': 'خانه',
  'title.businessProfile': 'پروفایل کسب‌وکار',
  'title.products': 'محصولات',
  'title.myProducts': 'محصولات من',
  'title.addProduct': 'افزودن محصول',
  'title.editProduct': 'ویرایش محصول',
  'title.productDetails': 'جزئیات محصول',
  'title.categories': 'دسته‌بندی‌ها',
  'title.brands': 'برندها',
  'title.settings': 'تنظیمات',
  'title.store': 'فروشگاه',
  'title.storeItems': 'اقلام فروشگاه',
  'title.orders': 'سفارش‌های من',
  'title.shoppingCards': 'کارت‌های خرید',
  'title.customers': 'مشتریان',
  'title.blog': 'بلاگ',
  'title.myBlogs': 'بلاگ‌های من',
  'title.addBlog': 'افزودن بلاگ',
  'title.editBlog': 'ویرایش بلاگ',
  'title.blogDetails': 'جزئیات بلاگ',
  'title.portfolios': 'نمونه کارها',
  'title.myPortfolios': 'نمونه کارهای من',
  'title.addPortfolio': 'افزودن نمونه کار',
  'title.editPortfolio': 'ویرایش نمونه کار',
  'title.portfolioDetails': 'جزئیات نمونه کار',
  'title.website': 'وب‌سایت',
  'title.sliders': 'اسلایدرها',
  'title.specialCategories': 'دسته‌های ویژه',
  'title.specialBrands': 'برندهای ویژه',
  'title.specialItems': 'اقلام ویژه',
  'title.contactForm': 'فرم تماس با ما',
  'title.subscriptions': 'عضویت‌ها',
  'title.faq': 'سوالات متداول',
  'title.badges': 'نشان‌ها',
  'title.ePayment': 'پرداخت الکترونیک',

  'login.welcome': 'خوش آمدید',
  'login.subtitle': 'با شماره موبایل وارد شوید',
  'login.mobile': 'شماره موبایل',
  'login.password': 'رمز عبور',
  'login.passwordPlaceholder': 'رمز عبور را وارد کنید',
  'login.hidePassword': 'مخفی کردن رمز',
  'login.showPassword': 'نمایش رمز',
  'login.forgot': 'رمز عبور را فراموش کرده‌اید؟',
  'login.signIn': 'ورود',
  'login.signingIn': 'در حال ورود...',
  'login.or': 'یا',
  'login.otp': 'ورود یک‌بارمصرف با پیامک',
  'login.noAccount': 'حساب ندارید؟',
  'login.signUp': 'ثبت‌نام',
  'login.error.signIn': 'ورود ممکن نشد. اتصال را بررسی کنید و دوباره تلاش کنید.',
  'login.error.sendCode': 'ارسال کد تأیید ممکن نشد.',
  'login.error.access': 'به این پنل کسب‌وکار دسترسی ندارید.',

  'signup.title': 'ایجاد حساب',
  'signup.subtitle': 'ثبت‌نام برای {domain}',
  'signup.firstName': 'نام',
  'signup.lastName': 'نام خانوادگی',
  'signup.passwordPlaceholder': 'یک رمز عبور انتخاب کنید',
  'signup.confirm': 'تأیید رمز عبور',
  'signup.confirmPlaceholder': 'رمز عبور را تکرار کنید',
  'signup.create': 'ایجاد حساب',
  'signup.creating': 'در حال ایجاد حساب...',
  'signup.hasAccount': 'قبلاً حساب دارید؟',
  'signup.signIn': 'ورود',
  'signup.error.match': 'رمزهای عبور یکسان نیستند.',
  'signup.error.length': 'رمز عبور باید حداقل ۸ کاراکتر باشد.',
  'signup.error.create': 'ایجاد حساب ممکن نشد.',

  'forgot.back': 'بازگشت به ورود',
  'forgot.title': 'فراموشی رمز عبور',
  'forgot.subtitlePhone': 'کد تأیید را با پیامک ارسال می‌کنیم',
  'forgot.subtitleCode': 'کد و رمز عبور جدید را وارد کنید',
  'forgot.sendCode': 'ارسال کد پیامکی',
  'forgot.sending': 'در حال ارسال...',
  'forgot.code': 'کد تأیید پیامکی',
  'forgot.newPassword': 'رمز عبور جدید',
  'forgot.newPasswordPlaceholder': 'رمز عبور جدید را وارد کنید',
  'forgot.reset': 'بازنشانی رمز عبور',
  'forgot.verifying': 'در حال تأیید...',
  'forgot.error.length': 'رمز عبور باید حداقل ۸ کاراکتر باشد.',
  'forgot.error.verify': 'تأیید کد ممکن نشد.',
  'forgot.info.partial':
    'شماره تأیید شد. بازنشانی کامل رمز با پیامک هنوز فعال نیست — با پشتیبانی تماس بگیرید یا اگر رمز را به یاد دارید وارد شوید.',

  'otp.back': 'بازگشت به ورود',
  'otp.title': 'ورود یک‌بارمصرف',
  'otp.subtitlePhone': 'شماره موبایل را با کد پیامکی یک‌بارمصرف تأیید کنید',
  'otp.subtitleCode': 'کد پیامکی و رمز عبور را وارد کنید',
  'otp.sendCode': 'ارسال کد پیامکی',
  'otp.sending': 'در حال ارسال...',
  'otp.code': 'کد تأیید پیامکی',
  'otp.password': 'رمز عبور',
  'otp.passwordPlaceholder': 'رمز عبور حساب',
  'otp.signIn': 'ورود',
  'otp.signingIn': 'در حال ورود...',
  'otp.error.password': 'برای تکمیل ورود پس از تأیید پیامک، رمز عبور حساب را وارد کنید.',
  'otp.error.signIn': 'ورود با تأیید پیامکی ممکن نشد.',

  'common.close': 'بستن',
  'common.resendIn': 'ارسال مجدد کد تا {seconds} ثانیه',
  'common.resend': 'ارسال مجدد کد پیامکی',
  'common.codeSent': 'کد تأیید به {phone} ارسال شد',
  'common.breadcrumb': 'مسیر صفحه',
  'common.overview': 'نمای کلی',
}

const dictionaries: Record<DashboardLocale, Record<MessageKey, string>> = {
  en: en as Record<MessageKey, string>,
  fa,
}

export type BusinessMessageKey = MessageKey

/** Maps hardcoded English breadcrumb labels used across pages → message keys. */
const BREADCRUMB_LABEL_KEYS: Record<string, MessageKey> = {
  Home: 'nav.home',
  Dashboard: 'bc.dashboard',
  'Business Profile': 'nav.businessProfile',
  Products: 'nav.products',
  Overview: 'common.overview',
  'My Products': 'nav.products.list',
  'Add New Product': 'nav.products.new',
  'Add a New Product': 'nav.products.new',
  'Edit Product': 'bc.editProduct',
  'Product Details': 'bc.productDetails',
  Categories: 'title.categories',
  Brands: 'title.brands',
  Settings: 'title.settings',
  Store: 'nav.store',
  'My Store Items': 'nav.store.items',
  'My Orders': 'nav.store.orders',
  'Shipping Fees': 'nav.store.shipping',
  'Shopping Cards': 'nav.store.cards',
  Customers: 'nav.customers',
  Blog: 'nav.blog',
  'My Blogs': 'nav.blog.list',
  'Add New Blog': 'nav.blog.new',
  'Edit Blog': 'bc.editBlog',
  'Blog Details': 'bc.blogDetails',
  Portfolios: 'nav.portfolios',
  'My Portfolios': 'nav.portfolios.list',
  'Add New Portfolio': 'nav.portfolios.new',
  'Edit Portfolio': 'bc.editPortfolio',
  'Portfolio Details': 'bc.portfolioDetails',
  Website: 'nav.website',
  Sliders: 'nav.website.sliders',
  'Special Categories': 'nav.website.specialCategories',
  'Special Brands': 'nav.website.specialBrands',
  'Special Items': 'nav.website.specialItems',
  'Contact Us Form': 'nav.website.contact',
  Subscriptions: 'nav.website.subscriptions',
  FAQ: 'nav.website.faq',
  Badges: 'nav.website.badges',
  'E-Payment': 'nav.website.ePayment',
  Orders: 'nav.store.orders',
  Profile: 'header.profile',
  'Sign in': 'title.signIn',
}

export function translate(
  locale: DashboardLocale,
  key: MessageKey,
  vars?: Record<string, string | number>,
): string {
  const dict = dictionaries[locale] ?? dictionaries.en
  let text = dict[key] ?? dictionaries.en[key] ?? key
  if (vars) {
    for (const [name, value] of Object.entries(vars)) {
      text = text.replaceAll(`{${name}}`, String(value))
    }
  }
  return text
}

export function translateBreadcrumbLabel(locale: DashboardLocale, label: string): string {
  const key = BREADCRUMB_LABEL_KEYS[label]
  return key ? translate(locale, key) : label
}

export function getBusinessRouteTitleRules(locale: DashboardLocale): RouteTitleRule[] {
  const t = (key: MessageKey) => translate(locale, key)
  return [
    { match: '/login', labels: [t('title.signIn')] },
    { match: '/business-profile', labels: [t('title.businessProfile')] },
    { match: '/products/categories', labels: [t('title.products'), t('title.categories')] },
    { match: '/products/brands', labels: [t('title.products'), t('title.brands')] },
    { match: '/products/new', labels: [t('title.products'), t('title.addProduct')] },
    { match: /^\/products\/edit\/[^/]+$/, labels: [t('title.products'), t('title.editProduct')] },
    { match: '/products/list', labels: [t('title.products'), t('title.myProducts')] },
    {
      match: /^\/products\/detail\/[^/]+$/,
      labels: [t('title.products'), t('title.productDetails')],
    },
    { match: '/products/settings', labels: [t('title.products'), t('title.settings')] },
    { match: '/products', labels: [t('title.products')] },
    { match: '/store/items', labels: [t('title.store'), t('title.storeItems')] },
    { match: '/store/orders', labels: [t('title.store'), t('title.orders')] },
    { match: '/store/cards', labels: [t('title.store'), t('title.shoppingCards')] },
    { match: '/store/settings', labels: [t('title.store'), t('title.settings')] },
    { match: '/store', labels: [t('title.store')] },
    { match: '/customers', labels: [t('title.customers')] },
    { match: '/blog/list', labels: [t('title.blog'), t('title.myBlogs')] },
    { match: /^\/blog\/detail\/[^/]+$/, labels: [t('title.blog'), t('title.blogDetails')] },
    { match: '/blog/new', labels: [t('title.blog'), t('title.addBlog')] },
    { match: /^\/blog\/edit\/[^/]+$/, labels: [t('title.blog'), t('title.editBlog')] },
    { match: '/blog/categories', labels: [t('title.blog'), t('title.categories')] },
    { match: '/blog/settings', labels: [t('title.blog'), t('title.settings')] },
    { match: '/blog', labels: [t('title.blog')] },
    { match: '/portfolios/list', labels: [t('title.portfolios'), t('title.myPortfolios')] },
    {
      match: /^\/portfolios\/detail\/[^/]+$/,
      labels: [t('title.portfolios'), t('title.portfolioDetails')],
    },
    { match: '/portfolios/new', labels: [t('title.portfolios'), t('title.addPortfolio')] },
    {
      match: /^\/portfolios\/edit\/[^/]+$/,
      labels: [t('title.portfolios'), t('title.editPortfolio')],
    },
    { match: '/portfolios/categories', labels: [t('title.portfolios'), t('title.categories')] },
    { match: '/portfolios/settings', labels: [t('title.portfolios'), t('title.settings')] },
    { match: '/portfolios', labels: [t('title.portfolios')] },
    { match: '/website/sliders', labels: [t('title.website'), t('title.sliders')] },
    {
      match: '/website/special-categories',
      labels: [t('title.website'), t('title.specialCategories')],
    },
    { match: '/website/special-brands', labels: [t('title.website'), t('title.specialBrands')] },
    { match: '/website/special-items', labels: [t('title.website'), t('title.specialItems')] },
    { match: '/website/contact', labels: [t('title.website'), t('title.contactForm')] },
    { match: '/website/subscriptions', labels: [t('title.website'), t('title.subscriptions')] },
    { match: '/website/faq', labels: [t('title.website'), t('title.faq')] },
    { match: '/website/badges', labels: [t('title.website'), t('title.badges')] },
    { match: '/website/e-payment', labels: [t('title.website'), t('title.ePayment')] },
    { match: '/website', labels: [t('title.website')] },
    { match: '/', labels: [t('title.home')] },
  ]
}
