mortezaei 2 weeks ago
parent
commit
99866a06d8
  1. 47
      src/app/intro/intro-client.tsx
  2. 4
      src/app/questions-list/[slug]/question-detail-client.test.tsx
  3. 20
      src/app/questions-list/[slug]/question-detail-client.tsx
  4. 14
      src/components/Componentes/discount-widget.tsx
  5. 49
      src/components/Componentes/question-phone.test.tsx
  6. 36
      src/components/Componentes/question-phone.tsx
  7. 10
      src/components/Componentes/slider-page.tsx
  8. 2
      src/translations/locales/ar.json
  9. 2
      src/translations/locales/da.json
  10. 2
      src/translations/locales/de.json
  11. 2
      src/translations/locales/es.json
  12. 2
      src/translations/locales/fr.json
  13. 2
      src/translations/locales/gu.json
  14. 2
      src/translations/locales/ha.json
  15. 2
      src/translations/locales/he.json
  16. 2
      src/translations/locales/hi.json
  17. 2
      src/translations/locales/id.json
  18. 2
      src/translations/locales/ks.json
  19. 2
      src/translations/locales/pt.json
  20. 2
      src/translations/locales/sw.json
  21. 2
      src/translations/locales/tg.json
  22. 2
      src/translations/locales/tr.json
  23. 2
      src/translations/locales/ul.json
  24. 2
      src/translations/locales/ur.json
  25. 2
      src/translations/locales/uz.json
  26. 2
      src/translations/locales/zh.json

47
src/app/intro/intro-client.tsx

@ -163,30 +163,45 @@ export default function IntroClient() {
} }
</p> </p>
</div> </div>
<div className="flex items-center justify-between mt-8">
<div className="flex items-center gap-0.5 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroUsersIcon />
<div className="flex flex-col items-start justify-start -mb-2">
<p className="text-[#36363C] group-16 font-bold leading-3">120</p>
<p className="text-[#36363C] group-10 font-semibold capitalize">
<div className="flex items-center justify-between gap-2 mt-8 w-full">
<div className="flex min-w-0 flex-1 items-center gap-1 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroUsersIcon className="shrink-0" />
<div className="flex min-w-0 flex-1 flex-col items-start justify-center">
<p className="w-full truncate text-start text-[#36363C] group-16 font-bold leading-tight" title="120">
120
</p>
<p
className="w-full truncate text-start text-[#36363C] group-10 font-semibold capitalize"
title={t["user profiles"]}
>
{t["user profiles"]} {t["user profiles"]}
</p> </p>
</div> </div>
</div> </div>
<div className="flex items-center gap-0.5 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroMatchesIcon />
<div className="flex flex-col items-start justify-start -mb-2">
<p className="text-[#36363C] group-16 font-bold leading-3">14</p>
<p className="text-[#36363C] group-10 font-semibold capitalize">
<div className="flex min-w-0 flex-1 items-center gap-1 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroMatchesIcon className="shrink-0" />
<div className="flex min-w-0 flex-1 flex-col items-start justify-center">
<p className="w-full truncate text-start text-[#36363C] group-16 font-bold leading-tight" title="14">
14
</p>
<p
className="w-full truncate text-start text-[#36363C] group-10 font-semibold capitalize"
title={t["matches"]}
>
{t["matches"]} {t["matches"]}
</p> </p>
</div> </div>
</div> </div>
<div className="flex items-center gap-0.5 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroMarriagesIcon />
<div className="flex flex-col items-start justify-start -mb-2">
<p className="text-[#36363C] group-16 font-bold leading-3">14</p>
<p className="text-[#36363C] group-10 font-semibold capitalize">
<div className="flex min-w-0 flex-1 items-center gap-1 p-2 border border-[#FD6ABB]/10 rounded-2xl">
<IntroMarriagesIcon className="shrink-0" />
<div className="flex min-w-0 flex-1 flex-col items-start justify-center">
<p className="w-full truncate text-start text-[#36363C] group-16 font-bold leading-tight" title="14">
14
</p>
<p
className="w-full truncate text-start text-[#36363C] group-10 font-semibold capitalize"
title={t["marriages"]}
>
{t["marriages"]} {t["marriages"]}
</p> </p>
</div> </div>

4
src/app/questions-list/[slug]/question-detail-client.test.tsx

@ -298,8 +298,8 @@ describe("QuestionDetailClient Validation", () => {
expect(screen.getByText("Overview Profile Title")).toBeDefined(); expect(screen.getByText("Overview Profile Title")).toBeDefined();
expect(screen.getByRole("status")).toBeDefined(); expect(screen.getByRole("status")).toBeDefined();
expect(screen.getByRole("button", { name: "Back" })).toBeDefined();
expect(screen.queryByRole("button", { name: "Info" })).toBeNull();
expect(screen.getByRole("button", { name: "Close" })).toBeDefined();
expect(screen.getByRole("button", { name: "Info" })).toBeDefined();
expect(screen.getByRole("button", { name: "Continue" })).toBeDisabled(); expect(screen.getByRole("button", { name: "Continue" })).toBeDisabled();
expect(document.querySelector(".shimmer-bg")).toBeNull(); expect(document.querySelector(".shimmer-bg")).toBeNull();
}); });

20
src/app/questions-list/[slug]/question-detail-client.tsx

@ -520,8 +520,8 @@ export default function QuestionDetailClient({
<NavigationButton <NavigationButton
className="shrink-0" className="shrink-0"
variant="transparent" variant="transparent"
icon="back"
iconLabel={t["Back"] || "Back"}
icon="close"
iconLabel={closeLabel}
onClick={handleExit} onClick={handleExit}
/> />
<h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white"> <h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white">
@ -565,8 +565,8 @@ export default function QuestionDetailClient({
<NavigationButton <NavigationButton
className="shrink-0" className="shrink-0"
variant="transparent" variant="transparent"
icon="back"
iconLabel={t["Back"] || "Back"}
icon="close"
iconLabel={closeLabel}
onClick={handleExit} onClick={handleExit}
/> />
<h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white"> <h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white">
@ -601,8 +601,8 @@ export default function QuestionDetailClient({
<NavigationButton <NavigationButton
className="shrink-0" className="shrink-0"
variant="transparent" variant="transparent"
icon="back"
iconLabel={t["Back"] || "Back"}
icon="close"
iconLabel={closeLabel}
onClick={handleExit} onClick={handleExit}
/> />
<h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white"> <h1 className="min-w-0 flex-1 truncate text-center text-[14px] font-semibold text-white">
@ -780,8 +780,8 @@ export default function QuestionDetailClient({
<NavigationButton <NavigationButton
className="shrink-0" className="shrink-0"
variant="transparent" variant="transparent"
icon="back"
iconLabel={t["Back"] || "Back"}
icon="close"
iconLabel={closeLabel}
onClick={handleExit} onClick={handleExit}
/> />
<h1 className="min-w-0 flex-1 text-center text-[14px] font-semibold text-white truncate"> <h1 className="min-w-0 flex-1 text-center text-[14px] font-semibold text-white truncate">
@ -961,8 +961,8 @@ export default function QuestionDetailClient({
<QuestionExitNavigationButton <QuestionExitNavigationButton
className="shrink-0" className="shrink-0"
variant="transparent" variant="transparent"
icon="back"
iconLabel={t["Back"] || "Back"}
icon="close"
iconLabel={closeLabel}
exitHref={questionsListHref} exitHref={questionsListHref}
onExit={handleExit} onExit={handleExit}
/> />

14
src/components/Componentes/discount-widget.tsx

@ -97,7 +97,7 @@ export function DiscountWidget({
<button <button
type="button" type="button"
onClick={() => setIsExpanded((prev) => !prev)} onClick={() => setIsExpanded((prev) => !prev)}
className="flex w-full items-center justify-between py-3.5 text-left transition-colors cursor-pointer select-none"
className="flex w-full items-center justify-between py-3.5 text-start transition-colors cursor-pointer select-none"
> >
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
{/* Coupon icon */} {/* Coupon icon */}
@ -150,11 +150,11 @@ export function DiscountWidget({
{isExpanded && ( {isExpanded && (
<div className="pt-1 pb-2 w-full"> <div className="pt-1 pb-2 w-full">
<div <div
className={`flex h-[52px] w-full items-center rounded-[12px] border bg-white px-4 transition-all ${getBorderAndRing()}`}
className={`flex h-[52px] w-full items-center gap-3 rounded-[12px] border bg-white px-4 transition-all ${getBorderAndRing()}`}
> >
<input <input
type="text" type="text"
dir="ltr"
dir="auto"
value={code} value={code}
disabled={discountStatus === "loading" || discountResult !== null} disabled={discountStatus === "loading" || discountResult !== null}
onChange={(e) => { onChange={(e) => {
@ -173,18 +173,18 @@ export function DiscountWidget({
placeholder={ placeholder={
t["Enter discount code..."] || "Enter discount code..." t["Enter discount code..."] || "Enter discount code..."
} }
className="h-full flex-1 bg-transparent text-[15px] font-medium text-[#181818] outline-none placeholder:text-[#98A2B3] disabled:opacity-70 min-w-0"
className="h-full flex-1 bg-transparent text-[15px] font-medium text-[#181818] outline-none placeholder:text-[#98A2B3] text-start placeholder:text-start disabled:opacity-70 min-w-0"
/> />
{discountStatus === "loading" ? ( {discountStatus === "loading" ? (
<div className="shrink-0 pl-3">
<div className="shrink-0">
<div className="size-4.5 animate-spin rounded-full border-2 border-[#F0445B] border-t-transparent" /> <div className="size-4.5 animate-spin rounded-full border-2 border-[#F0445B] border-t-transparent" />
</div> </div>
) : discountResult !== null ? ( ) : discountResult !== null ? (
<button <button
type="button" type="button"
onClick={handleClear} onClick={handleClear}
className="shrink-0 pl-3 text-[15px] font-semibold text-[#F0445B] hover:opacity-80 transition-opacity cursor-pointer"
className="shrink-0 text-[15px] font-semibold text-[#F0445B] hover:opacity-80 transition-opacity cursor-pointer"
> >
{t["Clear"] || "Clear"} {t["Clear"] || "Clear"}
</button> </button>
@ -192,7 +192,7 @@ export function DiscountWidget({
<button <button
type="button" type="button"
onClick={handleApply} onClick={handleApply}
className="shrink-0 pl-3 text-[15px] font-semibold text-[#F0445B] hover:opacity-80 transition-opacity cursor-pointer"
className="shrink-0 text-[15px] font-semibold text-[#F0445B] hover:opacity-80 transition-opacity cursor-pointer"
> >
{t["Apply"] || "Apply"} {t["Apply"] || "Apply"}
</button> </button>

49
src/components/Componentes/question-phone.test.tsx

@ -16,16 +16,19 @@ const mockSetAnswerValue = vi.fn((q: QuestionField, val: unknown) => {
answerMap[q.id] = val; answerMap[q.id] = val;
}); });
vi.mock("@/translations/provider", () => ({
useI18n: () => ({
locale: "en",
dictionary: {
let mockLocale = "en";
let mockDictionary: Record<string, string> = {
"Select country": "Select country", "Select country": "Select country",
Close: "Close", Close: "Close",
Confirm: "Confirm", Confirm: "Confirm",
"Enter a valid phone number with country code.": "Enter a valid phone number with country code.":
"Enter a valid phone number with country code.", "Enter a valid phone number with country code.",
},
};
vi.mock("@/translations/provider", () => ({
useI18n: () => ({
locale: mockLocale,
dictionary: mockDictionary,
}), }),
})); }));
@ -383,4 +386,40 @@ describe("QuestionPhone IP country detection and shimmer", () => {
expect(screen.getByText("🇩🇪")).toBeDefined(); expect(screen.getByText("🇩🇪")).toBeDefined();
}); });
}); });
it("renders localized country names dynamically in Russian locale (e.g. Великобритания, Соединенные Штаты)", async () => {
mockLocale = "ru";
mockDictionary = {
"Select country": "Выберите страну",
Close: "Закрыть",
Confirm: "Подтверждать",
"Search...": "Поиск...",
"Enter a valid phone number with country code.":
"Введите действительный номер телефона с кодом страны.",
};
setStoredUserGeoRegion({ country: "Великобритания", countryCode: "GB", phoneCode: "+44" });
render(<QuestionPhone question={phoneQuestion1} countryCode="+44" />);
// Open sheet
const countryButton = screen.getByRole("button", { name: /🇬🇧/i });
fireEvent.click(countryButton);
// Verify Russian sheet header
expect(screen.getByText("Выберите страну")).toBeDefined();
// Verify UK is translated as "Великобритания" and US as "Соединенные Штаты"
expect(screen.getByText("Великобритания")).toBeDefined();
expect(screen.getByText("Соединенные Штаты")).toBeDefined();
// Verify search by Russian term "Россия" or "Великобритания"
const searchInput = screen.getByPlaceholderText("Поиск...");
fireEvent.change(searchInput, { target: { value: "Великобритания" } });
expect(screen.getByText("Великобритания")).toBeDefined();
expect(screen.getAllByText("+44").length).toBeGreaterThanOrEqual(1);
// Reset locale back for subsequent tests
mockLocale = "en";
});
}); });

36
src/components/Componentes/question-phone.tsx

@ -539,6 +539,7 @@ export function QuestionPhone({
flag: string; flag: string;
callingCode: string; callingCode: string;
searchTerms: string[]; searchTerms: string[];
region: string;
}[] = []; }[] = [];
const seen = new Set<string>(); const seen = new Set<string>();
@ -550,12 +551,12 @@ export function QuestionPhone({
let name = displayNames.of(region); let name = displayNames.of(region);
if (!name) continue; if (!name) continue;
if (region === "US")
name = locale === "fa" ? "ایالات متحده آمریکا" : "United States";
if (region === "GB")
name = locale === "fa" ? "بریتانیا" : "United Kingdom";
if (locale === "fa" || locale === "fa-ir") {
if (region === "US") name = "ایالات متحده آمریکا";
if (region === "GB") name = "بریتانیا";
}
const key = `${name}_+${callingCode}`;
const key = `${region}_${name}_+${callingCode}`;
if (seen.has(key)) continue; if (seen.has(key)) continue;
seen.add(key); seen.add(key);
@ -585,27 +586,23 @@ export function QuestionPhone({
flag, flag,
callingCode: String(callingCode), callingCode: String(callingCode),
searchTerms: Array.from(new Set(searchTerms)), searchTerms: Array.from(new Set(searchTerms)),
region,
}); });
} catch {} } catch {}
} }
return list.sort((a, b) => a.name.localeCompare(b.name));
return list.sort((a, b) => a.name.localeCompare(b.name, locale || "en"));
}, [locale]); }, [locale]);
const activeFlag = useMemo(() => { const activeFlag = useMemo(() => {
if (!codeValue) return "🏳️"; if (!codeValue) return "🏳️";
const cleanActiveCode = codeValue.replace(/[^\d]/g, ""); const cleanActiveCode = codeValue.replace(/[^\d]/g, "");
if (cleanActiveCode === "44") { if (cleanActiveCode === "44") {
const gb = countryList.find(
(c) => c.name.includes("United Kingdom") || c.name.includes("بریتانیا"),
);
const gb = countryList.find((c) => c.region === "GB");
if (gb) return gb.flag; if (gb) return gb.flag;
} }
if (cleanActiveCode === "1") { if (cleanActiveCode === "1") {
const us = countryList.find(
(c) =>
c.name.includes("United States") || c.name.includes("ایالات متحده"),
);
const us = countryList.find((c) => c.region === "US");
if (us) return us.flag; if (us) return us.flag;
} }
const match = countryList.find( const match = countryList.find(
@ -617,16 +614,11 @@ export function QuestionPhone({
const selectedCountry = useMemo(() => { const selectedCountry = useMemo(() => {
const cleanActiveCode = codeValue.replace(/[^\d]/g, ""); const cleanActiveCode = codeValue.replace(/[^\d]/g, "");
if (cleanActiveCode === "44") { if (cleanActiveCode === "44") {
const gb = countryList.find(
(c) => c.name.includes("United Kingdom") || c.name.includes("بریتانیا"),
);
const gb = countryList.find((c) => c.region === "GB");
if (gb) return gb; if (gb) return gb;
} }
if (cleanActiveCode === "1") { if (cleanActiveCode === "1") {
const us = countryList.find(
(c) =>
c.name.includes("United States") || c.name.includes("ایالات متحده"),
);
const us = countryList.find((c) => c.region === "US");
if (us) return us; if (us) return us;
} }
return countryList.find( return countryList.find(
@ -684,9 +676,9 @@ export function QuestionPhone({
if (aStartsTerm && !bStartsTerm) return -1; if (aStartsTerm && !bStartsTerm) return -1;
if (!aStartsTerm && bStartsTerm) return 1; if (!aStartsTerm && bStartsTerm) return 1;
return a.name.localeCompare(b.name);
return a.name.localeCompare(b.name, locale || "en");
}); });
}, [countryList, searchQuery]);
}, [countryList, searchQuery, locale]);
useSheetScrollLock(isOpen, { onBack: closeSheet }); useSheetScrollLock(isOpen, { onBack: closeSheet });

10
src/components/Componentes/slider-page.tsx

@ -4,6 +4,8 @@ import { useRouter } from "next/navigation";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { useQueryClient } from "@tanstack/react-query"; import { useQueryClient } from "@tanstack/react-query";
import { useUpdateMarriageProfileBasicMutation } from "@/hooks/marriage/use-profile-basic"; import { useUpdateMarriageProfileBasicMutation } from "@/hooks/marriage/use-profile-basic";
import { authBridge } from "@/lib/auth-bridge";
import { isInFlutterWebView } from "@/lib/webview-actions";
import { import {
getSubmitPath, getSubmitPath,
hasCompletedMarriageProfileBasics, hasCompletedMarriageProfileBasics,
@ -116,9 +118,15 @@ export default function SliderPage({ onClose }: SliderPageProps = {}) {
const localizedTarget = localizePath(targetPath, locale); const localizedTarget = localizePath(targetPath, locale);
router.prefetch?.(localizedTarget); router.prefetch?.(localizedTarget);
router.replace(localizedTarget); router.replace(localizedTarget);
} catch (error) {
} catch (error: any) {
console.error("Failed to complete onboarding:", error); console.error("Failed to complete onboarding:", error);
const backendMessage =
error?.response?.data?.detail ||
error?.response?.data?.message ||
error?.response?.data?.error;
setSubmitError( setSubmitError(
backendMessage ||
t["Something went wrong. Please check your internet connection and try again."] || t["Something went wrong. Please check your internet connection and try again."] ||
"Something went wrong. Please check your internet connection and try again." "Something went wrong. Please check your internet connection and try again."
); );

2
src/translations/locales/ar.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "جلاسر 5 يحتاج إلى اختبار", "Glasser 5 Needs Test": "جلاسر 5 يحتاج إلى اختبار",
"Go back": "عُد", "Go back": "عُد",
"Good": "جيد", "Good": "جيد",
"Got it": "Got it",
"Got it": "فهمت",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "حلال/مباح طيب", "Halal/permissible okay": "حلال/مباح طيب",
"Have a personal home for living together": "لديك منزل شخصي للعيش معًا", "Have a personal home for living together": "لديك منزل شخصي للعيش معًا",

2
src/translations/locales/da.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Glasser 5 behovstest", "Glasser 5 Needs Test": "Glasser 5 behovstest",
"Go back": "Go back", "Go back": "Go back",
"Good": "Godt", "Good": "Godt",
"Got it": "Got it",
"Got it": "Forstået",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "Halal/tilladt okay", "Halal/permissible okay": "Halal/tilladt okay",
"Have a personal home for living together": "Har et personligt hjem til at bo sammen", "Have a personal home for living together": "Har et personligt hjem til at bo sammen",

2
src/translations/locales/de.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Glasser 5 muss getestet werden", "Glasser 5 Needs Test": "Glasser 5 muss getestet werden",
"Go back": "Go back", "Go back": "Go back",
"Good": "Gut", "Good": "Gut",
"Got it": "Got it",
"Got it": "Verstanden",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "Halal/zulässig, okay", "Halal/permissible okay": "Halal/zulässig, okay",
"Have a personal home for living together": "Ein persönliches Zuhause für das Zusammenleben haben", "Have a personal home for living together": "Ein persönliches Zuhause für das Zusammenleben haben",

2
src/translations/locales/es.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Prueba de las 5 necesidades de Glasser", "Glasser 5 Needs Test": "Prueba de las 5 necesidades de Glasser",
"Go back": "Go back", "Go back": "Go back",
"Good": "bueno", "Good": "bueno",
"Got it": "Got it",
"Got it": "Entendido",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "Halal/permitido bien", "Halal/permissible okay": "Halal/permitido bien",
"Have a personal home for living together": "Tener un hogar personal para vivir juntos.", "Have a personal home for living together": "Tener un hogar personal para vivir juntos.",

2
src/translations/locales/fr.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Glasser 5 a besoin d'un test", "Glasser 5 Needs Test": "Glasser 5 a besoin d'un test",
"Go back": "Go back", "Go back": "Go back",
"Good": "Bon", "Good": "Bon",
"Got it": "Got it",
"Got it": "Compris",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "Halal/autorisé, ok", "Halal/permissible okay": "Halal/autorisé, ok",
"Have a personal home for living together": "Avoir une maison personnelle pour vivre ensemble", "Have a personal home for living together": "Avoir une maison personnelle pour vivre ensemble",

2
src/translations/locales/gu.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "ગ્લાસર 5 ને ટેસ્ટની જરૂર છે", "Glasser 5 Needs Test": "ગ્લાસર 5 ને ટેસ્ટની જરૂર છે",
"Go back": "Go back", "Go back": "Go back",
"Good": "સારું", "Good": "સારું",
"Got it": "Got it",
"Got it": "સમજાયું",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "હલાલ/પરવાનગી બરાબર", "Halal/permissible okay": "હલાલ/પરવાનગી બરાબર",
"Have a personal home for living together": "સાથે રહેવા માટે વ્યક્તિગત ઘર છે", "Have a personal home for living together": "સાથે રહેવા માટે વ્યક્તિગત ઘર છે",

2
src/translations/locales/ha.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Glasser 5 Yana Bukatar Gwaji", "Glasser 5 Needs Test": "Glasser 5 Yana Bukatar Gwaji",
"Go back": "Go back", "Go back": "Go back",
"Good": "Yayi kyau", "Good": "Yayi kyau",
"Got it": "Got it",
"Got it": "Na gane",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "Halal/ halatta lafiya", "Halal/permissible okay": "Halal/ halatta lafiya",
"Have a personal home for living together": "Have a personal home for living together", "Have a personal home for living together": "Have a personal home for living together",

2
src/translations/locales/he.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "הבנתי",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/hi.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "ग्लासर 5 को परीक्षण की आवश्यकता है", "Glasser 5 Needs Test": "ग्लासर 5 को परीक्षण की आवश्यकता है",
"Go back": "Go back", "Go back": "Go back",
"Good": "अच्छा", "Good": "अच्छा",
"Got it": "Got it",
"Got it": "समझ गया",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "हलाल/अनुमेय ठीक है", "Halal/permissible okay": "हलाल/अनुमेय ठीक है",
"Have a personal home for living together": "साथ रहने के लिए एक निजी घर हो", "Have a personal home for living together": "साथ रहने के लिए एक निजी घर हो",

2
src/translations/locales/id.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Mengerti",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/ks.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "سمجھ آو",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/pt.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Entendido",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/sw.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Nimeelewa",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/tg.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Фаҳмидам",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/tr.json

@ -40,7 +40,7 @@
"previousPage": "Önceki Sayfa", "previousPage": "Önceki Sayfa",
"itemsPerPage": "Sayfa Başına Öğe", "itemsPerPage": "Sayfa Başına Öğe",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Anladım",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"other": "Diğer", "other": "Diğer",
"consultation": "Consultation", "consultation": "Consultation",

2
src/translations/locales/ul.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Samajh Gaya/Gayi",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/ur.json

@ -40,7 +40,7 @@
"previousPage": "پچھلا صفحہ", "previousPage": "پچھلا صفحہ",
"itemsPerPage": "فی صفحہ اشیاء", "itemsPerPage": "فی صفحہ اشیاء",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "سمجھ گیا/گئی",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"other": "دیگر", "other": "دیگر",
"consultation": "Consultation", "consultation": "Consultation",

2
src/translations/locales/uz.json

@ -32,7 +32,7 @@
"estimateTime": "Estimate time", "estimateTime": "Estimate time",
"rangeError": "The value entered seems incorrect. Please provide a realistic value.", "rangeError": "The value entered seems incorrect. Please provide a realistic value.",
"help": "Help", "help": "Help",
"gotIt": "Got it",
"gotIt": "Tushundim",
"helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.", "helpDescription": "Psychologically, this practice fosters a sense of empathy and contentment, which can reduce financial stress. Socially, lending strengthens neighborhood bonds and creates support networks that can lead to economic opportunities. This hadith encourages believers to lend dough, bread, and fire to increase their sustenance.",
"finalMatchIntroduce": "Final Match Introduction", "finalMatchIntroduce": "Final Match Introduction",
"confirmFinalMatch": "Confirm Final Match", "confirmFinalMatch": "Confirm Final Match",

2
src/translations/locales/zh.json

@ -252,7 +252,7 @@
"Glasser 5 Needs Test": "Glasser 5 需要测试", "Glasser 5 Needs Test": "Glasser 5 需要测试",
"Go back": "Go back", "Go back": "Go back",
"Good": "好", "Good": "好",
"Got it": "Got it",
"Got it": "知道了",
"Habib Marriage": "Habib Marriage", "Habib Marriage": "Habib Marriage",
"Halal/permissible okay": "清真/允许的好", "Halal/permissible okay": "清真/允许的好",
"Have a personal home for living together": "拥有一个共同居住的个人住宅", "Have a personal home for living together": "拥有一个共同居住的个人住宅",

Loading…
Cancel
Save