From a386e3880afb2d57621386b4b2471b1efa3bf492 Mon Sep 17 00:00:00 2001 From: ghorbani Date: Wed, 5 Aug 2026 15:55:09 +0330 Subject: [PATCH] feat: implement comprehensive marriage profile viewing system with multi-language support and custom UI components --- docker-compose.yml | 2 +- public/assets/images/female_avatar.svg | 10 + .../images/islamic_pattern_2_2892_3864.svg | 9 + src/app/api/dev-reset-profile/route.ts | 2 +- src/app/candidate-contact/page.tsx | 233 ++++++++++++++- src/app/new-match/page.tsx | 224 +++++++++++---- src/app/new-match/profile/page.tsx | 162 ++++++++--- src/app/request-accepted/page.tsx | 65 +++-- src/app/request-sent/page.tsx | 2 +- .../Componentes/navigation-button.tsx | 25 ++ .../Componentes/payment-swipe-modal.tsx | 147 ---------- .../Componentes/question-answer-storage.tsx | 6 +- .../Componentes/question-birthplace.tsx | 5 +- src/components/Componentes/question-phone.tsx | 267 ++++++++++++------ .../Componentes/question-section-flow.tsx | 7 +- .../subscription-required-sheet.tsx | 2 +- src/components/Componentes/token-switcher.tsx | 81 ++++-- src/data/questions/en.json | 9 - src/data/questions/fa.json | 9 - src/translations/locales/ar.json | 48 +++- src/translations/locales/az.json | 48 +++- src/translations/locales/bn.json | 48 +++- src/translations/locales/da.json | 48 +++- src/translations/locales/de.json | 48 +++- src/translations/locales/en.json | 48 +++- src/translations/locales/es.json | 48 +++- src/translations/locales/fa.json | 46 ++- src/translations/locales/fr.json | 48 +++- src/translations/locales/gu.json | 48 +++- src/translations/locales/ha.json | 48 +++- src/translations/locales/he.json | 48 +++- src/translations/locales/hi.json | 48 +++- src/translations/locales/id.json | 48 +++- src/translations/locales/ks.json | 48 +++- src/translations/locales/pt.json | 48 +++- src/translations/locales/ru.json | 48 +++- src/translations/locales/sw.json | 48 +++- src/translations/locales/tg.json | 48 +++- src/translations/locales/tr.json | 48 +++- src/translations/locales/ul.json | 48 +++- src/translations/locales/ur.json | 48 +++- src/translations/locales/uz.json | 48 +++- src/translations/locales/zh.json | 48 +++- 43 files changed, 1804 insertions(+), 613 deletions(-) create mode 100644 public/assets/images/female_avatar.svg create mode 100644 public/assets/images/islamic_pattern_2_2892_3864.svg delete mode 100644 src/components/Componentes/payment-swipe-modal.tsx diff --git a/docker-compose.yml b/docker-compose.yml index fd12d22..7d3681f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: environment: - NODE_ENV=production - NEXT_PUBLIC_API_BASE_URL=https://habibapp.com - - NEXT_PUBLIC_SECURITY_KEY=t5yugymks5458fd4ghfg6h6 + - NEXT_PUBLIC_SECURITY_KEY=t5yugymks5458fd4ghfg6h6fg restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000"] diff --git a/public/assets/images/female_avatar.svg b/public/assets/images/female_avatar.svg new file mode 100644 index 0000000..15ee4d6 --- /dev/null +++ b/public/assets/images/female_avatar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/assets/images/islamic_pattern_2_2892_3864.svg b/public/assets/images/islamic_pattern_2_2892_3864.svg new file mode 100644 index 0000000..6e57565 --- /dev/null +++ b/public/assets/images/islamic_pattern_2_2892_3864.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/app/api/dev-reset-profile/route.ts b/src/app/api/dev-reset-profile/route.ts index 799273d..7ff4593 100644 --- a/src/app/api/dev-reset-profile/route.ts +++ b/src/app/api/dev-reset-profile/route.ts @@ -19,7 +19,7 @@ export async function POST(request: NextRequest) { } const scriptPath = - "C:\\Users\\User\\.gemini\\antigravity-ide\\brain\\5015ea2d-f1fc-4e3d-9372-4bb0670449cc\\scratch\\reset_user.py"; + "c:\\Users\\User\\Downloads\\NWHCO\\Habib\\backend\\scripts\\reset_user.py"; // Construct the command safely with numeric userId const command = `python "${scriptPath}" ${Number(userId)}`; const { stdout, stderr } = await execAsync(command); diff --git a/src/app/candidate-contact/page.tsx b/src/app/candidate-contact/page.tsx index 1605b6c..6776fb1 100644 --- a/src/app/candidate-contact/page.tsx +++ b/src/app/candidate-contact/page.tsx @@ -1,30 +1,233 @@ "use client"; import Image from "next/image"; -import { useState } from "react"; -import Button from "@/components/Componentes/button"; +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; +import { DotsLoader } from "@/components/Componentes/button"; import CallResultSheet from "@/components/Componentes/call-result-sheet"; import DismissReasonSheet from "@/components/Componentes/dismiss-reason-sheet"; import NavigationButton from "@/components/Componentes/navigation-button"; +import AdvisorActionsCard from "@/components/Componentes/advisor-actions-card"; +import { PageBackground } from "@/components/Componentes/page-background"; +import { useMarriageProfileQuery } from "@/hooks/marriage/use-profile-main"; +import { useSubmitMarriageContactStatusMutation } from "@/hooks/marriage/use-contact-status"; +import { getSubmitPath } from "@/lib/get-submit-path"; +import { localizePath } from "@/translations/config"; import { useI18n } from "@/translations/provider"; +const advisorAvatars = [ + { id: "advisor-primary", src: "/assets/images/Avatar Image.png" }, + { id: "advisor-secondary", src: "/assets/images/Ellipse 370.png" }, + { id: "advisor-tertiary", src: "/assets/images/Avatar Image.png" }, +]; + export default function CandidateContactPage() { - const { dictionary: t } = useI18n(); + const { dictionary: t, locale } = useI18n(); + const router = useRouter(); const [isCallResultSheetOpen, setIsCallResultSheetOpen] = useState(false); const [isDismissReasonSheetOpen, setIsDismissReasonSheetOpen] = useState(false); + const { data: profile, isLoading: isProfileLoading } = useMarriageProfileQuery({ + refetchInterval: 3000, + }); + + useEffect(() => { + if (!profile) { + return; + } + const targetPath = getSubmitPath(profile); + if (targetPath !== "/candidate-contact") { + router.replace(localizePath(targetPath, locale)); + } + }, [profile, router, locale]); + + const caseId = profile?.active_case?.case_id; + const isFemale = profile?.gender === "female"; + + const contactStatusMutation = useSubmitMarriageContactStatusMutation( + caseId ?? "", + { + onSuccess: () => { + router.push(localizePath("/finding-match", locale)); + }, + }, + ); + + const handleNoContactReport = async () => { + if (!caseId || contactStatusMutation.isPending) return; + await contactStatusMutation.mutateAsync({ + action: "no_contact", + custom_note: "No contact reported by female candidate after decision window", + }); + }; + + if (isProfileLoading) { + return ( + <> + +
+ +
+ + ); + } + + // If female, render the beautiful, customized layout matching the design + if (isFemale) { + return ( + <> + + + {isCallResultSheetOpen ? ( + setIsCallResultSheetOpen(false)} + onOtherReasonsClick={() => setIsDismissReasonSheetOpen(true)} + onSubmit={async (value) => { + if (caseId) { + await contactStatusMutation.mutateAsync({ + action: "contacted", + custom_note: value, + }); + } + }} + /> + ) : null} + + {isDismissReasonSheetOpen ? ( + setIsDismissReasonSheetOpen(false)} + onSubmit={async (value) => { + if (caseId) { + await contactStatusMutation.mutateAsync({ + action: "contacted", + custom_note: value, + }); + } + }} + /> + ) : null} + +
+
+ +

{t.common.appName}

+ +
+ +
+
+ {/* Illustration section */} +
+ {t.candidateContact.imageAlt} +
+ + {/* Title / Status message */} +

+ {t.candidateContact.title} +

+ + {/* Action Buttons Row */} +
+ + + +
+ + {/* Red warning box */} +
+

+ {t.candidateContact.contactWarning} +

+
+
+ +
+ {/* Advisor section */} + + + {/* Profile Locked banner */} +
+
+ lock +

+ {t.requestSent.profileLocked} +

+
+
+
+
+
+ + ); + } + + // Fallback UI for male/other users return ( <> + + {isCallResultSheetOpen ? ( setIsCallResultSheetOpen(false)} onOtherReasonsClick={() => setIsDismissReasonSheetOpen(true)} + onSubmit={async (value) => { + if (caseId) { + await contactStatusMutation.mutateAsync({ + action: "contacted", + custom_note: value, + }); + } + }} /> ) : null} + {isDismissReasonSheetOpen ? ( setIsDismissReasonSheetOpen(false)} + onSubmit={async (value) => { + if (caseId) { + await contactStatusMutation.mutateAsync({ + action: "contacted", + custom_note: value, + }); + } + }} /> ) : null} @@ -54,14 +257,28 @@ export default function CandidateContactPage() { style={{ paddingBottom: `calc(2rem + var(--safe-bottom))` }} className="fixed right-0 bottom-0 left-0 z-20 mx-auto flex w-full sm:max-w-[375px] gap-3 rounded-t-[30px] bg-white px-[17px] pt-6 shadow-[0_-18px_50px_rgba(15,23,42,0.08)]" > - - + + ); } + diff --git a/src/app/new-match/page.tsx b/src/app/new-match/page.tsx index 8940260..8be1c90 100644 --- a/src/app/new-match/page.tsx +++ b/src/app/new-match/page.tsx @@ -9,14 +9,15 @@ import AdvisorActionsCard from "@/components/Componentes/advisor-actions-card"; import { DotsLoader } from "@/components/Componentes/button"; import NavigationButton from "@/components/Componentes/navigation-button"; import { PageBackground } from "@/components/Componentes/page-background"; -import PaymentSwipeModal from "@/components/Componentes/payment-swipe-modal"; +import { IoClose } from "react-icons/io5"; +import { useHabcoinPaymentMutation } from "@/hooks/marriage/use-habcoin-payment"; +import { useRespondToMarriageCaseMutation } from "@/hooks/marriage/use-case-respond"; import type { MarriageField, MarriageFieldValue, MarriageMatchSummary, MarriagePhoneFieldValue, } from "@/hooks/marriage/types"; -import { useHabcoinPaymentMutation } from "@/hooks/marriage/use-habcoin-payment"; import { useMarriageProfileQuery } from "@/hooks/marriage/use-profile-main"; import { useViewPaddings } from "@/hooks/use-view-paddings"; import { getSubmitPath } from "@/lib/get-submit-path"; @@ -214,8 +215,51 @@ export default function NewMatchPage() { const { dictionary: t, locale } = useI18n(); const { top, bottom } = useViewPaddings(); const { data: profile, isError, isLoading } = useMarriageProfileQuery(); + + const [isPaymentSheetOpen, setIsPaymentSheetOpen] = useState(false); const [paymentError, setPaymentError] = useState(null); + const paymentMutation = useHabcoinPaymentMutation(); + const caseId = profile?.active_case?.case_id; + const respondMutation = useRespondToMarriageCaseMutation(caseId ?? "", { + onSuccess: () => { + router.replace(localizePath("/finding-match", locale)); + }, + }); + + const handlePayment = async () => { + const recommendedPlanId = profile?.recommended_plan?.id; + if (!recommendedPlanId) return; + + try { + setPaymentError(null); + await paymentMutation.mutateAsync(recommendedPlanId); + setIsPaymentSheetOpen(false); + router.push(localizePath("/new-match/profile", locale)); + } catch (err: any) { + console.error("Payment failed", err); + const msg = + err?.response?.data?.error || err?.message || "Payment failed"; + const modalT = (t as any).paymentModal || {}; + if (msg === "Not enough coins") { + setPaymentError( + modalT.insufficientCoins || + "Insufficient coin balance. Please recharge your account.", + ); + } else { + setPaymentError(msg); + } + } + }; + + const handleDecline = async () => { + if (!caseId) return; + try { + await respondMutation.mutateAsync({ action: "reject" }); + } catch (err) { + console.error("Decline failed", err); + } + }; useEffect(() => { if (!profile) { @@ -235,54 +279,23 @@ export default function NewMatchPage() { const isFemaleProfile = profile?.gender === "female"; const matchHeadingTitle = isFemaleProfile - ? "پیشنهاد ازدواج جدید" - : "YOU HAVE A NEW MATCH!"; + ? t.match.newMatchTitleFemale + : t.match.newMatchTitleMale; const matchHeadingDescription = isFemaleProfile - ? "یک گزینه‌ی مناسب برای شما پیدا شده است. در صورت تایید، مشخصات شما جهت ادامه فرآیند معرفی ارزیابی خواهد شد." - : "A matching profile has been found. Information is provided by the candidate's family or introducers. If you approve, we'll share your profile with her family."; + ? t.match.newMatchDescriptionFemale + : t.match.newMatchDescriptionMale; const isMale = profile?.gender === "male"; const hasActiveSub = !!profile?.active_subscription; const isMatchAvailable = !!profile?.match_summary; - const showPaymentModal = isMale && !hasActiveSub && isMatchAvailable; - - const handlePayment = async () => { - const recommendedPlanId = profile?.recommended_plan?.id; - if (!recommendedPlanId) return; - - try { - setPaymentError(null); - await paymentMutation.mutateAsync(recommendedPlanId); - } catch (err: any) { - console.error("Payment failed", err); - const msg = - err?.response?.data?.error || err?.message || "Payment failed"; - const modalT = (t as any).paymentModal || {}; - if (msg === "Not enough coins") { - setPaymentError( - modalT.insufficientCoins || - "Insufficient coin balance. Please recharge your account.", - ); - } else { - setPaymentError(msg); - } - } - }; return ( <> - {showPaymentModal && ( - - )}
- { + if (isMale && !hasActiveSub) { + setIsPaymentSheetOpen(true); + } else { + router.push(localizePath("/new-match/profile", locale)); + } + }} + className="mt-[15px] inline-flex w-full items-center justify-center rounded-[10px] border-none bg-white py-[12px] text-[16px] font-semibold text-[#F0445B] no-underline shadow-none hover:bg-white/95 transition-colors cursor-pointer" > - View Profile - + {t.match.viewMoreDetails} + ) : (

@@ -380,18 +400,122 @@ export default function NewMatchPage() { getAdvisorHref="/questions-list" /> -

- - - - Profile locked - +
+ + +
+ + {profile?.can_edit_profile === false && ( +
+
+
+
+ )} + + {isPaymentSheetOpen && ( +
+
+ + +
+
+ +
+ +

+ {t.paymentModal?.title || "Verification & Subscription Activation"} +

+ +

+ {t.paymentModal?.verificationText || "This payment acts as a verification process for your account and activates a 3-month subscription to receive new case introductions. The cost of this subscription is 50 Habib Coins."} +

+ +
+ + {t.paymentModal?.activeFor3Months || "Valid for 3 months"} + + + {t.paymentModal?.cost || "50 Habib Coins"}
+ +

+ {t.paymentModal?.disclaimerText || "Please note that there is no guarantee for a specific number of cases, and the volume of incoming cases is solely subject to profile compatibility with other users."} +

+ + {paymentError && ( +
+ {paymentError} +
+ )} + +
+ + + +
- + )} ); } diff --git a/src/app/new-match/profile/page.tsx b/src/app/new-match/profile/page.tsx index b0c43bb..0004deb 100644 --- a/src/app/new-match/profile/page.tsx +++ b/src/app/new-match/profile/page.tsx @@ -85,7 +85,7 @@ function canAcceptProfile( return status === "introduced"; } -function MatchField({ field }: { field: MarriageField }) { +function MatchField({ field, isCandidateFemale }: { field: MarriageField; isCandidateFemale: boolean }) { const value = formatFieldValue(field.value); if (!value || isImageField(field)) { @@ -94,6 +94,25 @@ function MatchField({ field }: { field: MarriageField }) { const label = field.label || titleFromKey(field.key); + if (isCandidateFemale) { + return ( +
+

+ {label} +

+

+ {value} +

+
+ ); + } + return (

{label}

@@ -104,8 +123,10 @@ function MatchField({ field }: { field: MarriageField }) { function MatchPublicProfileFields({ publicInfo, + isCandidateFemale, }: { publicInfo: MarriageField[] | null | undefined; + isCandidateFemale: boolean; }) { const visibleFields = useMemo(() => { if (!publicInfo) return []; @@ -130,6 +151,16 @@ function MatchPublicProfileFields({ ); } + if (isCandidateFemale) { + return ( +
+ {visibleFields.map((field) => ( + + ))} +
+ ); + } + return (

@@ -137,7 +168,7 @@ function MatchPublicProfileFields({

{visibleFields.map((field) => ( - + ))}
@@ -214,6 +245,17 @@ function NewMatchProfileSkeleton() { ); } +function formatBoldText(text: string) { + if (!text) return ""; + const parts = text.split(/\*\*([^*]+)\*\*/g); + return parts.map((part, index) => { + if (index % 2 === 1) { + return {part}; + } + return part; + }); +} + export default function NewMatchProfilePage() { const { dictionary: t, locale } = useI18n(); const router = useRouter(); @@ -234,7 +276,7 @@ export default function NewMatchProfilePage() { return; } const targetPath = getSubmitPath(profile); - if (targetPath !== "/new-match") { + if (targetPath !== "/new-match" && targetPath !== "/request-sent") { router.replace(localizePath(targetPath, locale)); } }, [profile, locale, router]); @@ -271,15 +313,38 @@ export default function NewMatchProfilePage() { return formatFieldValue(firstVal) || "نامشخص"; }, [profile?.match_summary?.public_info]); + const isCandidateFemale = + profile?.match_summary?.gender === "female" || + profile?.gender === "male"; + const avatarSrc = isCandidateFemale + ? "/assets/images/female_avatar.svg" + : "/assets/images/Group 1597880481.png"; + if (isLoading || !profile) { return ; } const isSubmitting = respondMutation.isPending; - const isAcceptProfileEnabled = - Boolean(caseId) && - !isSubmitting && - canAcceptProfile(profile?.gender, caseStatus); + const isAcceptProfileEnabled = isFemaleProfile + ? !isSubmitting + : ( + Boolean(caseId) && + !isSubmitting && + canAcceptProfile(profile?.gender, caseStatus) + ); + + const nameParts = candidateName.trim().split(/\s+/); + const firstName = nameParts[0] || ""; + const lastName = nameParts.slice(1).join(" ") || ""; + + const mainClass = "-mx-[17px] flex min-h-screen flex-col pb-10"; + + const mainStyle = { + backgroundImage: `url("/assets/images/islamic_pattern_2_2892_3864.svg"), linear-gradient(178.25deg, rgba(255, 197, 196, 0.2) 1.48%, rgba(251, 237, 237, 0.2) 20.64%)`, + backgroundColor: '#F5F5F5', + backgroundRepeat: 'repeat-y', + backgroundSize: '100% auto, 100% 100%' + }; return ( <> @@ -287,8 +352,8 @@ export default function NewMatchProfilePage() { {isRequestSheetOpen ? ( isFemaleProfile ? ( (
@@ -354,8 +417,8 @@ export default function NewMatchProfilePage() { ) : ( (
- -
- ); -} - -export default PaymentSwipeModal; diff --git a/src/components/Componentes/question-answer-storage.tsx b/src/components/Componentes/question-answer-storage.tsx index dc402fc..a5bc6a2 100644 --- a/src/components/Componentes/question-answer-storage.tsx +++ b/src/components/Componentes/question-answer-storage.tsx @@ -53,6 +53,7 @@ type QuestionAnswersContextValue = { ) => MarriageFieldValue | undefined; hasPendingSync: boolean; isSaving: boolean; + isLoading: boolean; setAnswerValue: ( question: QuestionField, questionIndex: number, @@ -319,7 +320,7 @@ export function QuestionAnswersProvider({ const canEdit = profile?.can_edit_profile !== false; const backendSlug = useMemo(() => toBackendSlug(slug), [slug]); - const { data: serverSectionData } = useMarriageSectionDataQuery(backendSlug); + const { data: serverSectionData, isLoading: isLoadingData } = useMarriageSectionDataQuery(backendSlug); useEffect(() => { questionsRef.current = questions; @@ -534,9 +535,10 @@ export function QuestionAnswersProvider({ getAnswerValue, hasPendingSync, isSaving, + isLoading: isLoadingData, setAnswerValue, }), - [flushAnswers, getAnswerValue, hasPendingSync, isSaving, setAnswerValue], + [flushAnswers, getAnswerValue, hasPendingSync, isSaving, isLoadingData, setAnswerValue], ); return ( diff --git a/src/components/Componentes/question-birthplace.tsx b/src/components/Componentes/question-birthplace.tsx index 890a99a..ff49bdd 100644 --- a/src/components/Componentes/question-birthplace.tsx +++ b/src/components/Componentes/question-birthplace.tsx @@ -81,7 +81,7 @@ export function QuestionBirthplace({ disabled, }: QuestionBirthplaceProps) { const { dictionary: t, locale } = useI18n(); - const { getAnswerValue, setAnswerValue } = useQuestionAnswers(); + const { getAnswerValue, setAnswerValue, isLoading } = useQuestionAnswers(); const rawValue = getAnswerValue(question, questionIndex); const initial = parseValue(rawValue); @@ -186,10 +186,11 @@ export function QuestionBirthplace({ }; useEffect(() => { + if (isLoading) return; if (isResidence) { detectLocation(); } - }, [isResidence]); + }, [isResidence, isLoading]); const handleAutoClick = () => { setMode("auto"); diff --git a/src/components/Componentes/question-phone.tsx b/src/components/Componentes/question-phone.tsx index 24926d5..8421b00 100644 --- a/src/components/Componentes/question-phone.tsx +++ b/src/components/Componentes/question-phone.tsx @@ -224,18 +224,35 @@ function getNormalizedPhoneValue(codeValue: string, phoneValue: string) { export function QuestionPhone({ question, questionIndex, - countryCode = "+98", + countryCode = "+44", disabled, }: QuestionPhoneProps) { const { locale } = useI18n(); - const { getAnswerValue, setAnswerValue } = useQuestionAnswers(); + const { getAnswerValue, setAnswerValue, isLoading } = useQuestionAnswers(); const value = getAnswerValue(question, questionIndex); - const defaultCodeValue = countryCode.trim() || "+98"; + const defaultCodeValue = countryCode.trim() || "+44"; const initialValue = readPhoneValue(value, defaultCodeValue); const [codeValue, setCodeValue] = useState(initialValue.codeValue); const [phoneValue, setPhoneValue] = useState(initialValue.phoneValue); const lastCommittedValueRef = useRef(value); const hasFetchedIpRef = useRef(false); + const userInteractedRef = useRef(false); + + // Determine if we need to resolve country code (loading from backend or fetching IP) + const needsIpFetch = () => { + if (typeof window === "undefined") return false; + // If there's a cached code or we already checked, no need to fetch + if (localStorage.getItem("geoIPPhoneCode")) return false; + if (localStorage.getItem("hasCheckedGeoIPPhone")) return false; + return true; + }; + const [isResolvingCode, setIsResolvingCode] = useState(() => { + // On first render: if backend is loading or we need an IP fetch, show loading + if (isLoading) return true; + // If there's already a saved value in the initial render, no loading needed + if (initialValue.phoneValue || (initialValue.codeValue && initialValue.codeValue !== defaultCodeValue)) return false; + return needsIpFetch(); + }); const [isOpen, setIsOpen] = useState(false); const [searchQuery, setSearchQuery] = useState(""); @@ -371,45 +388,97 @@ export function QuestionPhone({ }, [defaultCodeValue, value]); useEffect(() => { + // Wait until backend data is loaded before deciding + if (isLoading) return; if (hasFetchedIpRef.current) return; - const alreadyChecked = - typeof window !== "undefined" - ? localStorage.getItem("hasCheckedGeoIPPhone") - : "true"; - if (alreadyChecked) return; + if (userInteractedRef.current) { + setIsResolvingCode(false); + return; + } - if (!value) { + // If user already has a saved value from backend, use it — no IP check needed + const hasSavedValue = value && ( + (isMarriagePhoneFieldValue(value) && (value.countryCode || value.phoneNumber)) || + (typeof value === "string" && value.trim().length > 0) + ); + + if (hasSavedValue) { hasFetchedIpRef.current = true; + setIsResolvingCode(false); if (typeof window !== "undefined") { localStorage.setItem("hasCheckedGeoIPPhone", "true"); } - fetch("https://ipapi.co/json/") - .then((res) => res.json()) - .then((data) => { - if (data && data.country_calling_code) { - const ipCode = data.country_calling_code.startsWith("+") - ? data.country_calling_code - : `+${data.country_calling_code}`; - setCodeValue(ipCode); - updateStoredValue(ipCode, phoneValue); - } - }) - .catch(() => { - fetch("https://ipwho.is/") - .then((res) => res.json()) - .then((data) => { - if (data && data.calling_code) { - const ipCode = data.calling_code.startsWith("+") - ? data.calling_code - : `+${data.calling_code}`; - setCodeValue(ipCode); - updateStoredValue(ipCode, phoneValue); - } - }) - .catch(() => {}); - }); + return; } - }, []); + + // Check if we already fetched IP in a previous session and cached the result + if (typeof window !== "undefined") { + const cachedCode = localStorage.getItem("geoIPPhoneCode"); + if (cachedCode) { + hasFetchedIpRef.current = true; + setCodeValue(cachedCode); + setIsResolvingCode(false); + return; + } + + // If we already checked and got nothing useful, don't check again + const alreadyChecked = localStorage.getItem("hasCheckedGeoIPPhone"); + if (alreadyChecked) { + hasFetchedIpRef.current = true; + setIsResolvingCode(false); + return; + } + } + + // First time ever — fetch country code from IP + hasFetchedIpRef.current = true; + setIsResolvingCode(true); + + const applyCode = (code: string) => { + if (userInteractedRef.current) return; + const ipCode = code.startsWith("+") ? code : `+${code}`; + setCodeValue(ipCode); + setIsResolvingCode(false); + if (typeof window !== "undefined") { + localStorage.setItem("geoIPPhoneCode", ipCode); + localStorage.setItem("hasCheckedGeoIPPhone", "true"); + } + }; + + const applyFallback = () => { + if (userInteractedRef.current) return; + // Default to UK (+44) if IP lookup fails + setCodeValue("+44"); + setIsResolvingCode(false); + if (typeof window !== "undefined") { + localStorage.setItem("hasCheckedGeoIPPhone", "true"); + } + }; + + fetch("https://ipapi.co/json/") + .then((res) => res.json()) + .then((data) => { + if (data && data.country_calling_code) { + applyCode(data.country_calling_code); + } else { + throw new Error("No calling code in response"); + } + }) + .catch(() => { + fetch("https://ipwho.is/") + .then((res) => res.json()) + .then((data) => { + if (data && data.calling_code) { + applyCode(data.calling_code); + } else { + applyFallback(); + } + }) + .catch(() => { + applyFallback(); + }); + }); + }, [isLoading, value]); const updateStoredValue = (nextCodeValue: string, nextPhoneValue: string) => { const draftValue = writePhoneValue(nextCodeValue, nextPhoneValue); @@ -429,6 +498,7 @@ export function QuestionPhone({ }; const handleSelectCountryCode = (selectedCode: string) => { + userInteractedRef.current = true; if (typeof window !== "undefined") { localStorage.setItem("hasCheckedGeoIPPhone", "true"); } @@ -457,66 +527,81 @@ export function QuestionPhone({ dir="ltr" className={[ "flex h-[54px] w-full items-center rounded-[16px] border bg-white text-[#181818] focus-within:border-[#6F6F6F] focus-within:ring-1 focus-within:ring-[#6F6F6F] transition-all", - showInvalidState - ? "border-[#F2465F] ring-1 ring-[#F2465F]" - : "border-[#D0D5DD] hover:border-[#98A2B3]", + isResolvingCode + ? "border-[#D0D5DD]" + : showInvalidState + ? "border-[#F2465F] ring-1 ring-[#F2465F]" + : "border-[#D0D5DD] hover:border-[#98A2B3]", ].join(" ")} > -
- +
+ + { + userInteractedRef.current = true; + if (typeof window !== "undefined") { + localStorage.setItem("hasCheckedGeoIPPhone", "true"); + } + const nextPhoneValue = sanitizePhoneNumber(event.target.value); + const maxLen = getMaxLengthForCountry(codeValue); + const truncatedPhone = nextPhoneValue.slice(0, maxLen); + + setPhoneValue(truncatedPhone); + updateStoredValue(codeValue, truncatedPhone); + }} + dir="ltr" + className="h-full w-full border-0 bg-transparent p-0 text-left text-[15px] font-medium leading-none text-[#181818] tabular-nums outline-none placeholder:text-[#98A2B3]" /> - - -
- - { - if (typeof window !== "undefined") { - localStorage.setItem("hasCheckedGeoIPPhone", "true"); - } - const nextPhoneValue = sanitizePhoneNumber(event.target.value); - const maxLen = getMaxLengthForCountry(codeValue); - const truncatedPhone = nextPhoneValue.slice(0, maxLen); - - setPhoneValue(truncatedPhone); - updateStoredValue(codeValue, truncatedPhone); - }} - dir="ltr" - className="h-full w-full border-0 bg-transparent p-0 text-left text-[15px] font-medium leading-none text-[#181818] tabular-nums outline-none placeholder:text-[#98A2B3]" - /> - + + + )}
- {showInvalidState ? ( + {!isResolvingCode && showInvalidState ? ( Enter a valid phone number with country code. diff --git a/src/components/Componentes/question-section-flow.tsx b/src/components/Componentes/question-section-flow.tsx index 804b0e8..c184769 100644 --- a/src/components/Componentes/question-section-flow.tsx +++ b/src/components/Componentes/question-section-flow.tsx @@ -14,6 +14,7 @@ import QuestionSnapList from "./question-snap-list"; import type { QuestionField } from "@/data/question-data"; import NoticeBox from "./notice-box"; import { getStoredAge } from "./progress-helper"; +import { useMarriageProfileQuery } from "@/hooks/marriage/use-profile-main"; type QuestionSectionFlowProps = { children: ReactNode; @@ -157,11 +158,15 @@ function SectionFlowContent({ handleContinue, ]); + const { data: profile } = useMarriageProfileQuery(); + const isFemale = profile?.gender === "female"; const age = getStoredAge(); const activeQuestion = questions?.[activeQuestionIndex]; const showNotice = activeQuestion?.showGuardianNotice; const isUnder27 = - age !== null ? age < 27 : (activeQuestion?.required ?? false); + age !== null + ? isFemale && age < 27 + : (activeQuestion?.required ?? false); return ( <> diff --git a/src/components/Componentes/subscription-required-sheet.tsx b/src/components/Componentes/subscription-required-sheet.tsx index 27c7aa6..b34cbc9 100644 --- a/src/components/Componentes/subscription-required-sheet.tsx +++ b/src/components/Componentes/subscription-required-sheet.tsx @@ -68,7 +68,7 @@ export function SubscriptionRequiredSheet({ height={18} className="shrink-0" /> - 50 Habib Coin + 50 Coins diff --git a/src/components/Componentes/token-switcher.tsx b/src/components/Componentes/token-switcher.tsx index b3390dd..d620097 100644 --- a/src/components/Componentes/token-switcher.tsx +++ b/src/components/Componentes/token-switcher.tsx @@ -6,9 +6,11 @@ import { getClientCookie, setClientCookie } from "@/lib/cookies"; export const FEMALE_TOKEN = "545f61bb3e061ccb9b19f84715eb1b1ed4740331"; export const MALE_TOKEN = "f3a7543b44ef0a713d1ee0d4f7866b3825cf1308"; +export const MALE_2_TOKEN = "56cd0fceb93f7cecf7ffa84c590135026cf54a1d"; export const FEMALE_EMAIL = "m.a.ghorbani01@gmail.com"; export const MALE_EMAIL = "muhammadamin.ghorbani@gmail.com"; +export const MALE_2_EMAIL = "habibwabackup@gmail.com"; const TOKEN_COOKIE_NAME = "HABIB_TOKEN"; @@ -38,6 +40,7 @@ export function TokenSwitcher({ }, []); const isMale = currentToken === MALE_TOKEN; + const isMale2 = currentToken === MALE_2_TOKEN; const isFemale = currentToken === FEMALE_TOKEN; const isNoToken = currentToken === "NO_TOKEN" || !currentToken; @@ -103,7 +106,9 @@ export function TokenSwitcher({ ? MALE_TOKEN : userId === 147714 ? FEMALE_TOKEN - : "NO_TOKEN"; + : userId === 146024 + ? MALE_2_TOKEN + : "NO_TOKEN"; setClientCookie(TOKEN_COOKIE_NAME, targetToken); setClientCookie("habib_token", targetToken); @@ -142,11 +147,13 @@ export function TokenSwitcher({ {isMale ? "آقا 👨" - : isFemale - ? "خانم 👩" - : isNoToken - ? "بدون توکن 👤" - : "توکن 🔑"} + : isMale2 + ? "آقا ۲ 👨" + : isFemale + ? "خانم 👩" + : isNoToken + ? "بدون توکن 👤" + : "توکن 🔑"} @@ -183,15 +190,15 @@ export function TokenSwitcher({ +
+ {isMale2 && ( + + فعال + + )} + +
+ + {/* Female option card */}
handleSelectToken(FEMALE_TOKEN)} - className="flex-1 flex items-center gap-3 p-3.5 text-right" + className="flex-1 flex items-center gap-3 p-3.5 text-right min-w-0" > - 👩 -
+ 👩 +
حساب خانم
-
+
{FEMALE_EMAIL}
-
+
{FEMALE_TOKEN}
diff --git a/src/data/questions/en.json b/src/data/questions/en.json index 477ac6a..b328739 100644 --- a/src/data/questions/en.json +++ b/src/data/questions/en.json @@ -260,9 +260,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "showGuardianNotice": true, "tooltip": "This field specifies the full name of the designated intermediary whose contact information is provided to the other party to facilitate communication.", "extras": { @@ -280,9 +277,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "extras": { "placeHolder": "Select one option", "range": [0, 0], @@ -309,9 +303,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "extras": { "placeHolder": "+44 7911 123456", "range": [0, 0], diff --git a/src/data/questions/fa.json b/src/data/questions/fa.json index 4029d0c..9c8e75b 100644 --- a/src/data/questions/fa.json +++ b/src/data/questions/fa.json @@ -260,9 +260,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "showGuardianNotice": true, "tooltip": "این فیلد نام و نام خانوادگی رابط مشخص‌شده را تعیین می‌کند که اطلاعات تماس او جهت تسهیل ارتباط در اختیار طرف مقابل قرار می‌گیرد.", "extras": { @@ -280,9 +277,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "extras": { "placeHolder": "انتخاب کنید", "range": [0, 0], @@ -309,9 +303,6 @@ "genders": ["female"], "maxAge": 26 }, - "audience": { - "genders": ["female"] - }, "extras": { "placeHolder": "+44 7911 123456", "range": [0, 0], diff --git a/src/translations/locales/ar.json b/src/translations/locales/ar.json index 63e17d1..adcdccd 100644 --- a/src/translations/locales/ar.json +++ b/src/translations/locales/ar.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "السيرة الذاتية والتوقعات", "sections": "بيانات أقسام النموذج", "tests": "التقييمات النفسية" - } + }, + "viewMoreDetails": "عرض المزيد من التفاصيل", + "newMatchTitleFemale": "اقتراح زواج جديد", + "newMatchTitleMale": "لديك مباراة جديدة!", + "newMatchDescriptionFemale": "لقد تم العثور على التطابق المناسب لك. في حالة الموافقة، سيتم تقييم ملفك الشخصي لمتابعة عملية التقديم.", + "newMatchDescriptionMale": "إذا قمت بالمتابعة، فسنقوم بإخطار الطرف الآخر، وبعد موافقته، يمكنك عرض معلومات الاتصال الخاصة بكل منكما.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "تفاصيل الاتصال", + "contactDetailDescription": "يُرجى الإشارة أثناء المكالمة إلى أنه تم تعريفكم عبر تطبيق حبيب للزواج.", + "contactNotAvailable": "معلومات الاتصال ليست متاحة بعد." }, "findingMatch": { "title": "البحث الخاص بك نشط", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "الدفع", + "pay": "ادفع" }, "maleRejectionWarning": { "title": "تحذير رفض الاقتراح", diff --git a/src/translations/locales/az.json b/src/translations/locales/az.json index a439c94..6bbbf48 100644 --- a/src/translations/locales/az.json +++ b/src/translations/locales/az.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Daha ətraflı baxın", + "newMatchTitleFemale": "Yeni Evlilik Təklifi", + "newMatchTitleMale": "YENİ MATINIZ VAR!", + "newMatchDescriptionFemale": "Sizin üçün uyğun uyğunluq tapıldı. Təsdiq edilərsə, təqdimat prosesinə davam etmək üçün profiliniz qiymətləndiriləcək.", + "newMatchDescriptionMale": "Davam etsəniz, qarşı tərəfi xəbərdar edəcəyik və onların təsdiqindən sonra siz bir-birinizin əlaqə məlumatlarına baxa bilərsiniz.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Əlaqə məlumatı", + "contactDetailDescription": "Zəng zamanı Habib Marriage tətbiqi vasitəsilə tanış olduğunuzu qeyd edin.", + "contactNotAvailable": "Əlaqə məlumatı hələ mövcud deyil." }, "findingMatch": { "title": "AXTARIŞINIZ AKTİVDİR", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Ödəniş", + "pay": "Ödə" }, "maleRejectionWarning": { "title": "İmtina Xəbərdarlığı", diff --git a/src/translations/locales/bn.json b/src/translations/locales/bn.json index fdc0e5c..53d8acb 100644 --- a/src/translations/locales/bn.json +++ b/src/translations/locales/bn.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "আরো বিস্তারিত দেখুন", + "newMatchTitleFemale": "নতুন বিয়ের প্রস্তাব", + "newMatchTitleMale": "আপনার একটি নতুন ম্যাচ আছে!", + "newMatchDescriptionFemale": "আপনার জন্য একটি উপযুক্ত মিল পাওয়া গেছে। অনুমোদিত হলে, পরিচয় প্রক্রিয়ার সাথে এগিয়ে যাওয়ার জন্য আপনার প্রোফাইল মূল্যায়ন করা হবে।", + "newMatchDescriptionMale": "আপনি যদি এগিয়ে যান, আমরা অন্য পক্ষকে অবহিত করব এবং তাদের অনুমোদনের পরে, আপনি একে অপরের যোগাযোগের তথ্য দেখতে পারেন।", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "যোগাযোগের বিবরণ", + "contactDetailDescription": "অনুগ্রহ করে কল করার সময় উল্লেখ করবেন যে হাবিব ম্যারেজ অ্যাপের মাধ্যমে আপনাদের পরিচয় হয়েছে।", + "contactNotAvailable": "যোগাযোগের তথ্য এখনও উপলব্ধ নয়।" }, "findingMatch": { "title": "আপনার অনুসন্ধান সক্রিয় আছে", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "পেমেন্ট", + "pay": "পরিশোধ করুন" }, "maleRejectionWarning": { "title": "প্রত্যাখ্যানের সতর্কতা", diff --git a/src/translations/locales/da.json b/src/translations/locales/da.json index 9412cd9..1104d52 100644 --- a/src/translations/locales/da.json +++ b/src/translations/locales/da.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Se flere detaljer", + "newMatchTitleFemale": "Nyt Ægteskabsforslag", + "newMatchTitleMale": "DU HAR EN NY KAMP!", + "newMatchDescriptionFemale": "Der er fundet et passende match til dig. Hvis den bliver godkendt, vil din profil blive evalueret for at fortsætte med introduktionsprocessen.", + "newMatchDescriptionMale": "Hvis du fortsætter, giver vi den anden part besked, og efter deres godkendelse kan I se hinandens kontaktoplysninger.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Kontaktoplysninger", + "contactDetailDescription": "Nævn venligst under opkaldet, at I blev introduceret via Habib Marriage-appen.", + "contactNotAvailable": "Kontaktoplysninger er ikke tilgængelige endnu." }, "findingMatch": { "title": "DIN SØGNING ER AKTIV", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Betaling", + "pay": "Betal" }, "maleRejectionWarning": { "title": "Advarsel om afvisning", diff --git a/src/translations/locales/de.json b/src/translations/locales/de.json index 8cc9a9b..84e2e98 100644 --- a/src/translations/locales/de.json +++ b/src/translations/locales/de.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Mehr Details anzeigen", + "newMatchTitleFemale": "Neuer Heiratsantrag", + "newMatchTitleMale": "SIE HABEN EIN NEUES SPIEL!", + "newMatchDescriptionFemale": "Es wurde eine passende Übereinstimmung für Sie gefunden. Bei Genehmigung wird Ihr Profil bewertet, um mit dem Einführungsprozess fortzufahren.", + "newMatchDescriptionMale": "Wenn Sie fortfahren, benachrichtigen wir die andere Partei und nach deren Genehmigung können Sie die Kontaktinformationen der anderen Partei einsehen.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Kontaktdetails", + "contactDetailDescription": "Bitte erwähnen Sie während des Telefonats, dass Sie über die Habib Marriage-App vermittelt wurden.", + "contactNotAvailable": "Kontaktinformationen sind noch nicht verfügbar." }, "findingMatch": { "title": "IHRE SUCHE IST AKTIV", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Zahlung", + "pay": "Bezahlen" }, "maleRejectionWarning": { "title": "Ablehnungswarnung", diff --git a/src/translations/locales/en.json b/src/translations/locales/en.json index e3607fa..3aef786 100644 --- a/src/translations/locales/en.json +++ b/src/translations/locales/en.json @@ -86,7 +86,7 @@ "loadingProfile": "Loading match profile...", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "twoColumnComparison": "Two-Column Side-by-Side Match Comparison", "horizontalAlignment": "Strict Horizontal Field Alignment", @@ -116,7 +116,16 @@ "muslim": "Muslim", "education": "Bachelor's degree in architecture", "occupation": "Interior designer" - } + }, + "viewMoreDetails": "View more details", + "newMatchTitleFemale": "New Marriage Proposal", + "newMatchTitleMale": "YOU HAVE A NEW MATCH!", + "newMatchDescriptionFemale": "A suitable match has been found for you. If approved, your profile will be evaluated to proceed with the introduction process.", + "newMatchDescriptionMale": "If you proceed, we will notify the other party, and upon their approval, you can view each other's contact information.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Contact Detail", + "contactDetailDescription": "Please mention during the call that you were introduced by the Habib Marriage app.", + "contactNotAvailable": "Contact information is not available yet." }, "findingMatch": { "title": "SEARCH IN PROGRESS", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Payment", + "pay": "Pay" }, "maleRejectionWarning": { "title": "Rejection Warning", diff --git a/src/translations/locales/es.json b/src/translations/locales/es.json index 35c37e4..90a8e5b 100644 --- a/src/translations/locales/es.json +++ b/src/translations/locales/es.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Ver más detalles", + "newMatchTitleFemale": "Nueva propuesta de matrimonio", + "newMatchTitleMale": "¡TIENES UN NUEVO PARTIDO!", + "newMatchDescriptionFemale": "Se ha encontrado una combinación adecuada para usted. Si se aprueba, su perfil será evaluado para continuar con el proceso de introducción.", + "newMatchDescriptionMale": "Si continúa, notificaremos a la otra parte y, tras su aprobación, podrán ver la información de contacto de cada uno.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Detalles de contacto", + "contactDetailDescription": "Por favor, mencione durante la llamada que fue presentado a través de la aplicación Habib Marriage.", + "contactNotAvailable": "La información de contacto aún no está disponible." }, "findingMatch": { "title": "SU BÚSQUEDA ESTÁ ACTIVA", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Pago", + "pay": "Pagar" }, "maleRejectionWarning": { "title": "Advertencia de Rechazo", diff --git a/src/translations/locales/fa.json b/src/translations/locales/fa.json index 1e7e743..36d2c2f 100644 --- a/src/translations/locales/fa.json +++ b/src/translations/locales/fa.json @@ -85,7 +85,7 @@ "goBack": "بازگشت", "acceptProfile": "پذیرش پروفایل", "requestProceedTitle": "درخواست اقدام", - "requestProceedDescription": "با تایید شما، از طرف شما با خانواده ایشان جهت خواستگاری تماس می‌گیریم. پس از موافقت خانواده ایشان، برای آشنایی بیشتر معرفی خواهید شد.", + "requestProceedDescription": "با تایید شما، درخواست شما برای این خانم ارسال می‌شود و ما باید منتظر پاسخ ایشان باشیم. این فرآیند ممکن است بین ۲ تا ۴ روز طول بکشد. از صبوری شما سپاسگزاریم.", "acceptDescription": "آیا مطمئن هستید پروفایل را کامل بررسی کرده‌اید و آماده ادامه هستید؟", "fields": { "birthYear": "سال تولد", @@ -116,7 +116,16 @@ "bio": "بیوگرافی و انتظارات", "sections": "داده‌های بخش‌های فرم", "tests": "ارزیابی‌های روان‌شناختی" - } + }, + "viewMoreDetails": "مشاهده جزئیات بیشتر", + "newMatchTitleFemale": "پیشنهاد ازدواج جدید", + "newMatchTitleMale": "یک گزینه جدید برای شما پیدا شد!", + "newMatchDescriptionFemale": "یک گزینه‌ی مناسب برای شما پیدا شده است. در صورت تایید، مشخصات شما جهت ادامه فرآیند معرفی ارزیابی خواهد شد.", + "newMatchDescriptionMale": "اگر فرآیند را ادامه دهید ما به طرف مقابل اعلام می‌کنیم و پس از تأیید ایشان، می‌توانید اطلاعات ارتباطی یکدیگر را مشاهده کنید.", + "femaleConsentTitle": "رضایت نهایی", + "femaleConsentDescription": "با تایید این پروفایل **شماره تماس شما** به آقا نمایش داده خواهد شد. قبل از اقدام، از **رضایت خانواده** اطمینان حاصل کنید.", + "femaleConsentCheckbox": "من گواهی می‌دهم که این خانم و خانواده‌شان این پروفایل را به طور کامل بررسی کرده‌اند و رضایت اولیه خود را برای ارتباط بیشتر اعلام می‌نمایند.", + "femaleConsentCheckboxLabel": "تایید می‌کنم که خانواده این **پروفایل را بررسی کرده** و با **ارتباط موافق است**." }, "requestAccepted": { "imageAlt": "درخواست پذیرفته شد", @@ -125,7 +134,25 @@ "viewContact": "مشاهده تماس", "penalty": "توجه: اگر تا ۲ روز تماس برقرار نکنید، ممکن است جریمه اعمال شود", "profileLocked": "پروفایل قفل است", - "lockedDescription": "تا زمانی که در حال یافتن گزینه هستیم، امکان ویرایش پروفایل وجود ندارد" + "lockedDescription": "تا زمانی که در حال یافتن گزینه هستیم، امکان ویرایش پروفایل وجود ندارد", + "titleFemale": "درخواست تایید شد", + "titleMalePaymentDone": "اطلاعات تماس آزاد شد", + "titleMalePaymentPending": "درخواست تایید شد!", + "primaryFemale": "اطلاع‌رسانی عدم تماس", + "primaryMale": "مشاهده پروفایل", + "secondaryFemale": "ثبت نتیجه تماس", + "secondaryMalePaymentDone": "مشاهده شماره تماس", + "secondaryMalePaymentPending": "پرداخت و دریافت تماس", + "titleContactReleased": "اطلاعات تماس آزاد شد", + "titleMaleApproved": "درخواست تایید شد!", + "actionReportNoContact": "اطلاع‌رسانی عدم تماس", + "actionViewProfile": "مشاهده پروفایل", + "actionSubmitCallResult": "ثبت نتیجه تماس", + "actionViewContact": "مشاهده شماره تماس", + "actionPayAndGetContact": "پرداخت و دریافت تماس", + "contactDetailTitle": "جزئیات تماس", + "contactDetailDescription": "لطفاً در طول تماس اشاره کنید که از طریق برنامه همسریابی حبیب معرفی شده‌اید.", + "contactNotAvailable": "اطلاعات تماس هنوز در دسترس نیست." }, "findingMatch": { "title": "جستجوی شما فعال است", @@ -140,7 +167,8 @@ "title": "گزینه انتخاب‌شده به‌زودی با خانواده شما تماس می‌گیرد.", "contacted": "تماس گرفته شد", "noContactYet": "هنوز تماس نگرفته؟", - "afterTwoDays": "(بعد از ۲ روز)" + "afterTwoDays": "(بعد از ۲ روز)", + "contactWarning": "اگر ظرف ۲ روز با شما تماس نگرفتند، لطفاً به ما اطلاع دهید." }, "sheets": { "informationSheet": "پنل اطلاعات", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "درخواست ارسال شد", - "description": "درخواست معرفی شما از طرف ما به خانواده طرف مقابل ارسال شد. در صورت تایید ایشان، اطلاعات تماس به اطلاع شما خواهد رسید.", - "matchProfile": "مشاهده پروفایل گزینه", + "description": "درخواست شما ارسال شد. پس از بررسی درخواست شما توسط خانم، به شما اطلاع‌رسانی خواهد شد.", + "matchProfile": "مشاهده جزئیات بیشتر", "profileLocked": "پروفایل قفل است" }, "spouseCriteriaConfidentialNotice": "⚠️ این بخش کاملاً محرمانه است و فقط برای مچینگ و بررسی کارشناسان استفاده میشود.", @@ -172,8 +200,10 @@ "swipeToPay": "برای پرداخت ۵۰ حبیب‌کوین بکشید", "insufficientCoins": "موجودی سکه شما کافی نیست. لطفا حساب خود را شارژ کنید.", "activeFor3Months": "معتبر تا ۳ ماه", - "cost": "۵۰ حبیب کوین", - "close": "خروج" + "cost": "۵۰ سکه", + "close": "خروج", + "payment": "پرداخت", + "pay": "پرداخت" }, "maleRejectionWarning": { "title": "هشدار رد کردن پیشنهاد", diff --git a/src/translations/locales/fr.json b/src/translations/locales/fr.json index 55c8daf..f842db3 100644 --- a/src/translations/locales/fr.json +++ b/src/translations/locales/fr.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Voir plus de détails", + "newMatchTitleFemale": "Nouvelle demande en mariage", + "newMatchTitleMale": "VOUS AVEZ UN NOUVEAU MATCH !", + "newMatchDescriptionFemale": "Une personne qui vous convient a été trouvée. S'il est approuvé, votre profil sera évalué pour procéder au processus d'introduction.", + "newMatchDescriptionMale": "Si vous continuez, nous en informerons l'autre partie et, après son approbation, vous pourrez consulter les coordonnées de chacun.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Détails de contact", + "contactDetailDescription": "Veuillez mentionner lors de l'appel que vous avez été présenté par l'application Habib Marriage.", + "contactNotAvailable": "Les coordonnées ne sont pas encore disponibles." }, "findingMatch": { "title": "VOTRE RECHERCHE EST ACTIVE", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Paiement", + "pay": "Payer" }, "maleRejectionWarning": { "title": "Avertissement de rejet", diff --git a/src/translations/locales/gu.json b/src/translations/locales/gu.json index 4dcd222..1cd4104 100644 --- a/src/translations/locales/gu.json +++ b/src/translations/locales/gu.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "વધુ વિગતો જુઓ", + "newMatchTitleFemale": "લગ્નનો નવો પ્રસ્તાવ", + "newMatchTitleMale": "તમારી પાસે એક નવો મેળ છે!", + "newMatchDescriptionFemale": "તમારા માટે યોગ્ય મેળ મળી ગયો છે. જો મંજૂર કરવામાં આવે, તો પરિચય પ્રક્રિયા સાથે આગળ વધવા માટે તમારી પ્રોફાઇલનું મૂલ્યાંકન કરવામાં આવશે.", + "newMatchDescriptionMale": "જો તમે આગળ વધો છો, તો અમે અન્ય પક્ષને સૂચિત કરીશું, અને તેમની મંજૂરી પર, તમે એકબીજાની સંપર્ક માહિતી જોઈ શકો છો.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "સંપર્ક વિગત", + "contactDetailDescription": "કૃપા કરીને કૉલ દરમિયાન ઉલ્લેખ કરો કે તમને હબીબ મેરેજ એપ્લિકેશન દ્વારા પરિચય કરાવવામાં આવ્યો હતો.", + "contactNotAvailable": "સંપર્ક માહિતી હજી ઉપલબ્ધ નથી." }, "findingMatch": { "title": "તમારી શોધ સક્રિય છે", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "ચુકવણી", + "pay": "ચુકવણી કરો" }, "maleRejectionWarning": { "title": "અસ્વીકાર ચેતવણી", diff --git a/src/translations/locales/ha.json b/src/translations/locales/ha.json index 77dd9e3..a817dbb 100644 --- a/src/translations/locales/ha.json +++ b/src/translations/locales/ha.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Duba ƙarin cikakkun bayanai", + "newMatchTitleFemale": "Sabuwar Shawarar Aure", + "newMatchTitleMale": "KANA DA SABON WASA!", + "newMatchDescriptionFemale": "An samo muku ashana mai dacewa. Idan an amince, za a tantance bayanan martaba don ci gaba da tsarin gabatarwa.", + "newMatchDescriptionMale": "Idan kun ci gaba, za mu sanar da ɗayan, kuma bayan amincewarsu, kuna iya duba bayanan tuntuɓar juna.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Cikakken Bayani na Tuntuɓa", + "contactDetailDescription": "Da fatan za a ambata lokacin kiran cewa an gabatar da ku ta hanyar aikace-aikacen Habib Marriage.", + "contactNotAvailable": "Bayanin tuntuɓa bai kasance ba tukuna." }, "findingMatch": { "title": "BINCICKEN KU YANA AIKI", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Biyan kuɗi", + "pay": "Biya" }, "maleRejectionWarning": { "title": "Gargaɗi Kan Kin Karɓa", diff --git a/src/translations/locales/he.json b/src/translations/locales/he.json index c5e76f2..df1e152 100644 --- a/src/translations/locales/he.json +++ b/src/translations/locales/he.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "צפה בפרטים נוספים", + "newMatchTitleFemale": "הצעת נישואין חדשה", + "newMatchTitleMale": "יש לך משחק חדש!", + "newMatchDescriptionFemale": "נמצאה התאמה מתאימה עבורך. אם יאושר, הפרופיל שלך יוערך כדי להמשיך בתהליך ההיכרות.", + "newMatchDescriptionMale": "אם תמשיך, אנו נודיע לצד השני, ולאחר אישורו, תוכל לצפות בפרטי ההתקשרות אחד של השני.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "פרטי קשר", + "contactDetailDescription": "אנא ציינו במהלך השיחה שהופניתם דרך אפליקציית Habib Marriage.", + "contactNotAvailable": "פרטי הקשר אינם זמינים עדיין." }, "findingMatch": { "title": "החיפוש שלך פעיל", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "תשלום", + "pay": "שלם" }, "maleRejectionWarning": { "title": "אזהרת דחיית הצעה", diff --git a/src/translations/locales/hi.json b/src/translations/locales/hi.json index 68dec07..9660995 100644 --- a/src/translations/locales/hi.json +++ b/src/translations/locales/hi.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "अधिक विवरण देखें", + "newMatchTitleFemale": "नये विवाह का प्रस्ताव", + "newMatchTitleMale": "आपके पास एक नया मैच है!", + "newMatchDescriptionFemale": "आपके लिए एक उपयुक्त मैच मिल गया है. यदि स्वीकृत हो जाता है, तो परिचय प्रक्रिया को आगे बढ़ाने के लिए आपकी प्रोफ़ाइल का मूल्यांकन किया जाएगा।", + "newMatchDescriptionMale": "यदि आप आगे बढ़ते हैं, तो हम दूसरे पक्ष को सूचित करेंगे, और उनकी मंजूरी पर, आप एक-दूसरे की संपर्क जानकारी देख सकते हैं।", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "संपर्क विवरण", + "contactDetailDescription": "कृपया कॉल के दौरान उल्लेख करें कि आपका परिचय हबीब मैरिज ऐप के माध्यम से कराया गया था।", + "contactNotAvailable": "संपर्क जानकारी अभी उपलब्ध नहीं है।" }, "findingMatch": { "title": "आपकी खोज सक्रिय है", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "भुगतान", + "pay": "भुगतान करें" }, "maleRejectionWarning": { "title": "अस्वीकृति चेतावनी", diff --git a/src/translations/locales/id.json b/src/translations/locales/id.json index 9e405a9..fb80f22 100644 --- a/src/translations/locales/id.json +++ b/src/translations/locales/id.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Lihat detail selengkapnya", + "newMatchTitleFemale": "Lamaran Pernikahan Baru", + "newMatchTitleMale": "ANDA MEMILIKI PERTANDINGAN BARU!", + "newMatchDescriptionFemale": "Pasangan yang cocok telah ditemukan untuk Anda. Jika disetujui, profil Anda akan dievaluasi untuk melanjutkan proses pengenalan.", + "newMatchDescriptionMale": "Jika Anda melanjutkan, kami akan memberi tahu pihak lain, dan setelah mereka menyetujuinya, Anda dapat melihat informasi kontak masing-masing.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Detail Kontak", + "contactDetailDescription": "Harap sebutkan selama panggilan bahwa Anda diperkenalkan melalui aplikasi Habib Marriage.", + "contactNotAvailable": "Informasi kontak belum tersedia." }, "findingMatch": { "title": "YOUR SEARCH IS ACTIVE", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Pembayaran", + "pay": "Bayar" }, "maleRejectionWarning": { "title": "Rejection Warning", diff --git a/src/translations/locales/ks.json b/src/translations/locales/ks.json index 008cc0a..220bee9 100644 --- a/src/translations/locales/ks.json +++ b/src/translations/locales/ks.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "مزید تفصیلات وُچھِو", + "newMatchTitleFemale": "New Marriage Proposal", + "newMatchTitleMale": "YOU HAVE A NEW MATCH!", + "newMatchDescriptionFemale": "A suitable match has been found for you. If approved, your profile will be evaluated to proceed with the introduction process.", + "newMatchDescriptionMale": "If you proceed, we will notify the other party, and upon their approval, you can view each other's contact information.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "رابطہ تفصیِل", + "contactDetailDescription": "مہربانی کٔرتھ فون کَرنہ وِزِ کٔرِو زِکِر زِ تُہیہ آیو متعارف کَرنہ حبیب میرج ایپ ذٔریعہ۔", + "contactNotAvailable": "رابطہ معلومات چھنہ ونی دستیاب۔" }, "findingMatch": { "title": "تہنزر تلاش چھی سرگرم", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "ادائیگی", + "pay": "ادائیگی کریں" }, "maleRejectionWarning": { "title": "مسترد کرنک انتباہ", diff --git a/src/translations/locales/pt.json b/src/translations/locales/pt.json index a172383..b6d2807 100644 --- a/src/translations/locales/pt.json +++ b/src/translations/locales/pt.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Ver mais detalhes", + "newMatchTitleFemale": "Nova proposta de casamento", + "newMatchTitleMale": "VOCÊ TEM UM NOVO JOGO!", + "newMatchDescriptionFemale": "Uma correspondência adequada foi encontrada para você. Se aprovado, seu perfil será avaliado para prosseguir com o processo de introdução.", + "newMatchDescriptionMale": "Se você prosseguir, notificaremos a outra parte e, após a aprovação dela, vocês poderão ver as informações de contato um do outro.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Detalhes de contato", + "contactDetailDescription": "Por favor, mencione durante a chamada que você foi apresentado através do aplicativo Habib Marriage.", + "contactNotAvailable": "As informações de contato ainda não estão disponíveis." }, "findingMatch": { "title": "SUA BUSCA ESTÁ ATIVA", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Pagamento", + "pay": "Pagar" }, "maleRejectionWarning": { "title": "Aviso de Rejeição", diff --git a/src/translations/locales/ru.json b/src/translations/locales/ru.json index eee7926..875cf30 100644 --- a/src/translations/locales/ru.json +++ b/src/translations/locales/ru.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Показать больше деталей", + "newMatchTitleFemale": "Новое предложение руки и сердца", + "newMatchTitleMale": "У ВАС НОВЫЙ МАТЧ!", + "newMatchDescriptionFemale": "Для вас найден подходящий вариант. В случае одобрения ваш профиль будет оценен для продолжения процесса внедрения.", + "newMatchDescriptionMale": "Если вы продолжите, мы уведомим другую сторону, и после ее одобрения вы сможете просмотреть контактную информацию друг друга.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Контактная информация", + "contactDetailDescription": "Пожалуйста, упомяните во время разговора, что вас познакомили через приложение Habib Marriage.", + "contactNotAvailable": "Контактная информация пока недоступна." }, "findingMatch": { "title": "ВАШ ПОИСК АКТИВЕН", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Оплата", + "pay": "Оплатить" }, "maleRejectionWarning": { "title": "Предупреждение об отклонении", diff --git a/src/translations/locales/sw.json b/src/translations/locales/sw.json index 54eeb70..7d8e3d3 100644 --- a/src/translations/locales/sw.json +++ b/src/translations/locales/sw.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Angalia maelezo zaidi", + "newMatchTitleFemale": "Pendekezo Jipya la Ndoa", + "newMatchTitleMale": "UNA MECHI MPYA!", + "newMatchDescriptionFemale": "Mechi inayofaa imepatikana kwa ajili yako. Ikiidhinishwa, wasifu wako utatathminiwa ili kuendelea na mchakato wa utangulizi.", + "newMatchDescriptionMale": "Ukiendelea, tutamjulisha mhusika mwingine, na baada ya idhini yake, unaweza kutazama maelezo ya mawasiliano ya kila mmoja.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Maelezo ya Mawasiliano", + "contactDetailDescription": "Tafadhali taja wakati wa simu kwamba ulitambulishwa kupitia programu ya Habib Marriage.", + "contactNotAvailable": "Maelezo ya mawasiliano bado hayapatikani." }, "findingMatch": { "title": "UTAFUTAJI WAKO UNAENDELEA", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Malipo", + "pay": "Lipa" }, "maleRejectionWarning": { "title": "Onyo la Kukataa", diff --git a/src/translations/locales/tg.json b/src/translations/locales/tg.json index 70a1975..5388b21 100644 --- a/src/translations/locales/tg.json +++ b/src/translations/locales/tg.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Дидани тафсилоти бештар", + "newMatchTitleFemale": "Пешниҳоди нави издивоҷ", + "newMatchTitleMale": "ШУМО бозии нав доред!", + "newMatchDescriptionFemale": "Барои шумо як бозии мувофиқ пайдо шуд. Агар тасдиқ карда шавад, профили шумо барои идомаи раванди муаррифӣ арзёбӣ мешавад.", + "newMatchDescriptionMale": "Агар шумо идома диҳед, мо тарафи дигарро огоҳ хоҳем кард ва пас аз тасдиқи онҳо, шумо метавонед маълумоти тамосии ҳамдигарро бубинед.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Тафсилоти тамос", + "contactDetailDescription": "Лутфан ҳангоми занг қайд куنید, ки шумо тавассути барномаи Habib Marriage шинос карда шудаед.", + "contactNotAvailable": "Маъلوмоти тамос ҳанӯз дастрас нест." }, "findingMatch": { "title": "ҶУСТУҶӮИ ШУМО ФАЪОЛ АСТ", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Пардохт", + "pay": "Пардохт кардан" }, "maleRejectionWarning": { "title": "Огоҳӣ аз радди пешниҳод", diff --git a/src/translations/locales/tr.json b/src/translations/locales/tr.json index f7724ac..f1d42d9 100644 --- a/src/translations/locales/tr.json +++ b/src/translations/locales/tr.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Biyografi ve Beklentiler", "sections": "Form Bölümleri Verileri", "tests": "Psikolojik Değerlendirmeler" - } + }, + "viewMoreDetails": "Daha fazla detay görüntüle", + "newMatchTitleFemale": "Yeni Evlenme Teklifi", + "newMatchTitleMale": "YENİ BİR MAÇINIZ VAR!", + "newMatchDescriptionFemale": "Size uygun bir eşleşme bulundu. Onaylanması halinde profiliniz değerlendirmeye alınarak tanıtım sürecine geçilecektir.", + "newMatchDescriptionMale": "Devam etmeniz durumunda karşı tarafa bildirimde bulunacağız ve onların onayı ile birbirinizin iletişim bilgilerini görüntüleyebileceksiniz.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "İletişim Detayları", + "contactDetailDescription": "Lütfen arama sırasında Habib Marriage uygulaması aracılığıyla tanıştırıldığınızı belirtin.", + "contactNotAvailable": "İletişim bilgileri henüz mevcut değil." }, "findingMatch": { "title": "ARAMANIZ AKTİF", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "Ödeme", + "pay": "Öde" }, "maleRejectionWarning": { "title": "Reddetme Uyarısı", diff --git a/src/translations/locales/ul.json b/src/translations/locales/ul.json index 42fa232..8e90a88 100644 --- a/src/translations/locales/ul.json +++ b/src/translations/locales/ul.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "تېخىمۇ كۆپ تەپسىلاتلارنى كۆرۈش", + "newMatchTitleFemale": "يېڭى توي تەكلىپى", + "newMatchTitleMale": "سىزدە يېڭى مۇسابىقە بار!", + "newMatchDescriptionFemale": "سىزگە ماس كېلىدىغان ماس تېپىلدى. تەستىقتىن ئۆتسە ، ئارخىپىڭىز تونۇشتۇرۇش جەريانىنى داۋاملاشتۇرۇش ئۈچۈن باھالىنىدۇ.", + "newMatchDescriptionMale": "داۋاملاشتۇرسىڭىز قارشى تەرەپكە خەۋەر قىلىمىز ، ئۇلارنىڭ تەستىقى بىلەن بىر-بىرىڭىزنىڭ ئالاقىلىشىش ئۇچۇرلىرىنى كۆرەلەيسىز.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "ئالاقە تەپسىلاتى", + "contactDetailDescription": "تېلېفوندا ھەبىب نىكاھ ئەپى ئارقىلىق تونۇشتۇرۇلغانلىقىڭىزنى تىلغا ئېلىڭ.", + "contactNotAvailable": "ئالاقىلىشىش ئۇچۇرى تېخى يوق." }, "findingMatch": { "title": "YOUR SEARCH IS ACTIVE", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "تۆلەش", + "pay": "تۆلەش" }, "maleRejectionWarning": { "title": "Rejection Warning", diff --git a/src/translations/locales/ur.json b/src/translations/locales/ur.json index dfdd09f..48992bb 100644 --- a/src/translations/locales/ur.json +++ b/src/translations/locales/ur.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "بائیو اور توقعات", "sections": "فارم کے شعبوں کا ڈیٹا", "tests": "نفسیاتی جائزے۔" - } + }, + "viewMoreDetails": "مزید تفصیلات دیکھیں", + "newMatchTitleFemale": "نئی شادی کی تجویز", + "newMatchTitleMale": "آپ کے پاس ایک نیا میچ ہے!", + "newMatchDescriptionFemale": "آپ کے لیے ایک مناسب میچ مل گیا ہے۔ اگر منظور ہو جاتا ہے، تو تعارف کے عمل کو آگے بڑھانے کے لیے آپ کے پروفائل کا جائزہ لیا جائے گا۔", + "newMatchDescriptionMale": "اگر آپ آگے بڑھتے ہیں، تو ہم دوسرے فریق کو مطلع کریں گے، اور ان کی منظوری پر، آپ ایک دوسرے کے رابطے کی معلومات دیکھ سکتے ہیں۔", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "رابطے کی تفصیل", + "contactDetailDescription": "براہ کرم کال کے دوران ذکر کریں کہ آپ کا تعارف حبیب میرج ایپ کے ذریعے کرایا گیا تھا۔", + "contactNotAvailable": "رابطے کی معلومات ابھی دستیاب نہیں ہیں۔" }, "findingMatch": { "title": "آپ کی تلاش فعال ہے", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "ادائیگی", + "pay": "ادائیگی کریں" }, "maleRejectionWarning": { "title": "پیشکش مسترد کرنے کی وارننگ", diff --git a/src/translations/locales/uz.json b/src/translations/locales/uz.json index 1d27413..0ef7d32 100644 --- a/src/translations/locales/uz.json +++ b/src/translations/locales/uz.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "Batafsil ma'lumotni ko'rish", + "newMatchTitleFemale": "Yangi turmush qurish taklifi", + "newMatchTitleMale": "SIZDA YANGI O'YIN BO'LDI!", + "newMatchDescriptionFemale": "Sizga mos keladigan moslik topildi. Agar ma'qullansa, kirish jarayonini davom ettirish uchun profilingiz baholanadi.", + "newMatchDescriptionMale": "Davom etsangiz, biz boshqa tomonni xabardor qilamiz va ular ma'qullaganidan keyin siz bir-biringizning aloqa ma'lumotlarini ko'rishingiz mumkin.", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "Aloqa ma'lumotlari", + "contactDetailDescription": "Iltimos, qo'ng'iroq paytida sizni Habib Marriage ilovasi orqali tanishtirishganini aytib o'ting.", + "contactNotAvailable": "Aloqa ma'lumotlari hali mavjud emas." }, "findingMatch": { "title": "QIDIRUVINGIZ FAOLLASHTIRILDI", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "To'lov", + "pay": "To'lash" }, "maleRejectionWarning": { "title": "Rad etish ogohlantirishi", diff --git a/src/translations/locales/zh.json b/src/translations/locales/zh.json index 8c98322..5756c66 100644 --- a/src/translations/locales/zh.json +++ b/src/translations/locales/zh.json @@ -85,7 +85,7 @@ "goBack": "Go back", "acceptProfile": "Accept Profile", "requestProceedTitle": "Request to Proceed", - "requestProceedDescription": "With your approval, we will approach their family on your behalf to propose marriage. After their family agrees, you will be introduced to each other for further acquaintance.", + "requestProceedDescription": "Upon your approval, your request will be sent to the lady, and we must await her response. This process may take between 2 to 4 days. Thank you for your patience.", "acceptDescription": "Are you sure you've fully reviewed the profile and are ready to proceed?", "fields": { "birthYear": "Year of birth", @@ -116,7 +116,16 @@ "bio": "Bio & Expectations", "sections": "Form Sections Data", "tests": "Psychological Assessments" - } + }, + "viewMoreDetails": "查看更多详情", + "newMatchTitleFemale": "新求婚", + "newMatchTitleMale": "你有一场新比赛!", + "newMatchDescriptionFemale": "已为您找到合适的匹配对象。如果获得批准,您的个人资料将被评估以继续介绍过程。", + "newMatchDescriptionMale": "如果您继续,我们将通知对方,经其批准后,您可以查看对方的联系信息。", + "femaleConsentTitle": "Final Consent", + "femaleConsentDescription": "Approving this profile will **display your contact number** to the gentleman. Ensure **family consensus** before proceeding.", + "femaleConsentCheckbox": "I certify that the lady and her family have thoroughly reviewed this profile and grant preliminary consent for further communication.", + "femaleConsentCheckboxLabel": "I confirm the family has **reviewed this profile** and **consents to communicate**." }, "requestAccepted": { "imageAlt": "Request accepted", @@ -125,7 +134,25 @@ "viewContact": "View Contact", "penalty": "Please note: Failure to contact within 2 days may result in a penalty", "profileLocked": "Profile is locked", - "lockedDescription": "You can't edit your profile while we're searching for matches" + "lockedDescription": "You can't edit your profile while we're searching for matches", + "titleFemale": "Request Approved", + "titleMalePaymentDone": "Contact info released", + "titleMalePaymentPending": "Request approved!", + "primaryFemale": "Report no contact", + "primaryMale": "View profile", + "secondaryFemale": "Record call result", + "secondaryMalePaymentDone": "View contact number", + "secondaryMalePaymentPending": "Pay and get contact", + "titleContactReleased": "Contact Information Released", + "titleMaleApproved": "Request Approved!", + "actionReportNoContact": "Report No Contact", + "actionViewProfile": "View Profile", + "actionSubmitCallResult": "Submit Call Result", + "actionViewContact": "View Contact Details", + "actionPayAndGetContact": "Pay & Get Contact", + "contactDetailTitle": "联系详情", + "contactDetailDescription": "请在通话中说明您是通过 Habib Marriage 应用程序介绍的。", + "contactNotAvailable": "联系信息暂不可用。" }, "findingMatch": { "title": "您的搜寻正在进行中", @@ -137,10 +164,11 @@ }, "candidateContact": { "imageAlt": "Selected candidate contact status", - "title": "The selected candidate will be in touch with your family shortly.", + "title": "The selected candidate will contact your family shortly.", "contacted": "contacted", "noContactYet": "no contact yet ?", - "afterTwoDays": "(after 2 days)" + "afterTwoDays": "(after 2 days)", + "contactWarning": "If they don't contact you within 2 days, please inform us." }, "sheets": { "informationSheet": "Information sheet", @@ -160,8 +188,8 @@ }, "requestSent": { "title": "Request Sent", - "description": "We will propose marriage on your behalf. If they accept, their contact details will be shared with you.", - "matchProfile": "Match Profile", + "description": "Your request has been sent. Once the lady reviews your request, you will be notified.", + "matchProfile": "View More Details", "profileLocked": "Profile is locked" }, "spouseCriteriaConfidentialNotice": "⚠️ This section is completely confidential and is only used for matching and review by advisors.", @@ -172,8 +200,10 @@ "swipeToPay": "Swipe to pay 50 Habib Coins", "insufficientCoins": "Insufficient coin balance. Please recharge your account.", "activeFor3Months": "Valid for 3 months", - "cost": "50 Habib Coins", - "close": "Exit" + "cost": "50 Coins", + "close": "Exit", + "payment": "支付", + "pay": "支付" }, "maleRejectionWarning": { "title": "拒绝警告",