admin/texts/events.ts

584 lines
37 KiB
TypeScript
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.

export const events = {
// HostedEventActionsModal (keep stable)
publishRequested: 'درخواست انتشار ثبت شد؛ در صورت نیاز پس از تأیید ادمین منتشر می‌شود',
publishedSuccess: 'رویداد منتشر شد',
cancelConfirm: 'آیا از لغو این رویداد مطمئن هستید؟ همه‌ی رزروها لغو خواهند شد.',
cancelled: 'رویداد لغو شد',
completeConfirm: 'آیا این رویداد به پایان رسیده است؟',
completed: 'رویداد به‌عنوان پایان‌یافته علامت خورد',
deleteConfirm: 'آیا از حذف این رویداد مطمئن هستید؟ از لیست شما حذف می‌شود.',
deleted: 'رویداد حذف شد',
deleteFailed: 'حذف رویداد ناموفق بود',
shareLinkCopied: 'لینک {channel} رویداد کپی شد',
shareLinkCopiedGeneric: 'لینک رویداد کپی شد',
shareLinkCopyFailed: 'کپی لینک ناموفق بود',
rejectionReasonPrefix: 'دلیل رد:',
pendingAdminReview: 'در انتظار بررسی ادمین',
ariaDelete: 'حذف',
ariaClone: 'کپی',
ariaShare: 'اشتراک‌گذاری',
ariaPublish: 'انتشار',
ariaComplete: 'پایان',
ariaCancel: 'لغو',
moreActions: 'بیشتر',
moreActionsAria: 'عملیات بیشتر رویداد',
actionManageDescription: 'حضور، مالی و جزئیات',
actionEditDescription: 'ویرایش اطلاعات رویداد',
actionCloneDescription: 'ساخت پیش‌نویس مشابه',
actionShareDescription: 'کپی لینک عمومی رویداد',
actionIncreaseCapacityDescription: 'افزایش ظرفیت رویداد',
actionCompleteDescription: 'علامت‌گذاری به‌عنوان برگزارشده',
actionCancelDescription: 'لغو رویداد و همه رزروها',
actionDeleteDescription: 'حذف رویداد از لیست شما',
tabOverview: 'خلاصه',
tabAttendance: 'حضور و غیاب',
tabFinancial: 'مالی',
tabDetails: 'اطلاعات رویداد',
shareLabelInstagram: 'اینستا',
manageActions: 'مدیریت',
eventActionsTitle: 'مدیریت رویداد',
managementSections: 'بخش‌های مدیریت',
quickActions: 'عملیات رویداد',
shareLinks: 'اشتراک‌گذاری',
// Shared
free: 'رایگان',
save: 'ذخیره',
edit: 'ویرایش',
nextStep: 'مرحله بعد',
saveAndContinue: 'ثبت و ادامه',
startOver: 'شروع از ابتدا',
configureEventLink: 'تنظیم لینک رویداد',
collapseDetails: 'بستن جزئیات',
timeRange: '{start} تا {end}',
dateRangeMultiDay: 'از {start} تا {end}',
prevStep: 'مرحله قبل',
return: 'برگشت',
guest: 'مهمان',
host: 'میزبان',
start: 'شروع',
end: 'پایان',
location: 'مکان',
price: 'قیمت',
capacity: 'ظرفیت',
title: 'عنوان',
address: 'آدرس',
faqs: 'سوالات متداول',
aboutEvent: 'درباره رویداد',
locationCardTitle: 'مکان رویداد',
dateCardTitle: 'تاریخ رویداد',
timeCardTitle: 'زمان رویداد',
categoryCardTitle: 'دسته بندی',
priceCardTitle: 'هزینه رویداد',
navigateWithNeshan: 'مسیریابی با نشان',
navigateWithGoogleMaps: 'مسیریابی با گوگل مپ',
ageRestrictionChip: 'محدودیت سنی {label}',
ageChip15_19: '۱۵-۱۹ سال',
ageChip20_24: '۲۰-۲۴ سال',
ageChip25Plus: '۲۵+ سال',
peopleLimitChip: 'محدودیت',
chipFemaleOnly: 'خانم‌ها',
chipMaleOnly: 'آقایان',
reviews: 'نظرات',
waitlist: 'لیست انتظار',
eventEnded: 'اتمام رویداد',
invalidDate: 'تاریخ نامعتبر است',
tomanSuffix: ' تومان',
uploadFailed: 'آپلود ناموفق بود',
personCount: '{count} نفر',
percentSymbol: '٪',
viewDetails: 'مشاهده جزئیات',
manageEventDetails: 'جزئیات مدیریت رویداد',
capacityFullBanner: 'ظرفیت رویداد تکمیل است!',
increaseCapacity: 'افزایش ظرفیت',
registeringInProgress: 'درحال ثبت نام',
registeredCount: '{count} نفر ثبت‌نام کرده‌اند',
extendRegistrationDeadline: 'تمدید مهلت ثبت‌نام',
ariaSaveEvent: 'ذخیره ایونت',
ariaDuplicateEvent: 'کپی ایونت',
ariaDeleteEvent: 'حذف ایونت',
ariaEditEvent: 'ویرایش ایونت',
ariaEditImage: 'ویرایش تصویر',
ariaEditDate: 'ویرایش تاریخ',
ariaEditTime: 'ویرایش زمان',
ariaEditPrice: 'ویرایش قیمت',
ariaEditCategory: 'ویرایش دسته‌بندی',
ariaEditLocation: 'ویرایش مکان',
ariaEditTitle: 'ویرایش عنوان',
audienceUnrestricted: 'بدون محدودیت',
audienceRestricted: 'دارد · {label}',
reservedLabel: 'رزرو شده',
guestAccessLoadFailed: 'دریافت اطلاعات مهمانان ناموفق بود.',
guestAccessTitle: 'مهمانان ویژه',
guestAccessLoading: 'در حال دریافت اطلاعات مهمانان…',
guestListsConnected: 'لیست‌های متصل',
guestListsCount: '{count} لیست',
guestListFallback: 'لیست مهمان',
guestListNotifiedAt: 'اعلان ارسال شده · {date}',
guestListNotNotified: 'اعلانی ارسال نشده',
guestListsEmpty: 'لیست مهمانی به این رویداد متصل نشده است.',
invitedGuestsTitle: 'مهمانان دعوت‌شده',
invitedGuestsEmpty: 'مهمانی برای دعوت انتخاب نشده است.',
scheduleSectionTitle: 'زمان برگزاری',
addressVisibilitySectionTitle: 'حریم خصوصی آدرس',
inviteGuestsSectionTitle: 'دعوت مهمانان',
eventDetails: 'جزئیات رویداد',
skip: 'رد کردن',
// My events
myEventsDescription: 'رزروها و رویدادهایی که میزبانی می‌کنید',
myEventsLoadFailed: 'دریافت رویدادهای شما ناموفق بود',
tabCreate: 'ساخت رویداد',
tabCreated: 'ایجاد شده‌ها',
tabRegistered: 'ثبت‌نام شده‌ها',
tabUpcoming: 'پیش رو',
tabHeld: 'برگزار شده',
tabCancelled: 'لغو شده',
tabPendingReview: 'در انتظار تایید',
tabPublished: 'منتشر شده',
tabRejected: 'لغو یا رد شده',
tabAttending: 'شرکت‌کرده',
tabHosting: 'میزبانی',
emptyListTitle: 'هنوز رویدادی اینجا نیست',
emptyListDescription: 'هر رویدادی که برایش ثبت‌نام کنی، از اینجا در دسترس خواهد بود.',
createEvent: 'ایجاد رویداد',
createIdentityTitle: 'برای ساخت رویداد، اول هویتت را تأیید کن!',
createIdentityDescription: 'برای اینکه بتوانی به‌عنوان برگزارکننده رویداد بسازی، لازم است مراحل تأیید هویت را کامل کنی.',
startIdentityProcess: 'شروع فرایند احراز هویت',
identityResubmit: 'ارسال دوباره احراز هویت',
identityRequiredToCreate: 'برای ایجاد رویداد، احراز هویت کن',
occupiedSeats: '{occupied} / {capacity} نفر اشغال‌شده',
// Consumer event detail
eventNotFound: 'رویداد یافت نشد',
eventLoadFailedTitle: 'دریافت اطلاعات رویداد ناموفق بود',
eventLoadFailedDescription: 'این رویداد یافت نشد یا دیگر در دسترس نیست.',
eventUnavailable: 'این رویداد در حال حاضر در دسترس نیست',
eventImageAlt: 'تصویر رویداد {title}',
eventThumbAlt: 'تصویر بندانگشتی رویداد {title}',
eventDefaultImageAlt: 'تصویر پیش‌فرض رویداد {title}',
addressHiddenUntilConfirmed: 'آدرس دقیق پس از تأیید رزرو نمایش داده می‌شود.',
guestRating: 'امتیاز مهمانان',
reviewCountParen: '({count} نظر)',
hostProfileAria: 'پروفایل {name}',
eventHostLabel: 'میزبان این جمع',
pastEventsHeld: '{count} رویداد برگزارشده',
hostPastEventsBadge: '{count} رویداد برگزار کرده',
hostTotalGuestsBadge: '{count} نفر تا حالا در جمع‌هاش بودن',
hostParticipantFeedbackBadge: '{rating}/۵ بازخورد از شرکت‌کننده‌ها',
hostMemberSinceBadge: 'از {monthYear} در قبیله',
hostContactLinksLabel: 'راه‌های ارتباطی',
bookmarkedByCount: 'این رویداد توسط {count} نفر ذخیره شده است.',
capacityOccupiedOf: '{occupied} از {capacity} نفر',
// Booking CTA
// Create wizard — steps & layout
wizardStep1Label: 'معرفی رویداد',
wizardStep2Label: 'زمان و مکان',
wizardStep3Label: 'بلیط و ظرفیت',
wizardStep4Label: 'بازبینی نهایی',
wizardStep1Hint: 'عنوان، دسته‌بندی، توضیحات و تصاویر رویداد',
wizardStep2Hint: 'زمان‌بندی و محل برگزاری رویداد',
wizardStep3Hint: 'ظرفیت، قیمت و جریمه لغو',
wizardStep4Hint: 'اطلاعات را از نگاه مهمان بررسی کن و پیش‌نویس را بساز',
wizardTitle: 'رویدادت را بساز',
wizardDescription: 'اطلاعات اصلی را مرحله‌به‌مرحله کامل کن؛ تا زمانی که پیش‌نویس را نساخته‌ای، تغییرات روی همین دستگاه نگه‌داری می‌شوند.',
wizardAutosaveOn: 'ذخیرهٔ خودکار روشن است',
wizardDraftRestoredStatus: 'پیش‌نویس بازیابی شد',
wizardCloneReadyStatus: 'کپی آمادهٔ ویرایش',
wizardAutosaveHint: 'تغییرات این فرم به‌صورت خودکار روی این دستگاه ذخیره می‌شوند.',
wizardDraftRestoredHint: 'پیش‌نویس قبلی بازیابی شد. تغییرات به‌صورت خودکار ذخیره می‌شوند.',
wizardCloneHint: 'اطلاعات رویداد قبلی کپی شد. در صورت نیاز تغییر دهید و رویداد جدید را ذخیره کنید.',
wizardCloneLoadFailed: 'بارگذاری رویداد برای کپی ناموفق بود',
postersRequiredTitle: 'هر دو پوستر الزامی است',
postersRequiredDescription: 'پوستر عمودی (۹:۱۶) و پوستر مربعی (۱:۱) را آپلود کنید و سپس پیش‌نویس را ذخیره کنید.',
postersRequiredShort: 'پوستر عمودی (۹:۱۶) و پوستر مربعی (۱:۱) را آپلود کنید.',
draftSaved: 'پیش‌نویس رویداد ذخیره شد',
createdPartialTitle: 'رویداد ایجاد شد اما برخی موارد ذخیره نشد',
createdPartialDescription: 'به صفحه جزئیات رویداد بروید و تکمیل کنید.',
draftSaveFailed: 'ذخیره پیش‌نویس ناموفق بود',
invitePreviousGuestsTitle: 'دعوت مهمانان قبلی',
invitePreviousGuestsStatus: 'پیش‌نویس ساخته شد',
invitePreviousGuestsDescription:
'اگر مایل باشی، مهمانانی که قبلاً در رویدادهایت بوده‌اند را انتخاب کن. بعد از انتشار رویداد، پیامک دعوت برایشان ارسال می‌شود.',
selectGuestsTitle: 'انتخاب مهمانان',
selectGuestsDescription: 'این اقدام اختیاری است و جزو مراحل لازم برای ساخت رویداد نیست.',
cloneTitleSuffix: '{title} (کپی)',
wizardStepsAria: 'مراحل ایجاد رویداد',
wizardProgressTitle: 'آتشی بر قبیله بیافروز',
wizardProgressStep1: 'شروع رویداد',
wizardProgressStep2: 'تاریخ و زمان',
wizardProgressStep3: 'بلیط و ظرفیت',
wizardProgressStep4: 'تایید نهایی',
wizardProgressAria: '{progress} درصد تکمیل شده',
wizardInProgress: 'در حال تکمیل',
formatToman: '{value} تومان',
// Step 1
categoriesLoadFailed: 'بارگذاری دسته‌بندی‌ها ناموفق بود',
mediaSectionDescription: 'پوستر عمودی و پوستر مربعی هر دو الزامی‌اند. تصاویر گالری اختیاری‌اند و کراپ نمی‌شوند.',
basicInfoSectionDescription: 'اطلاعاتی را وارد کن که به مهمان کمک می‌کند سریع موضوع رویداد را بفهمد.',
eventTitleLabel: 'عنوان رویداد',
shortDescriptionLabel: 'معرفی کوتاه',
fullDescriptionLabel: 'توضیحات کامل',
advanced: '(پیشرفته)',
slugLabel: 'لینک اختصاصی(پیشرفته)',
slugHintFromTitle: 'از روی عنوان ساخته می‌شود؛ در صورت نیاز می‌توانید عوض کنید.',
slugPublicLink: 'لینک عمومی: /events/{slug}',
categoryPlaceholder: 'یک دسته‌بندی را انتخاب کنید',
// Step 2
addressVisibilityAttendeesOnly: 'فقط برای رزروکنندگان تأییدشده',
addressVisibilityPublic: 'نمایش برای همه',
citiesLoadFailed: 'بارگذاری شهرها ناموفق بود',
scheduleSectionDescription: 'شروع و پایان را دقیق وارد کن؛ پس از اولین رزرو، تغییر این اطلاعات محدود می‌شود.',
startsAtDateLabel: 'تاریخ شروع',
startsAtTimeLabel: 'ساعت شروع',
endsAtDateLabel: 'تاریخ پایان',
endsAtTimeLabel: 'ساعت پایان',
venueSectionTitle: 'مکان برگزاری',
venueSectionDescription: 'شهر، آدرس و نقطهٔ دقیق محل برگزاری را مشخص کن.',
consumerVenueSectionDescription: 'آدرس و نقطهٔ دقیق محل برگزاری را مشخص کن.',
hostCityLabel: 'شهر رویداد',
hostCityMissing: 'شهر پروفایل شما مشخص نیست. ابتدا شهر را در پروفایل تکمیل کنید.',
addressPlaceholder: 'آدرس محل برگزاری',
addressHostContactHint: 'پیش‌فرض از «اطلاعات تماس» میزبان؛ در صورت نیاز ویرایش کنید.',
addressVisibilitySectionDescription: 'اگر محل خصوصی است، می‌توانی آدرس دقیق را فقط به مهمانان قطعی نشان بدهی.',
addressVisibilityLabel: 'نمایش آدرس دقیق',
generalAreaLabel: 'منطقه کلی ',
generalAreaPlaceholder: 'مثلاً: مشهد، خیابان هفت‌تیر',
mapTitle: 'موقعیت روی نقشه',
mapLocked: 'موقعیت به‌خاطر رزرو فعال مهمان‌ها قفل شده است.',
reservedCapacityEditLockedHint: 'ظرفیت رزرو خارج از قبیله را از صفحه مدیریت رویداد تغییر دهید.',
mapHint: 'روی نقشه کلیک کنید تا موقعیت انتخاب شود؛ آدرس به‌صورت خودکار پر می‌شود و قابل ویرایش است.',
mapModalHint: 'برای تعیین نقطهٔ دقیق، نقشه را باز کنید؛ آدرس پس از انتخاب پر می‌شود و قابل ویرایش است.',
mapSelectModalTitle: 'انتخاب مکان از روی نقشه',
mapLocationSelected: 'موقعیت انتخاب شد',
mapKeyMissing: 'کلید نقشه (MAP_API_KEY) تنظیم نشده است',
mapLoading: 'در حال بارگذاری نقشه…',
mapAddressNotFound: 'آدرسی برای این نقطه پیدا نشد',
// Step 3
pricingSectionDescription: 'نوع ثبت‌نام را انتخاب کن؛ برای رویداد پولی، مبلغ نهایی بلیط را وارد کن.',
ticketTypeSectionTitle: 'نوع بلیط',
ticketPaid: 'با تعیین قیمت',
reservedCapacityWizardHint:
'مهمان‌هایی که از قبل یا از کانال دیگری (مثلاً اینستاگرام) رزرو کرده‌اند. این عدد از ظرفیت قابل‌رزرو در قبیله کم می‌شود.',
audienceSectionTitle: 'محدودیت شرکت‌کنندگان',
cancellationSectionTitle: 'لغو و بازپرداخت',
moreSettings: 'تنظیمات بیشتر',
pricePerTicketLabel: 'قیمت هر بلیط (تومان)',
reservedCapacityLabel: 'ظرفیت رزرو شده',
audienceSectionDescription: 'اگر رویداد برای همه نیست، محدودیت جنسیت یا سن را انتخاب کن. پیش‌فرض آزاد است.',
genderRestrictionLabel: 'محدودیت جنسی',
peopleRestrictionLabel: 'محدودیت‌افراد',
ageRestrictionLabel: 'محدودیت سنی',
cancellationSectionDescription: 'شرایط لغو را پیش از رزرو به مهمان نشان می‌دهیم تا تصمیم شفافی بگیرد.',
cancellationFeeLabel: 'لغو لحظه آخری — ۱ دقیقه تا ۱۲ ساعت مانده',
cancellationFee12To24HoursLabel: 'لغو در آستانه برگزاری — ۱۲ تا ۲۴ ساعت مانده',
cancellationFeeMoreThan24HoursLabel: 'لغو زودهنگام — بیش از ۲۴ ساعت مانده',
advancedSettingsHint: 'پیشنهاد می‌کنیم مقادیر پیش‌فرض را نگه داری',
discoverableLabel: 'نمایش در جستجوی عمومی',
autoCreateGroupLabel: 'ساخت خودکار گروه چت پس از رویداد',
waitlistAutoOfferLabel: 'پیشنهاد خودکار جای خالی به لیست انتظار',
sendReviewSmsLabel: 'پیامک درخواست نظر پس از رویداد',
// Step 4 preview / FAQ
previewSectionDescription: 'این خلاصه همان اطلاعاتی است که مهمان برای تصمیم‌گیری به آن نیاز دارد.',
posterAria: 'پوستر رویداد',
noPosterAria: 'رویداد بدون پوستر',
eventCategoryFallback: 'دسته‌بندی رویداد',
readyToSave: 'آمادهٔ ذخیره است',
previewEventTitle: 'پیش‌نمایش رویداد',
checklistIntroDone: 'معرفی و دسته‌بندی تکمیل شده',
checklistScheduleDone: 'زمان و مکان مشخص است',
checklistPricingDone: 'نوع بلیط و ظرفیت تعیین شده',
checklistPosterDone: 'پوستر رویداد انتخاب شده',
addQuestion: 'افزودن سوال',
faqSectionDescription: 'اگر مهمان‌ها معمولاً سؤال مشخصی دارند، همین‌جا پاسخ آن را اضافه کن. این بخش اختیاری است.',
questionLabel: 'سوال',
saveDraft: 'ذخیره پیش‌نویس',
// Step 5 guests
guestsSaved: 'مهمانان انتخاب شدند. بعد از انتشار رویداد پیامک دعوت برایشان ارسال می‌شود',
guestsSaveFailed: 'ذخیره مهمانان ناموفق بود',
guestsSectionDescription:
'از میان افرادی که قبلاً در رویدادهای شما حضور داشته‌اند انتخاب کنید. بعد از انتشار رویداد، پیامک دعوت برایشان ارسال می‌شود. این مرحله اختیاری است.',
sendInvitation: 'ذخیره مهمانان',
selectAllGuests: 'انتخاب همه',
guestSearchAria: 'جستجوی کاربران',
guestSearchPlaceholder: 'نام مهمان را جستجو کنید',
finish: 'اتمام',
// Media uploader
imageReadFailed: 'خواندن تصویر ناموفق بود',
postersBothRequired: 'پوستر عمودی (۹:۱۶) و پوستر مربعی (۱:۱) هر دو الزامی هستند.',
portraitPosterLabel: 'پوستر عمودی',
portraitPosterEmpty: 'افزودن پوستر عمودی',
portraitPosterHint: 'نسبت ۹:۱۶',
squarePosterLabel: 'پوستر مربعی',
squarePosterEmpty: 'افزودن پوستر مربعی',
squarePosterHint: 'نسبت ۱:۱',
galleryTitle: 'تصاویر گالری',
galleryHint: 'بدون کراپ و بدون قفل نسبت. برای صفحهٔ رویداد استفاده می‌شود.',
ariaRemoveGalleryImage: 'حذف تصویر گالری',
addImage: 'افزودن تصویر',
noAspectLimit: 'بدون محدودیت نسبت',
preparingImage: 'در حال آماده‌سازی تصویر…',
uploading: 'در حال آپلود...',
cancelCurrentUpload: 'لغو عملیات',
confirmUpload: 'تایید و آپلود',
cropPortraitTitle: 'برش پوستر عمودی (۹:۱۶)',
cropSquareTitle: 'برش پوستر مربعی (۱:۱)',
cropSquareFromPortraitHint: 'همین عکس را مربعی ببر، یا عکس دیگری برای کارت مربعی انتخاب کن.',
cropPortraitHint: 'پوستر کارت‌های عمودی با نسبت ۹:۱۶ برش داده می‌شود.',
pickOtherSquarePoster: 'انتخاب عکس دیگر برای پوستر مربعی',
change: 'تغییر',
// New / identity gate
createEventPageTitle: 'ایجاد رویداد جدید',
nationalIdImageLabel: 'تصویر کارت ملی',
// Edit
editEventTitle: 'ویرایش',
invalidEventId: 'شناسه رویداد نامعتبر است',
eventLoadFailed: 'بارگذاری رویداد ناموفق بود',
eventUpdated: 'رویداد به‌روزرسانی شد',
eventUpdateFailed: 'ذخیره تغییرات ناموفق بود',
editOwnerOnly: 'فقط سازنده‌ی رویداد می‌تواند آن را ویرایش کند.',
editStatusBlocked: 'این رویداد در وضعیت «{status}» دیگر قابل ویرایش نیست.',
capacityBelowOccupied: 'ظرفیت نمی‌تواند کمتر از صندلی‌های اشغال‌شده ({min}) باشد',
capacityMinOccupiedHint: 'با توجه به رزروهای فعال، ظرفیت نمی‌تواند کمتر از {min} باشد.',
basicInfoCardTitle: 'اطلاعات پایه',
basicInfoCardDescription: 'عنوان، دسته‌بندی و توضیحات اصلی رویداد',
slugLockedHint: 'پس از انتشار، تغییر اسلاگ تا تایید ادمین روی لینک عمومی اعمال نمی‌شود.',
slugFormatHint: 'فقط حروف کوچک انگلیسی، عدد و خط تیره',
slugFieldLabel: 'اسلاگ',
pricingCardTitle: 'قیمت و ظرفیت',
isFreeLabel: 'رویداد رایگان',
priceTomanLabel: 'قیمت (تومان)',
autoCreateGroupAfterEndLabel: 'ساخت خودکار گروه چت بعد از پایان رویداد',
sendReviewSmsAfterEndLabel: 'ارسال پیامک درخواست نظر بعد از پایان رویداد',
editLockedWithBookings: 'این رویداد {count} رزرو فعال دارد؛ زمان، مکان، قیمت، جریمه لغو، محدودیت جنسی/سنی و تنظیمات رفتاری قفل شده‌اند.',
editRevisionConfirmTitle: 'نیاز به بررسی مجدد ادمین',
editRevisionConfirmMessage:
'با ذخیره، تغییرات برای بررسی ادمین ارسال می‌شود. تا زمان تایید، مهمان‌ها همان نسخهٔ فعلی را می‌بینند. پس از تایید ادمین، رویداد با اطلاعات جدید فوراً منتشر می‌شود و نیازی به تایید دوباره شما نیست.',
editRevisionConfirmAccept: 'ارسال برای بررسی',
editRevisionSubmitted: 'ویرایش برای بررسی ادمین ارسال شد',
editRevisionPendingBanner: 'یک ویرایش در انتظار تایید ادمین دارید. ذخیرهٔ دوباره جایگزین آن می‌شود.',
editRevisionWithdraw: 'انصراف از ویرایش',
editRevisionWithdrawn: 'ویرایش لغو شد',
editRevisionWithdrawFailed: 'لغو ویرایش ناموفق بود',
editSaved: 'تغییرات ذخیره شد',
editMediaCardTitle: 'پوستر و تصاویر',
editFaqCardTitle: 'سوالات متداول',
reservedCapacityEditHint: 'ظرفیت رزرو شده: {count} نفر (مهمان‌های خارج از قبیله). تغییر این عدد از صفحه مدیریت ایونت انجام می‌شود.',
revisionApproveSuccess: 'ویرایش تایید و روی رویداد اعمال شد',
revisionRejectSuccess: 'ویرایش رد شد؛ نسخهٔ عمومی قبلی باقی ماند',
revisionPendingCardTitle: 'ویرایش در انتظار تایید',
revisionApprove: 'تایید و اعمال ویرایش',
revisionReject: 'رد ویرایش',
revisionRejectReasonLabel: 'دلیل رد',
revisionNoPending: 'ویرایش معلقی برای این رویداد نیست',
revisionLoadFailed: 'بارگذاری ویرایش ناموفق بود',
// Audience
genderOpen: 'آزاد برای عموم',
genderFemaleOnly: 'خانم‌ها',
genderMaleOnly: 'آقایان',
age15_19: '۱۵-۱۹ سال',
age20_24: '۲۰-۲۴ سال',
age25Plus: '+۲۵',
// Manage dashboard
manageTitle: 'مدیریت ایونت',
manageLoadFailedTitle: 'دریافت اطلاعات مدیریتی ناموفق بود',
manageLoadFailedDescription: 'اطلاعات مدیریتی این ایونت در دسترس نیست یا شما مالک آن نیستید.',
shareLinkCopiedShort: 'لینک {channel} کپی شد',
reservedCapacityMin: 'ظرفیت رزرو شده باید صفر یا بیشتر باشد',
reservedCapacityUpdated: 'ظرفیت رزرو شده به‌روز شد',
reservedCapacityUpdateFailed: 'تغییر ظرفیت رزرو شده ناموفق بود',
preview: 'پیش‌نمایش',
ariaCapacityFill: 'درصد تکمیل ظرفیت',
activeRegistrations: '{count} ثبت‌نام فعال',
remainingCapacity: '{count} نفر باقی‌مانده',
reservedCapacityDisplay: 'ظرفیت رزرو شده: {count}',
reservedCapacityHelp:
'مهمان‌های خارج از قبیله (مثلاً اینستاگرام). صندلی‌های در حال پرداخت هم اشغال‌شده‌اند؛ حداکثر قابل‌تنظیم {max} است.',
changeReservedCapacity: 'تغییر ظرفیت رزرو',
manageCapacity: 'مدیریت ظرفیت',
currentAvailableCapacity: 'ظرفیت خالی فعلی: {count} نفر',
capacityValuesInvalid: 'ظرفیت‌ها باید عدد صحیح صفر یا بزرگ‌تر باشند',
capacityUpdated: 'ظرفیت رویداد به‌روز شد',
capacityUpdateFailed: 'تغییر ظرفیت رویداد ناموفق بود',
manageSectionsAria: 'بخش‌های مدیریت ایونت',
confirmedRegistrations: 'ثبت‌نام قطعی',
ofCapacityHint: 'از {count} نفر ظرفیت',
checkedIn: 'حاضر شده',
awaitingCheckInHint: '{count} نفر در انتظار',
waitlistLabel: 'فهرست انتظار',
pendingPaymentHint: '{count} پرداخت ناقص',
netRevenue: 'درآمد خالص',
bookmarksHint: '{count} ذخیره',
registrationStatusTitle: 'وضعیت ثبت‌نام‌ها',
statusConfirmed: 'قطعی',
statusPendingPayment: 'پرداخت ناقص',
statusRefunded: 'بازپرداخت',
statusExpired: 'منقضی',
statusNoShow: 'غایب',
trafficLinksTitle: 'لینک‌های جذب و منبع ورود',
trafficLinksHint: 'برای شمارش بازدید و رزرو، لینک اختصاصی هر کانال را در اینستاگرام یا تلگرام بگذارید.',
copyInstagramLink: 'کپی لینک اینستاگرام',
copyTelegramLink: 'کپی لینک تلگرام',
instagramUniqueVisits: 'بازدید یکتا از اینستاگرام',
instagramConfirmedBookings: 'رزرو قطعی از اینستاگرام',
telegramUniqueVisits: 'بازدید یکتا از تلگرام',
telegramConfirmedBookings: 'رزرو قطعی از تلگرام',
editInfo: 'ویرایش اطلاعات',
viewEventPage: 'مشاهده صفحه ایونت',
eventIsFreeTitle: 'این ایونت رایگان است',
eventIsFreeFinancialHint: 'برای ایونت رایگان تراکنش درآمدی ایجاد نمی‌شود.',
grossSales: 'فروش ناخالص',
platformCommission: 'کمیسیون پلتفرم',
guestRefunds: 'بازپرداخت مهمان',
settlementStatusTitle: 'وضعیت تسویه درآمد',
heldAmount: 'در انتظار آزادسازی',
availableAmount: 'آماده تسویه',
settledAmount: 'تسویه‌شده',
registeredInfoTitle: 'اطلاعات ثبت‌شده',
slugUrlLabel: 'نشانی اینترنتی',
coordinatesLabel: 'مختصات',
cancellationFeeField: 'جریمه لغو',
discoverableField: 'نمایش عمومی',
addressVisibilityField: 'نمایش آدرس',
addressAttendeesOnlyWithArea: 'فقط رزروکنندگان تأییدشده (منطقه کلی: {area})',
autoCreateGroupField: 'ساخت خودکار گروه چت',
waitlistAutoOfferField: 'پیشنهاد خودکار لیست انتظار',
sendReviewSmsField: 'پیامک درخواست نظر بعد از پایان',
discoveryPlacementsField: 'جایگاه‌های نمایش',
noSpecialPlacement: 'جایگاه ویژه‌ای ندارد',
publishedAtField: 'زمان انتشار',
notPublished: 'منتشر نشده',
createdAtField: 'زمان ایجاد',
mediaTitle: 'رسانه‌ها ({count})',
mediaAlt: 'رسانه {title}',
noMedia: 'رسانه‌ای ثبت نشده است.',
faqsTitle: 'سوالات متداول ({count})',
noFaqs: 'سوالی ثبت نشده است.',
changeReservedCapacityTitle: 'تغییر ظرفیت رزرو شده',
reservedCapacityModalHint: 'ثبت‌نام فعال (قطعی و در حال پرداخت): {booked} — حداکثر ظرفیت رزرو شده: {max}',
// Attendance
filterAll: 'همه',
filterNotCheckedIn: 'در انتظار حضور',
bookingStatusPendingPayment: 'پرداخت تکمیل نشده',
bookingStatusExpired: 'منقضی شده',
bookingStatusRefunded: 'بازپرداخت شده',
attendeesLoadFailed: 'دریافت فهرست مهمانان ناموفق بود.',
checkInSuccess: 'حضور مهمان با موفقیت ثبت شد',
checkInFailed: 'ثبت حضور ناموفق بود',
checkInFailedDescription: 'وضعیت ثبت‌نام مهمان را دوباره بررسی کنید.',
attendanceSearchHint: 'نام، نام خانوادگی، شماره موبایل یا کد رزرو مهمان را جست‌وجو کنید.',
attendanceSearchAria: 'جست‌وجوی مهمان با نام یا شماره موبایل',
attendanceSearchPlaceholder: 'مثلاً سارا احمدی یا 0912...',
attendanceFilterAria: 'فیلتر وضعیت مهمانان',
ariaLoadingAttendees: 'در حال دریافت مهمانان',
noAttendeeSearch: 'مهمانی با این نام یا شماره ثبت‌نام نکرده است.',
noAttendeeInFilter: 'مهمان موردنظر در این فیلتر پیدا نشد.',
noAttendeeInStatus: 'مهمانی در این وضعیت وجود ندارد.',
searchPhoneHint: 'شماره را با 09، 98 یا ارقام فارسی هم می‌توانید وارد کنید.',
tryFilterAllHint: 'برای بررسی ثبت‌نام، فیلتر «همه» را انتخاب کنید.',
checkInRecorded: 'حضور ثبت شده',
guestUnnamed: 'مهمان بدون نام',
attendanceStatusLabel: 'وضعیت حضور',
present: 'حاضر',
notYetEntered: 'هنوز وارد نشده',
notAllowed: 'غیرمجاز',
checkInGuest: 'ثبت حضور مهمان',
checkInOnlyBeforeEnd: 'ثبت حضور فقط تا پیش از پایان رسمی ایونت فعال است.',
previous: 'قبلی',
next: 'بعدی',
pageOf: 'صفحه {page} از {total}',
resultsCount: '{count} نتیجه',
searchResultsFor: 'نتیجه جست‌وجوی «{query}»',
// Waitlist manage
waitlistStatusNotified: 'پیشنهاد ارسال‌شده',
waitlistStatusAccepted: 'پذیرفته‌شده',
waitlistStatusConverted: 'تبدیل به رزرو',
waitlistStatusCancelled: 'انصراف داده',
waitlistLoadFailed: 'دریافت فهرست انتظار ناموفق بود.',
offerSeatFailed: 'پیشنهاد جای خالی ناموفق بود',
offerSeatSuccess: 'جای خالی به این نفر پیشنهاد شد',
waitlistLoading: 'در حال بارگذاری فهرست انتظار...',
waitlistAutoOnHint:
'پیشنهاد خودکار روشن است: با آزادشدن جای خالی، به نفر اول صف پیشنهاد داده می‌شود. در صورت نیاز می‌توانید همین‌جا شخص دیگری را دستی انتخاب کنید.',
waitlistAutoOffHint:
'پیشنهاد خودکار خاموش است: با آزادشدن جای خالی هیچ پیشنهادی به‌صورت خودکار ارسال نمی‌شود؛ باید از همین‌جا یک نفر را برای دریافت جای خالی انتخاب کنید.',
waitlistEmpty: 'فهرست انتظار خالی است.',
waitlistMember: 'عضو صف انتظار',
waitlistJoinedAt: 'عضویت: {date}',
offerSeat: 'پیشنهاد جای خالی',
// Discounts
percentOff: '{value}٪ تخفیف',
amountOff: '{value} تخفیف',
discountTypePercent: 'درصدی',
discountTypeFixed: 'مبلغی (تومان)',
bearerPlatform: 'پلتفرم',
discountsLoadFailed: 'دریافت کدهای تخفیف ناموفق بود.',
discountValueRequired: 'مقدار تخفیف را وارد کنید',
discountPercentRange: 'درصد تخفیف باید بین ۱ تا ۹۹ باشد',
discountCountRequired: 'تعداد کد را وارد کنید',
discountCreateFailed: 'ساخت کد تخفیف ناموفق بود',
discountCreatedCount: '{count} کد تخفیف ساخته شد',
discountToggleAfterEnd: 'بعد از پایان رویداد نمی‌توان وضعیت کد را تغییر داد',
discountToggleFailed: 'تغییر وضعیت کد ناموفق بود',
discountDeleteAfterEnd: 'بعد از پایان رویداد نمی‌توان کد را حذف کرد',
discountDeleteUsed: 'کد استفاده‌شده قابل حذف نیست',
discountDeleteFailed: 'حذف کد ناموفق بود',
discountDeleted: 'کد تخفیف حذف شد',
codesCopied: 'کدها کپی شد',
copyFailed: 'کپی ناموفق بود',
freeEventNoDiscounts: 'برای ایونت رایگان امکان تعریف کد تخفیف وجود ندارد.',
activeCodes: 'کدهای فعال',
redemptionCount: 'دفعات استفاده',
totalDiscount: 'مجموع تخفیف',
platformDiscountShare: 'سهم پلتفرم از تخفیف',
createDiscountTitle: 'ساخت کد تخفیف',
createDiscountIntro: 'می‌توانید یک یا چند کد یکتا بسازید و در اختیار مهمانان بگذارید. کد در صفحه پرداخت اعمال می‌شود.',
createDiscountEnded: 'این ایونت به پایان رسیده است و امکان ساخت کد تخفیف تازه وجود ندارد.',
discountTypeLabel: 'نوع تخفیف',
discountPercentValueLabel: 'درصد تخفیف (۱ تا ۹۹)',
discountFixedValueLabel: 'مبلغ تخفیف (تومان)',
uniqueCodeCountLabel: 'تعداد کد یکتا',
bearerLabel: 'هزینه تخفیف بر عهده',
bearerPlatformHint: 'در حالت پلتفرم، تخفیف ابتدا از کمیسیون کسر می‌شود.',
advancedSettingsOpen: 'تنظیمات پیشرفته (محدودیت استفاده)',
advancedSettingsClose: 'بستن تنظیمات پیشرفته',
maxUsesLabel: 'حداکثر دفعات استفاده (اختیاری)',
maxUsesPerUserLabel: 'حداکثر استفاده هر کاربر (اختیاری)',
unlimitedPlaceholder: 'نامحدود',
codesCreatedCount: '{count} کد ساخته شد',
copyAll: 'کپی همه',
definedCodesTitle: 'کدهای تعریف‌شده',
noDiscountCodes: 'هنوز کد تخفیفی برای این ایونت ساخته نشده است.',
platformCostChip: 'هزینه پلتفرم',
createdLabel: 'ساخت',
eventEndedShort: 'رویداد پایان یافته',
availableToGuests: 'در دسترس مهمانان',
deactivated: 'غیرفعال شده',
redeemedCodesTitle: 'کدهای استفاده‌شده ({count})',
payableAmount: 'پرداختی: {amount}',
discountCodeInvalid: 'کد تخفیف معتبر نیست',
discountUpdateFailed: 'به‌روزرسانی کد تخفیف ناموفق بود',
// Services
categoriesListFailed: 'دریافت لیست دسته‌بندی‌ها ناموفق بود',
categoryCreateFailed: 'ایجاد دسته‌بندی ناموفق بود',
categoryUpdateFailed: 'ویرایش دسته‌بندی ناموفق بود',
categoryDeleteFailed: 'حذف دسته‌بندی ناموفق بود',
} as const