Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
582 lines
36 KiB
TypeScript
582 lines
36 KiB
TypeScript
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: 'درصد جریمه لغو (۰–۱۰۰)',
|
||
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
|