fix
This commit is contained in:
parent
0700e77a02
commit
b7bd5ba61d
@ -248,7 +248,6 @@
|
||||
"payment_error": "Something went wrong. Please try again later.",
|
||||
"select_product_error": "Please select a product",
|
||||
"skip_offer": "Skip offer",
|
||||
|
||||
"products": {
|
||||
"main_ultra_pack": {
|
||||
"title": "ULTRA PACK",
|
||||
@ -396,6 +395,7 @@
|
||||
"reserved-for": "Reserved for {time}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Soulmate": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
209
messages/en.json
209
messages/en.json
@ -255,7 +255,6 @@
|
||||
"payment_error": "Something went wrong. Please try again later.",
|
||||
"select_product_error": "Please select a product",
|
||||
"skip_offer": "Skip offer",
|
||||
|
||||
"products": {
|
||||
"main_ultra_pack": {
|
||||
"title": "ULTRA PACK",
|
||||
@ -607,6 +606,212 @@
|
||||
"cost-for-one-day": "Your cost for one day after the trial is {cost}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Soulmate": {
|
||||
"v1": {
|
||||
"Landing": {
|
||||
"header-timer": {
|
||||
"title": "Reserved for {time}"
|
||||
},
|
||||
"header": {
|
||||
"title": "Special Offer!",
|
||||
"description": "Everything is free, trial period included!"
|
||||
},
|
||||
"hi-block": {
|
||||
"title": "Hello, Sunshine 👋",
|
||||
"description": "Your well-being and happiness are our top priority!",
|
||||
"card": {
|
||||
"title": "That's why we've decided to give you a personalised plan and access to a trial version of our app for FREE!",
|
||||
"image-description": "soulmate portraits delivered today",
|
||||
"count": "900+"
|
||||
}
|
||||
},
|
||||
"what-get": {
|
||||
"title": "What you will receive:",
|
||||
"detailed-portrait": {
|
||||
"header": {
|
||||
"title": "A detailed portrait of your other half is ready"
|
||||
}
|
||||
},
|
||||
"guide": {
|
||||
"header": {
|
||||
"title": "Guide “Finding the One”"
|
||||
},
|
||||
"list": {
|
||||
"1": "Why love doesn't come - and how to open the way to it",
|
||||
"2": "7 signs that you have met your soulmate",
|
||||
"3": "The main secret of couples who stay together",
|
||||
"4": "Mistakes that destroy even the strongest feelings",
|
||||
"5": "5 habits that make relationships happy"
|
||||
}
|
||||
},
|
||||
"individual-advice": {
|
||||
"header": {
|
||||
"title": "Personalized advice from a personal relationship psychologist"
|
||||
},
|
||||
"messages": {
|
||||
"me": {
|
||||
"text": "Why do I still doubt whether he loves me?",
|
||||
"time": "16:38 AM"
|
||||
},
|
||||
"advisor": {
|
||||
"text": "Because you feel that the connection is special. Fate was right—you are reflections of each other.",
|
||||
"time": "16:39 AM"
|
||||
}
|
||||
},
|
||||
"typing": "typing "
|
||||
},
|
||||
"search-compatible-partner": {
|
||||
"header": {
|
||||
"title": "Search for the most compatible partner"
|
||||
},
|
||||
"content": {
|
||||
"partner-name": "Your significant other",
|
||||
"percent": "97%",
|
||||
"compatibility": "Compatibility",
|
||||
"bars": {
|
||||
"1": {
|
||||
"percent": "92",
|
||||
"text": "Love",
|
||||
"colors": {
|
||||
"path": "#FD4B4B",
|
||||
"trail": "#FCE7F3"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"percent": "88",
|
||||
"text": "Sex",
|
||||
"colors": {
|
||||
"path": "#8B5CF6",
|
||||
"trail": "#EDE9FE"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"percent": "79",
|
||||
"text": "Family",
|
||||
"colors": {
|
||||
"path": "#4F46E5",
|
||||
"trail": "##EEF2FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"special-offer": {
|
||||
"title": "Special price",
|
||||
"prices": {
|
||||
"old-price": {
|
||||
"description": "Regular price"
|
||||
},
|
||||
"new-price": {
|
||||
"description": "Today"
|
||||
}
|
||||
},
|
||||
"trial-offer": {
|
||||
"title": "DOUBLED!",
|
||||
"description": "Full access to all materials"
|
||||
}
|
||||
},
|
||||
"plan-also-includes": {
|
||||
"title": "Your plan also includes:",
|
||||
"list": {
|
||||
"items": {
|
||||
"1": {
|
||||
"title": "Чат с экспертом",
|
||||
"text": "Задай свой вопрос и получи первый совет уже сегодня."
|
||||
},
|
||||
"2": {
|
||||
"title": "Анализ совместимости",
|
||||
"text": "Пойми, почему вы притягиваетесь друг к другу - и какие различия могут мешать гармонии."
|
||||
},
|
||||
"3": {
|
||||
"title": "Как говорить о чувствах и быть понятым",
|
||||
"text": "Пошаговый гайд, который поможет восстановить близость и искреннее общение."
|
||||
},
|
||||
"4": {
|
||||
"title": "Медитации и аффирмации для сердца",
|
||||
"text": "Практики, которые открывают внутреннюю уверенность и притягивают любовь."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"reviews": {
|
||||
"title": "What our users say:",
|
||||
"items": {
|
||||
"1": {
|
||||
"username": "@anna.smith28",
|
||||
"flag": "🇺🇸",
|
||||
"text": "The drawing was made before we met, and it matched down to the smallest detail: the same gaze, the same mole. We simply couldn't believe it! Now the portrait hangs in our home as a sign of destiny.",
|
||||
"answer": {
|
||||
"title": "Response from the support team",
|
||||
"text": "Anna, it's just the magic of fate! We are very happy that your portrait has become part of your love story. May it remind you how important it is to believe in the signs of the universe 🌹"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"username": "@mike.andrews_89",
|
||||
"flag": "🇺🇸",
|
||||
"text": "I decided to check whether my wife was truly my other half. The portrait matched her down to the last detail—the same gaze, the same energy. We both felt as if fate had just confirmed our union.",
|
||||
"answer": {
|
||||
"title": "Response from the support team",
|
||||
"text": "That's amazing! Stories like this prove that true love really does have an impact on an energetic level. May your portrait preserve the warmth of your connection for many years to come!"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"username": "@emily.harris_ang...",
|
||||
"flag": "🇬🇧",
|
||||
"text": "The “Finding the One” guide changed my life! The portrait was 100% accurate, and I met my love in a museum, just as predicted! ✨",
|
||||
"answer": {
|
||||
"title": "Response from the support team",
|
||||
"text": "Elena, your story inspires us! Thank you for sharing your success. May your love be strong and long-lasting!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"statistics": {
|
||||
"title": "899,247",
|
||||
"description": "People have already found love",
|
||||
"more-avatars": "+2K",
|
||||
"period-statistics": {
|
||||
"month": {
|
||||
"title": "54K",
|
||||
"text": "Per month"
|
||||
},
|
||||
"today": {
|
||||
"title": "2K",
|
||||
"text": "Today"
|
||||
}
|
||||
}
|
||||
},
|
||||
"real-time-activity": {
|
||||
"title": "Real-time activity",
|
||||
"text": "<bold>@elena_art</bold> received a portrait",
|
||||
"time": "2 мин назад"
|
||||
},
|
||||
"money-back-guarantee": {
|
||||
"title": "100% Money Back Guarantee",
|
||||
"term": "30 DAYS",
|
||||
"description": "We are confident that we can help you gain a deeper understanding of your partner and show you what they are really like. After receiving excellent customer reviews, <bold>we are ready to give you a 100% refund</bold> if this report and portrait are not useful to you.",
|
||||
"footer": "Без вопросов. Без риска."
|
||||
},
|
||||
"guaranteed-security-payments": "Guaranteed security payments",
|
||||
"button-continue": "CONTINUE"
|
||||
},
|
||||
"SpecialOffer": {
|
||||
"title": "Special Offer!",
|
||||
"start-trial": "Start your {days}-day trial",
|
||||
"cancel-anytime": "No pressure. Cancel anytime",
|
||||
"policy": "By continuing you agree that if you don't cancel prior to the end of the {days}-days trial, you will automatically be charged {price} every {billingPeriod} until you cancel in settings. Learn more about cancellation and <refundLink>Refund policy</refundLink> in <subscriptionLink>Subscription terms</subscriptionLink>",
|
||||
"button-continue": "CONTINUE",
|
||||
"pricing-summary-total-today": "Total today:",
|
||||
"pricing-summary-code-applied": "Code applied!",
|
||||
"pricing-summary-cost-after-trial": "Your cost per 2 weeks after trial",
|
||||
"pricing-summary-trial-description": "You will be charged only {trialPrice} for your {trialPeriod} trial. Your plan will then cost {price} per {billingPeriod}. Subscription renews automatically until cancelled. You can cancel at any time before the end of the trial.",
|
||||
"reserved-for": "Reserved for {time}",
|
||||
"save-every-period": "Save {price} every period",
|
||||
"cost-for-one-day": "Your cost for one day after the trial is {cost}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"SaveOff": {
|
||||
@ -640,4 +845,4 @@
|
||||
"month": "{count, plural, zero {#-months} one {#-month} two {#-months} few {#-months} many {#-months} other {#-months}}",
|
||||
"year": "{count, plural, zero {#-years} one {#-year} two {#-years} few {#-years} many {#-years} other {#-years}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -248,7 +248,6 @@
|
||||
"payment_error": "Something went wrong. Please try again later.",
|
||||
"select_product_error": "Please select a product",
|
||||
"skip_offer": "Skip offer",
|
||||
|
||||
"products": {
|
||||
"main_ultra_pack": {
|
||||
"title": "ULTRA PACK",
|
||||
@ -396,6 +395,7 @@
|
||||
"reserved-for": "Reserved for {time}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Soulmate": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -23,10 +23,10 @@ import { Currency, ELocalesPlacement } from "@/types";
|
||||
import styles from "./page.module.scss";
|
||||
|
||||
const payload = {
|
||||
funnel: ELocalesPlacement.EmailMarketingCompatibilityV2,
|
||||
funnel: ELocalesPlacement.EmailMarketingSoulmateV1,
|
||||
};
|
||||
|
||||
export default async function EmailMarketingCompatibilityV1Landing() {
|
||||
export default async function EmailMarketingSoulmateV1Landing() {
|
||||
const payment = (await loadFunnelPaymentById(
|
||||
payload,
|
||||
"main"
|
||||
|
Before Width: | Height: | Size: 901 B After Width: | Height: | Size: 901 B |
@ -9,7 +9,7 @@ import {
|
||||
import { Typography } from "@/components/ui";
|
||||
import { loadFunnelPaymentById } from "@/entities/session/funnel/loaders";
|
||||
import { IFunnelPaymentPlacement } from "@/entities/session/funnel/types";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
import { getPeriodTextServer } from "@/shared/utils/period-server";
|
||||
import { getFormattedPrice } from "@/shared/utils/price";
|
||||
import { Currency, ELocalesPlacement } from "@/types";
|
||||
@ -19,12 +19,12 @@ import GuaranteeIcon from "./guarantee.svg";
|
||||
import styles from "./page.module.scss";
|
||||
|
||||
const payload = {
|
||||
funnel: ELocalesPlacement.EmailMarketingCompatibilityV2,
|
||||
funnel: ELocalesPlacement.EmailMarketingSoulmateV1,
|
||||
};
|
||||
|
||||
export default async function SpecialOfferPage() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("SpecialOffer")
|
||||
translatePathEmailMarketingSoulmateV1("SpecialOffer")
|
||||
);
|
||||
|
||||
const payment = (await loadFunnelPaymentById(
|
||||
@ -6,13 +6,13 @@ import { useTranslations } from "next-intl";
|
||||
import { Typography } from "@/components/ui";
|
||||
import { useUser } from "@/providers/user-provider";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./DetailedPortraitCard.module.scss";
|
||||
|
||||
export default function DetailedPortraitCard() {
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2(
|
||||
translatePathEmailMarketingSoulmateV1(
|
||||
"Landing.what-get.detailed-portrait"
|
||||
)
|
||||
);
|
||||
|
||||
@ -3,13 +3,13 @@ import { useTranslations } from "next-intl";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./GuaranteedSecurityPayments.module.scss";
|
||||
|
||||
export default function GuaranteedSecurityPayments() {
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing")
|
||||
translatePathEmailMarketingSoulmateV1("Landing")
|
||||
);
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
|
||||
@ -2,13 +2,13 @@ import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { BlurComponent } from "@/components/widgets";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./GuideCard.module.scss";
|
||||
|
||||
export default async function GuideCard() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.what-get.guide")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.what-get.guide")
|
||||
);
|
||||
|
||||
const list = t.raw("list") as Record<string, string>;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./Header.module.scss";
|
||||
|
||||
export default async function Header() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.header")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.header")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -5,7 +5,7 @@ import clsx from "clsx";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { useTimer } from "@/hooks/timer/useTimer";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./HeaderTimer.module.scss";
|
||||
|
||||
@ -13,7 +13,7 @@ type IHeaderTimerProps = React.ComponentProps<"div">;
|
||||
|
||||
export default function HeaderTimer({ className }: IHeaderTimerProps) {
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.header-timer")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.header-timer")
|
||||
);
|
||||
const { time } = useTimer({
|
||||
initialSeconds: 600,
|
||||
|
||||
@ -2,13 +2,13 @@ import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography, UserAvatar } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./HiBlock.module.scss";
|
||||
|
||||
export default async function HiBlock() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.hi-block")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.hi-block")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -9,7 +9,7 @@ import {
|
||||
} from "@/components/domains/chat";
|
||||
import { Typography, UserAvatar } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./IndividualAdviceCard.module.scss";
|
||||
|
||||
@ -22,7 +22,7 @@ type TMessagesKey = "me" | "advisor";
|
||||
|
||||
export default async function IndividualAdviceCard() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2(
|
||||
translatePathEmailMarketingSoulmateV1(
|
||||
"Landing.what-get.individual-advice"
|
||||
)
|
||||
);
|
||||
|
||||
@ -6,18 +6,18 @@ import { useTranslations } from "next-intl";
|
||||
import { Button, Typography } from "@/components/ui";
|
||||
import { BlurComponent } from "@/components/widgets";
|
||||
import { ROUTES } from "@/shared/constants/client-routes";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./LandingButtonWrapper.module.scss";
|
||||
|
||||
export default function LandingButtonWrapper() {
|
||||
const router = useRouter();
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing")
|
||||
translatePathEmailMarketingSoulmateV1("Landing")
|
||||
);
|
||||
|
||||
const handleContinue = () => {
|
||||
router.push(ROUTES.emailMarketingCompatibilityV2SpecialOffer());
|
||||
router.push(ROUTES.emailMarketingSoulmateV1SpecialOffer());
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import GuaranteeIcon from "./guarantee.svg";
|
||||
|
||||
@ -9,7 +9,7 @@ import styles from "./MoneyBackGuarantee.module.scss";
|
||||
|
||||
export default async function MoneyBackGuarantee() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.money-back-guarantee")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.money-back-guarantee")
|
||||
);
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./PlanAlsoIncludes.module.scss";
|
||||
|
||||
@ -12,7 +12,7 @@ interface IListItem {
|
||||
|
||||
export default async function PlanAlsoIncludes() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.plan-also-includes")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.plan-also-includes")
|
||||
);
|
||||
|
||||
const listItems = Object.values(
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
import { getFormattedPrice } from "@/shared/utils/price";
|
||||
import { Currency } from "@/types";
|
||||
|
||||
@ -23,7 +23,7 @@ export default async function Prices({
|
||||
currency,
|
||||
}: IPricesProps) {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.special-offer.prices")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.special-offer.prices")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -2,7 +2,7 @@ import { getTranslations } from "next-intl/server";
|
||||
import clsx from "clsx";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
import { getPeriodTextServer } from "@/shared/utils/period-server";
|
||||
import { getFormattedPrice } from "@/shared/utils/price";
|
||||
import { Currency } from "@/types";
|
||||
@ -30,7 +30,7 @@ export default async function PricingSummary({
|
||||
currency,
|
||||
}: PricingSummaryProps) {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("SpecialOffer")
|
||||
translatePathEmailMarketingSoulmateV1("SpecialOffer")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -2,13 +2,13 @@ import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography, UserAvatar } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./RealTimeActivity.module.scss";
|
||||
|
||||
export default async function RealTimeActivity() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.real-time-activity")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.real-time-activity")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -2,7 +2,7 @@ import { useTranslations } from "next-intl";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import Review, { IReviewProps } from "../Review/Review";
|
||||
|
||||
@ -14,7 +14,7 @@ type ILocalReview = Pick<IReviewProps, "stars" | "avatar">;
|
||||
|
||||
export default function Reviews() {
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.reviews")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.reviews")
|
||||
);
|
||||
|
||||
const reviewsFromTranslate = Object.values(
|
||||
|
||||
@ -5,7 +5,7 @@ import { useTranslations } from "next-intl";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./SearchCompatiblePartnerCard.module.scss";
|
||||
|
||||
@ -23,7 +23,7 @@ interface IBar {
|
||||
|
||||
export default function SearchCompatiblePartnerCard() {
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2(
|
||||
translatePathEmailMarketingSoulmateV1(
|
||||
"Landing.what-get.search-compatible-partner"
|
||||
)
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@ import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { IFunnelPaymentVariant } from "@/entities/session/funnel/types";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
import { Currency } from "@/types";
|
||||
import { PeriodType } from "@/types/period";
|
||||
|
||||
@ -27,7 +27,7 @@ export default async function SpecialOffer({
|
||||
trialPeriod,
|
||||
}: ISpecialOfferProps) {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.special-offer")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.special-offer")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -6,7 +6,7 @@ import { useTranslations } from "next-intl";
|
||||
import { Button, Typography } from "@/components/ui";
|
||||
import { BlurComponent } from "@/components/widgets";
|
||||
import { ROUTES } from "@/shared/constants/client-routes";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./SpecialOfferButtonWrapper.module.scss";
|
||||
|
||||
@ -23,7 +23,7 @@ export default function SpecialOfferButtonWrapper({
|
||||
}: SpecialOfferButtonWrapperProps) {
|
||||
const router = useRouter();
|
||||
const t = useTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("SpecialOffer")
|
||||
translatePathEmailMarketingSoulmateV1("SpecialOffer")
|
||||
);
|
||||
|
||||
const openPaymentModal = () => {
|
||||
|
||||
@ -3,7 +3,7 @@ import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { emailMarketingCompV2Images } from "@/shared/constants/images";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import styles from "./Statistics.module.scss";
|
||||
|
||||
@ -13,7 +13,7 @@ const avatarsUrl = Array.from({ length: 6 }, (_, i) =>
|
||||
|
||||
export default async function Statistics() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.statistics")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.statistics")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
import { getPeriodTextServer } from "@/shared/utils/period-server";
|
||||
import { PeriodType } from "@/types/period";
|
||||
|
||||
@ -19,7 +19,7 @@ export default async function TrialIntervalOffer({
|
||||
newTrialInterval,
|
||||
}: ITrialIntervalOfferProps) {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2(
|
||||
translatePathEmailMarketingSoulmateV1(
|
||||
"Landing.special-offer.trial-offer"
|
||||
)
|
||||
);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
import { Typography } from "@/components/ui";
|
||||
import { translatePathEmailMarketingCompatibilityV2 } from "@/shared/constants/translate";
|
||||
import { translatePathEmailMarketingSoulmateV1 } from "@/shared/constants/translate";
|
||||
|
||||
import DetailedPortraitCard from "../DetailedPortraitCard/DetailedPortraitCard";
|
||||
import GuideCard from "../GuideCard/GuideCard";
|
||||
@ -12,7 +12,7 @@ import styles from "./WhatGet.module.scss";
|
||||
|
||||
export default async function WhatGet() {
|
||||
const t = await getTranslations(
|
||||
translatePathEmailMarketingCompatibilityV2("Landing.what-get")
|
||||
translatePathEmailMarketingSoulmateV1("Landing.what-get")
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@ -15,7 +15,7 @@ const profilePrefix = "profile";
|
||||
const retainingFunnelPrefix = "retaining";
|
||||
const emailMarketingPrefix = "em";
|
||||
const emailMarketingCompatibilityV1Prefix = `${emailMarketingPrefix}/c/v1`;
|
||||
const emailMarketingCompatibilityV2Prefix = `${emailMarketingPrefix}/c/v2`;
|
||||
const emailMarketingSoulmateV1Prefix = `${emailMarketingPrefix}/s/v1`;
|
||||
|
||||
export const ROUTES = {
|
||||
home: () => createRoute([]),
|
||||
@ -91,11 +91,11 @@ export const ROUTES = {
|
||||
emailMarketingCompatibilityV1SpecialOffer: () =>
|
||||
createRoute([emailMarketingCompatibilityV1Prefix, "special-offer"]),
|
||||
|
||||
// Email Marketing Compatibility V2
|
||||
emailMarketingCompatibilityV2Landing: () =>
|
||||
createRoute([emailMarketingCompatibilityV2Prefix, "landing"]),
|
||||
emailMarketingCompatibilityV2SpecialOffer: () =>
|
||||
createRoute([emailMarketingCompatibilityV2Prefix, "special-offer"]),
|
||||
// Email Marketing Soulmate V1
|
||||
emailMarketingSoulmateV1Landing: () =>
|
||||
createRoute([emailMarketingSoulmateV1Prefix, "landing"]),
|
||||
emailMarketingSoulmateV1SpecialOffer: () =>
|
||||
createRoute([emailMarketingSoulmateV1Prefix, "special-offer"]),
|
||||
|
||||
// // Compatibility
|
||||
// compatibilities: () => createRoute(["compatibilities"]),
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
export const translatePathEmailMarketingCompatibilityV1 = (path: string) =>
|
||||
`EmailMarketing.Compatibility.v1.${path}`;
|
||||
|
||||
export const translatePathEmailMarketingCompatibilityV2 = (path: string) =>
|
||||
`EmailMarketing.Compatibility.v2.${path}`;
|
||||
export const translatePathEmailMarketingSoulmateV1 = (path: string) =>
|
||||
`EmailMarketing.Soulmate.v1.${path}`;
|
||||
|
||||
@ -72,6 +72,7 @@ export enum ELocalesPlacement {
|
||||
EmailMarketingCompatibilityV1 = "email-marketing-comp-v1",
|
||||
EmailMarketingPalmistryV2 = "email-marketing-palmistry-v2",
|
||||
EmailMarketingCompatibilityV2 = "email-marketing-comp-v2",
|
||||
EmailMarketingSoulmateV1 = "email-marketing-soulmate-v1",
|
||||
EmailMarketingCompatibilityV3 = "email-marketing-comp-v3",
|
||||
EmailMarketingCompatibilityV4 = "email-marketing-comp-v4",
|
||||
CompatibilityV2 = "compatibility-v2",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user