ui phase 5

This commit is contained in:
hamid
2026-07-18 09:51:03 +03:30
parent 53b4e1b0a4
commit 4c70d8e424
42 changed files with 2834 additions and 548 deletions
+71 -8
View File
@@ -89,7 +89,11 @@
"nudge_profile_title": "Complete your profile",
"nudge_profile_body": "Add an emergency contact to speed up bookings.",
"nudge_profile_cta": "Go to profile",
"patients_error": "Couldn't load your patients."
"patients_error": "Couldn't load your patients.",
"trust_escrow": "Secure escrow payment",
"trust_verified_nurses": "Verified nurses",
"trust_support": "Support",
"rebook_with": "Book again with {name}"
},
"onboarding": {
"step_relation": "Who for",
@@ -366,30 +370,41 @@
"gender_any": "No preference",
"gender_hint": "For personal and bodily care, many families prefer a same-gender caregiver. Your choice is carried into the booking request.",
"date_hint": "We pass your preferred date to the nurse — it does not remove nurses from the results.",
"date_today": "Today",
"date_tomorrow": "Tomorrow",
"date_pick_other": "Pick another date",
"price_hint": "Leave blank to see every price.",
"price_min": "From",
"price_max": "To",
"toman": "Toman",
"whole_city": "Whole city",
"categories_error": "Couldn't load categories.",
"cta_choose_category_city": "Choose a category and city",
"cta_loading": "Counting nurses…",
"cta_view_results": "View {count, plural, =0 {no nurses} one {# nurse} other {# nurses}}",
"cta_zero_title": "No nurses match these filters",
"cta_zero_hint": "Loosen a filter to see more nurses.",
"results_loading_title": "Searching…",
"results_count": "{count, plural, =0 {No nurses} one {# nurse} other {# nurses}}",
"sort_label": "Sort",
"sort_rating": "Rating",
"sort_static": "Sorted by rating",
"results_error": "Something went wrong loading results.",
"retry": "Try again",
"load_more": "Load more",
"empty_title": "No nurses match your filters",
"empty_suggest_gender": "Try removing the gender filter.",
"empty_suggest_district": "Clear the district to search the whole city.",
"empty_suggest_city": "Try a nearby city like Mashhad, Isfahan, or Shiraz.",
"empty_suggest_date": "Try a different date.",
"empty_cta": "Adjust filters",
"unnamed_nurse": "Nurse",
"unnamed_service": "Service",
"completed_visits": "{count, number} successful visits",
"reviews_count": "({count, plural, =0 {no reviews} one {# review} other {# reviews}})",
"distance_km": "{km} km",
"price_from": "from",
"price_chip_range": "{min} to {max} Toman",
"price_chip_min": "From {min} Toman",
"price_chip_max": "Up to {max} Toman",
"latest_review_title": "Latest review",
"profile_not_found_title": "Nurse unavailable",
"profile_not_found_body": "This nurse is no longer available.",
"profile_not_found_cta": "Back to search",
@@ -418,6 +433,7 @@
"summary_when": "Time",
"request_title": "Booking request",
"form_subtitle": "Send a request to this nurse. No payment is taken yet — the nurse reviews it first.",
"whathappens_title": "What happens next?",
"missing_nurse_title": "No nurse selected",
"missing_nurse_body": "Choose a nurse from search, then send a request.",
"missing_nurse_cta": "Find a nurse",
@@ -433,9 +449,18 @@
"address_empty": "You haven't added an address yet.",
"address_add_cta": "Add an address",
"address_whole_city": "Whole city",
"address_change_cta": "Change",
"date_label": "Date",
"date_today": "Today",
"date_tomorrow": "Tomorrow",
"date_pick_other": "Pick another date",
"time_start_label": "From",
"time_end_label": "To",
"time_window_label": "Visit time window",
"window_morning": "Morning 812",
"window_afternoon": "Afternoon 1216",
"window_evening": "Evening 1620",
"window_custom": "Custom time",
"gender_label": "Caregiver gender",
"gender_hint": "For personal/bodily care, a same-gender caregiver matters. Your choice is sent with the request.",
"notes_label": "Notes for the nurse",
@@ -457,6 +482,13 @@
"error_not_bookable": "This service can't be booked right now.",
"error_tenancy": "That patient or address wasn't found.",
"error_generic": "Couldn't send the request. Please try again.",
"cta_missing_patient": "choosing a patient",
"cta_missing_service": "choosing a service",
"cta_missing_address": "choosing an address",
"cta_missing_date": "a date",
"cta_missing_time": "a time window",
"cta_missing_gender": "caregiver gender",
"cta_missing_caption": "To continue: {fields}",
"awaiting_title": "Request sent to the nurse",
"awaiting_subtitle": "Awaiting the nurse's response",
"step_submitted": "Request submitted",
@@ -464,6 +496,9 @@
"step_payment": "Payment & final confirmation",
"response_countdown_label": "Nurse response window",
"response_elapsed": "Awaiting server confirmation…",
"response_notify_note": "We'll let you know the result",
"countdown_about_hours": "About {hours, plural, one {# hour} other {# hours}}",
"countdown_about_minutes": "About {minutes, plural, one {# minute} other {# minutes}}",
"accepted_badge": "The nurse accepted",
"accepted_body": "Pay within the window below to confirm the booking.",
"payment_countdown_label": "Payment window",
@@ -473,7 +508,8 @@
"cancelling": "Cancelling…",
"cancel_confirm_title": "Cancel this request?",
"cancel_confirm_body": "The nurse will no longer see it. You can request another nurse anytime.",
"cancel_confirm_yes": "Yes, cancel",
"cancel_confirm_keep": "No, keep it",
"cancel_confirm_destructive": "Yes, cancel the request",
"rejected_title": "The nurse declined the request",
"rejected_reason_label": "Nurse's reason",
"expired_title": "The nurse didn't respond in time",
@@ -482,6 +518,8 @@
"converted_title": "Your booking is confirmed",
"converted_cta": "View booking",
"terminal_rerequest": "Request another nurse",
"terminal_rerequest_same_nurse": "Request again with a different time",
"terminal_similar_nurses": "Similar nurses",
"not_found_title": "Request not found",
"not_found_body": "This request may have been removed.",
"error_title": "Something went wrong",
@@ -519,6 +557,8 @@
"status_cancelled_by_customer": "Cancelled",
"bd_title": "Booking",
"bd_ref": "Booking #{id}",
"bd_nurse_label": "Nurse",
"bd_add_to_calendar": "Add to calendar",
"bd_not_found_title": "Booking not found",
"bd_not_found_body": "This booking doesn't exist or isn't yours.",
"bd_my_bookings": "My bookings",
@@ -563,6 +603,7 @@
"evv_banner_in_range": "Checked in {time} · location confirmed (EVV)",
"evv_banner_out_of_range": "Checked in {time} · location out of range (under review)",
"evv_banner_no_gps": "Checked in {time} · location not captured",
"evv_presence_headline": "The nurse is on site · Checked in {time}",
"evv_checked_out_at": "Checked out {time}",
"evv_gps_denied_note": "Location permission was denied — you can still record the visit; it's flagged for review.",
"evv_no_open_check_in": "There's no open check-in to close.",
@@ -587,11 +628,19 @@
"care_locked_body": "The full care record is visible only to your assigned nurse and support.",
"list_title": "My bookings",
"list_subtitle": "Your confirmed engagements.",
"list_empty_title": "No bookings yet",
"list_empty_body": "Once a nurse accepts and you pay, your booking appears here.",
"list_error": "Couldn't load your bookings.",
"list_total": "Total",
"inbox_error": "Couldn't load your requests."
"inbox_error": "Couldn't load your requests.",
"tab_pending": "Awaiting response",
"tab_active": "Active",
"tab_past": "Past",
"pending_empty_title": "No pending requests",
"pending_empty_body": "Requests awaiting the nurse's response or your payment appear here.",
"active_empty_title": "No active bookings",
"active_empty_body": "Your ongoing bookings appear here.",
"past_empty_title": "No past bookings",
"past_empty_body": "Your completed or cancelled bookings appear here.",
"load_more": "Show more"
},
"payment": {
"title_checkout": "Confirm & pay",
@@ -788,6 +837,13 @@
"badge_verified": "Verified",
"badge_unverified": "Not verified",
"badge_expired": "Expired",
"explainer_title": "What Balinyaar verified",
"explainer_open_label": "View verification details",
"explainer_close": "Close",
"explainer_intro": "This nurse has successfully passed these steps:",
"explainer_approved_at": "Verified on {date}",
"explainer_not_verified": "This nurse is not verified yet.",
"explainer_error": "Couldn't load the verification details.",
"publish_ready_title": "Ready to publish",
"publish_ready_body": "Your verification is complete. Your services are visible and bookable.",
"publish_blocked_title": "Complete verification to publish",
@@ -815,6 +871,9 @@
"cancel_title": "Cancel booking",
"step_review": "Review",
"step_confirm": "Confirm",
"offramp_note": "Before cancelling, consider these options — cancelling may cost your nurse a booked slot.",
"reschedule_cta": "Change the time",
"contact_support_cta": "Chat with support",
"policy_free_24h": "Free cancellation",
"policy_partial_under_24h": "Partial refund",
"policy_customer_no_show": "No refund",
@@ -835,6 +894,7 @@
"reason_cancelled": "Cancelled",
"admin_approval_explainer": "Your cancellation request is submitted and the refund is reviewed and processed by our team — you never issue the refund yourself.",
"reason_field_label": "Reason for cancelling",
"reason_placeholder": "Choose a reason",
"reason_cat_changed_mind": "Changed my mind",
"reason_cat_schedule_conflict": "Schedule conflict",
"reason_cat_found_other_care": "Found other care",
@@ -1061,6 +1121,9 @@
"title": "Leave a review",
"subtitle": "Share your experience to help other families.",
"for_nurse": "About {name}",
"moderation_note": "Your review will be published after moderation",
"recap_fallback_service": "Care visit",
"recap_fallback_nurse": "Nurse",
"rating_label": "Your rating",
"body_label": "Comments (optional)",
"body_placeholder": "How was the care? Anything worth sharing…",
+71 -8
View File
@@ -89,7 +89,11 @@
"nudge_profile_title": "تکمیل پروفایل",
"nudge_profile_body": "برای رزرو سریع‌تر، تماس اضطراری را اضافه کنید.",
"nudge_profile_cta": "رفتن به پروفایل",
"patients_error": "بیماران شما بارگذاری نشد."
"patients_error": "بیماران شما بارگذاری نشد.",
"trust_escrow": "پرداخت امن امانی",
"trust_verified_nurses": "پرستاران تاییدشده",
"trust_support": "پشتیبانی",
"rebook_with": "رزرو دوباره با {name}"
},
"onboarding": {
"step_relation": "برای چه کسی",
@@ -366,30 +370,41 @@
"gender_any": "فرقی ندارد",
"gender_hint": "برای مراقبت‌های شخصی و بدنی، بسیاری از خانواده‌ها پرستار هم‌جنس را ترجیح می‌دهند. انتخاب شما به درخواست رزرو منتقل می‌شود.",
"date_hint": "تاریخ موردنظر شما به پرستار اطلاع داده می‌شود و پرستاری را از نتایج حذف نمی‌کند.",
"date_today": "امروز",
"date_tomorrow": "فردا",
"date_pick_other": "انتخاب تاریخ دیگر",
"price_hint": "برای دیدن همهٔ قیمت‌ها خالی بگذارید.",
"price_min": "از",
"price_max": "تا",
"toman": "تومان",
"whole_city": "کل شهر",
"categories_error": "بارگذاری دسته‌ها ممکن نشد.",
"cta_choose_category_city": "یک دسته و شهر انتخاب کنید",
"cta_loading": "در حال شمارش پرستاران…",
"cta_view_results": "مشاهده {count} پرستار",
"cta_zero_title": "پرستاری با این فیلترها یافت نشد",
"cta_zero_hint": "فیلترها را کمی باز کنید تا پرستاران بیشتری ببینید.",
"results_loading_title": "در حال جستجو…",
"results_count": "{count} پرستار",
"sort_label": "مرتب‌سازی",
"sort_rating": "امتیاز",
"sort_static": "مرتب‌شده بر اساس امتیاز",
"results_error": "در بارگذاری نتایج مشکلی پیش آمد.",
"retry": "تلاش دوباره",
"load_more": "نمایش بیشتر",
"empty_title": "پرستاری با فیلترهای شما پیدا نشد",
"empty_suggest_gender": "فیلتر جنسیت را بردارید.",
"empty_suggest_district": "برای جستجوی کل شهر، منطقه را خالی کنید.",
"empty_suggest_city": "شهر نزدیک دیگری مانند مشهد، اصفهان یا شیراز را امتحان کنید.",
"empty_suggest_date": "تاریخ دیگری را امتحان کنید.",
"empty_cta": "تغییر فیلترها",
"unnamed_nurse": "پرستار",
"unnamed_service": "خدمت",
"completed_visits": "{count, number} ویزیت موفق",
"reviews_count": "({count} نظر)",
"distance_km": "{km} کیلومتر",
"price_from": "از",
"price_chip_range": "از {min} تا {max} تومان",
"price_chip_min": "از {min} تومان",
"price_chip_max": "تا {max} تومان",
"latest_review_title": "آخرین نظر",
"profile_not_found_title": "پرستار در دسترس نیست",
"profile_not_found_body": "این پرستار دیگر در دسترس نیست.",
"profile_not_found_cta": "بازگشت به جستجو",
@@ -418,6 +433,7 @@
"summary_when": "زمان",
"request_title": "درخواست رزرو",
"form_subtitle": "برای این پرستار درخواست بفرستید. هنوز پرداختی انجام نمی‌شود؛ ابتدا پرستار درخواست را بررسی می‌کند.",
"whathappens_title": "چه اتفاقی می‌افتد؟",
"missing_nurse_title": "پرستاری انتخاب نشده است",
"missing_nurse_body": "ابتدا از جست‌وجو یک پرستار انتخاب کنید و سپس درخواست دهید.",
"missing_nurse_cta": "یافتن پرستار",
@@ -433,9 +449,18 @@
"address_empty": "هنوز آدرسی ثبت نکرده‌اید.",
"address_add_cta": "افزودن آدرس",
"address_whole_city": "کل شهر",
"address_change_cta": "تغییر",
"date_label": "تاریخ",
"date_today": "امروز",
"date_tomorrow": "فردا",
"date_pick_other": "انتخاب تاریخ دیگر",
"time_start_label": "از ساعت",
"time_end_label": "تا ساعت",
"time_window_label": "بازهٔ زمانی مراجعه",
"window_morning": "صبح ۸–۱۲",
"window_afternoon": "بعدازظهر ۱۲–۱۶",
"window_evening": "عصر ۱۶–۲۰",
"window_custom": "زمان دلخواه",
"gender_label": "جنسیت مراقب",
"gender_hint": "برای مراقبت‌های بدنی، هم‌جنس بودن مراقب اهمیت دارد. انتخاب شما همراه درخواست ارسال می‌شود.",
"notes_label": "توضیحات برای پرستار",
@@ -457,6 +482,13 @@
"error_not_bookable": "این خدمت در حال حاضر قابل رزرو نیست.",
"error_tenancy": "بیمار یا آدرس یافت نشد.",
"error_generic": "ارسال درخواست ناموفق بود. دوباره تلاش کنید.",
"cta_missing_patient": "انتخاب بیمار",
"cta_missing_service": "انتخاب خدمت",
"cta_missing_address": "انتخاب آدرس",
"cta_missing_date": "تاریخ",
"cta_missing_time": "بازهٔ زمانی",
"cta_missing_gender": "جنسیت مراقب",
"cta_missing_caption": "برای ادامه: {fields}",
"awaiting_title": "درخواست برای پرستار ارسال شد",
"awaiting_subtitle": "در انتظار پاسخ پرستار",
"step_submitted": "درخواست ثبت شد",
@@ -464,6 +496,9 @@
"step_payment": "پرداخت و تایید نهایی",
"response_countdown_label": "مهلت پاسخ پرستار",
"response_elapsed": "در انتظار تایید سرور…",
"response_notify_note": "نتیجه را به شما اطلاع می‌دهیم",
"countdown_about_hours": "حدود {hours} ساعت",
"countdown_about_minutes": "حدود {minutes} دقیقه",
"accepted_badge": "پرستار تایید کرد",
"accepted_body": "برای نهایی‌شدن رزرو، در مهلت زیر پرداخت را انجام دهید.",
"payment_countdown_label": "مهلت پرداخت",
@@ -473,7 +508,8 @@
"cancelling": "در حال لغو…",
"cancel_confirm_title": "این درخواست لغو شود؟",
"cancel_confirm_body": "پرستار دیگر آن را نمی‌بیند. هر زمان می‌توانید پرستار دیگری انتخاب کنید.",
"cancel_confirm_yes": "بله، لغو کن",
"cancel_confirm_keep": "نه، نگه دار",
"cancel_confirm_destructive": "بله، انصراف از درخواست",
"rejected_title": "پرستار درخواست را رد کرد",
"rejected_reason_label": "دلیل پرستار",
"expired_title": "پرستار در مهلت مقرر پاسخ نداد",
@@ -482,6 +518,8 @@
"converted_title": "رزرو شما ثبت شد",
"converted_cta": "مشاهده رزرو",
"terminal_rerequest": "انتخاب پرستار دیگر",
"terminal_rerequest_same_nurse": "درخواست دوباره با زمان دیگر",
"terminal_similar_nurses": "پرستاران مشابه",
"not_found_title": "درخواست یافت نشد",
"not_found_body": "ممکن است این درخواست حذف شده باشد.",
"error_title": "خطایی رخ داد",
@@ -519,6 +557,8 @@
"status_cancelled_by_customer": "لغوشده",
"bd_title": "رزرو",
"bd_ref": "رزرو #{id}",
"bd_nurse_label": "پرستار",
"bd_add_to_calendar": "افزودن به تقویم",
"bd_not_found_title": "رزرو یافت نشد",
"bd_not_found_body": "این رزرو وجود ندارد یا متعلق به شما نیست.",
"bd_my_bookings": "رزروهای من",
@@ -563,6 +603,7 @@
"evv_banner_in_range": "ورود ثبت شد {time} · موقعیت تایید شد (EVV)",
"evv_banner_out_of_range": "ورود ثبت شد {time} · موقعیت خارج از محدوده (در حال بررسی)",
"evv_banner_no_gps": "ورود ثبت شد {time} · موقعیت ثبت نشد",
"evv_presence_headline": "پرستار در محل است · ورود {time}",
"evv_checked_out_at": "خروج ثبت شد {time}",
"evv_gps_denied_note": "دسترسی به موقعیت داده نشد — همچنان می‌توانید ویزیت را ثبت کنید؛ برای بررسی علامت‌گذاری می‌شود.",
"evv_no_open_check_in": "ورود بازی برای ثبت خروج وجود ندارد.",
@@ -587,11 +628,19 @@
"care_locked_body": "شرح کامل مراقبت تنها برای پرستار مسئول شما و پشتیبانی قابل مشاهده است.",
"list_title": "رزروهای من",
"list_subtitle": "مراقبت‌های تاییدشدهٔ شما.",
"list_empty_title": "هنوز رزروی ندارید",
"list_empty_body": "پس از تایید پرستار و پرداخت، رزرو شما اینجا نمایش داده می‌شود.",
"list_error": "بارگذاری رزروها ممکن نشد.",
"list_total": "مبلغ کل",
"inbox_error": "درخواست‌های شما بارگذاری نشد."
"inbox_error": "درخواست‌های شما بارگذاری نشد.",
"tab_pending": "در انتظار پاسخ",
"tab_active": "فعال",
"tab_past": "گذشته",
"pending_empty_title": "درخواست در انتظاری ندارید",
"pending_empty_body": "درخواست‌های در انتظار پاسخ پرستار یا پرداخت شما اینجا نمایش داده می‌شوند.",
"active_empty_title": "رزرو فعالی ندارید",
"active_empty_body": "رزروهای در حال انجام شما اینجا نمایش داده می‌شوند.",
"past_empty_title": "رزرو گذشته‌ای ندارید",
"past_empty_body": "رزروهای تکمیل‌شده یا لغوشدهٔ شما اینجا نمایش داده می‌شوند.",
"load_more": "نمایش بیشتر"
},
"payment": {
"title_checkout": "تایید و پرداخت",
@@ -788,6 +837,13 @@
"badge_verified": "تاییدشده",
"badge_unverified": "احراز نشده",
"badge_expired": "منقضی شده",
"explainer_title": "بالین‌یار چه چیزی را تایید کرده است",
"explainer_open_label": "مشاهدهٔ جزئیات تاییدیه",
"explainer_close": "بستن",
"explainer_intro": "این پرستار این مراحل را با موفقیت گذرانده است:",
"explainer_approved_at": "تاریخ تایید: {date}",
"explainer_not_verified": "این پرستار هنوز احراز هویت نشده است.",
"explainer_error": "بارگذاری جزئیات تاییدیه ممکن نشد.",
"publish_ready_title": "آمادهٔ انتشار",
"publish_ready_body": "احراز هویت شما کامل است. خدمات شما قابل نمایش و رزرو هستند.",
"publish_blocked_title": "برای انتشار، احراز هویت را کامل کنید",
@@ -815,6 +871,9 @@
"cancel_title": "لغو رزرو",
"step_review": "بازبینی",
"step_confirm": "تایید",
"offramp_note": "پیش از لغو، این گزینه‌ها را هم در نظر بگیرید — لغو ممکن است زمان پرستار شما را از دست بدهد.",
"reschedule_cta": "تغییر زمان",
"contact_support_cta": "گفتگو با پشتیبانی",
"policy_free_24h": "لغو رایگان",
"policy_partial_under_24h": "بازپرداخت جزئی",
"policy_customer_no_show": "بدون بازپرداخت",
@@ -835,6 +894,7 @@
"reason_cancelled": "لغوشده",
"admin_approval_explainer": "درخواست لغو شما ثبت می‌شود و بازپرداخت توسط تیم بالین‌یار بررسی و انجام می‌شود؛ بازپرداخت را هرگز خودتان انجام نمی‌دهید.",
"reason_field_label": "دلیل لغو",
"reason_placeholder": "دلیل را انتخاب کنید",
"reason_cat_changed_mind": "نظرم عوض شد",
"reason_cat_schedule_conflict": "تداخل زمانی",
"reason_cat_found_other_care": "مراقب دیگری پیدا کردم",
@@ -1061,6 +1121,9 @@
"title": "ثبت نظر",
"subtitle": "تجربه‌تان را با دیگر خانواده‌ها به اشتراک بگذارید.",
"for_nurse": "دربارهٔ {name}",
"moderation_note": "نظر شما پس از بررسی منتشر می‌شود",
"recap_fallback_service": "دریافت خدمت",
"recap_fallback_nurse": "پرستار",
"rating_label": "امتیاز شما",
"body_label": "توضیحات (اختیاری)",
"body_placeholder": "مراقبت چطور بود؟ اگر نکته‌ای هست بنویسید…",