This commit is contained in:
Daniil Chemerkin 2024-10-18 23:40:11 +00:00
parent 78420ae4a2
commit 438b7ff334
22 changed files with 719 additions and 130 deletions

View File

@ -712,6 +712,69 @@
},
"palmistry-v1": {
"next": "Next",
"privacy_policy": "By continuing, you agree to our <eulaLink> and <privacyLink>. Have a question? Reach our support team <clickHere>",
"eula_link": "EULA",
"privacy_notice": "Privacy Notice",
"policy_here": "here",
"thumb": "Thumb finger",
"index_finger": "Index finger",
"middle_finger": "Middle finger",
"ring_finger": "Ring finger",
"pinky": "Little finger",
"/scanned-photo": {
"title": "We are putting together a comprehensive Palmistry Reading just for you!",
"text": "Wow, looks like there is a lot we can tell about your ambitious and strong self-confident future."
},
"aura_paywall_palmistry_main": {
"text_0": "We've helped millions of people to reveal the destiny of their love life and what the future holds for them and their families.",
"text_1": "It costs us $13.21 to compensate our AURA\nemployees for the trial, but please choose the\namount you are comfortable with."
},
"skip_trial": "Skip Trial",
"add_consultant": "Add Consultant",
"add_guides": "Add Guides",
"access_product": "Access Product",
"thank_you": "Thank you!",
"order_successful": "Your order was successful!",
"/skip-trial": {
"title": "Not planning on looking back?",
"price_per_week": "<price> per week",
"billing_period": "Billing period",
"billed_amount": "Billed amount",
"billed_in_4_weeks": "Billed in 4 weeks",
"start_trial": {
"every_week": "Every week",
"start_trial": "Start trial"
},
"skip_trial": {
"save": "save <save>%",
"every_4_weeks": "Every 4 weeks",
"skip_trial": "Accept offer and skip trial"
}
},
"/add-consultant": {
"more_for_you": "More for you",
"exclusive_offer": "Exclusive offer recommended for you to achieve your goals faster",
"your_unique_consultation": "Your unique individual consultation",
"30-minute": "30-minute private consultation with an expert",
"description": "You can ask for prediction of the future, live compatibility analysis; love compatibility etc",
"one_time_price_offer": "One time price offer: ",
"original_price": "Original price: <oldPrice> <discount>",
"you_will_be_charged": "*You will be charged for the add-on services or offers selected at the time of purchase.\n This is a non-recuring payment.",
"get_my_consultation": "Get my consultation",
"discount_save": "Save",
"caution": "Caution!",
"caution_text": "To prevent double charges please don`t close the page and don`t go back.",
"unlock_profound": "Unlock profound insights into your personality, relationships, career trajectory, and life's pivotal moments through astrology, empowering you to make informed decisions and achieve greater fulfillment.",
"choose_from": "Choose from 80+ experts astrologers."
},
"/find-your-happiness": {
"title": "Find your happiness with highly-personalized predictions.",
"point1": "rated by real users",
@ -722,7 +785,8 @@
},
"/gender": {
"title": "Whats your gender?",
"description": "In Palmistry, everyone is a blend of masculine and feminine, so it helps to know yours."
"description": "In Palmistry, everyone is a blend of masculine and feminine, so it helps to know yours.",
"already_have_account": "Already have an account? Sign in"
},
"/birthdate": {
"title": "Whats your date of birth?",

View File

@ -712,6 +712,69 @@
},
"palmistry-v1": {
"next": "Next",
"privacy_policy": "By continuing, you agree to our <eulaLink> and <privacyLink>. Have a question? Reach our support team <clickHere>",
"eula_link": "EULA",
"privacy_notice": "Privacy Notice",
"policy_here": "here",
"thumb": "Thumb finger",
"index_finger": "Index finger",
"middle_finger": "Middle finger",
"ring_finger": "Ring finger",
"pinky": "Little finger",
"/scanned-photo": {
"title": "We are putting together a comprehensive Palmistry Reading just for you!",
"text": "Wow, looks like there is a lot we can tell about your ambitious and strong self-confident future."
},
"aura_paywall_palmistry_main": {
"text_0": "We've helped millions of people to reveal the destiny of their love life and what the future holds for them and their families.",
"text_1": "It costs us $13.21 to compensate our AURA\nemployees for the trial, but please choose the\namount you are comfortable with."
},
"skip_trial": "Skip Trial",
"add_consultant": "Add Consultant",
"add_guides": "Add Guides",
"access_product": "Access Product",
"thank_you": "Thank you!",
"order_successful": "Your order was successful!",
"/skip-trial": {
"title": "Not planning on looking back?",
"price_per_week": "<price> per week",
"billing_period": "Billing period",
"billed_amount": "Billed amount",
"billed_in_4_weeks": "Billed in 4 weeks",
"start_trial": {
"every_week": "Every week",
"start_trial": "Start trial"
},
"skip_trial": {
"save": "save <save>%",
"every_4_weeks": "Every 4 weeks",
"skip_trial": "Accept offer and skip trial"
}
},
"/add-consultant": {
"more_for_you": "More for you",
"exclusive_offer": "Exclusive offer recommended for you to achieve your goals faster",
"your_unique_consultation": "Your unique individual consultation",
"30-minute": "30-minute private consultation with an expert",
"description": "You can ask for prediction of the future, live compatibility analysis; love compatibility etc",
"one_time_price_offer": "One time price offer: ",
"original_price": "Original price: <oldPrice> <discount>",
"you_will_be_charged": "*You will be charged for the add-on services or offers selected at the time of purchase.\n This is a non-recuring payment.",
"get_my_consultation": "Get my consultation",
"discount_save": "Save",
"caution": "Caution!",
"caution_text": "To prevent double charges please don`t close the page and don`t go back.",
"unlock_profound": "Unlock profound insights into your personality, relationships, career trajectory, and life's pivotal moments through astrology, empowering you to make informed decisions and achieve greater fulfillment.",
"choose_from": "Choose from 80+ experts astrologers."
},
"/find-your-happiness": {
"title": "Find your happiness with highly-personalized predictions.",
"point1": "rated by real users",
@ -722,7 +785,8 @@
},
"/gender": {
"title": "Whats your gender?",
"description": "In Palmistry, everyone is a blend of masculine and feminine, so it helps to know yours."
"description": "In Palmistry, everyone is a blend of masculine and feminine, so it helps to know yours.",
"already_have_account": "Already have an account? Sign in"
},
"/birthdate": {
"title": "Whats your date of birth?",

View File

@ -599,7 +599,7 @@
"get_my_copy": "Obtener mi copia",
"products": {
"ultra_pack": {
"title": "ULTRA PACK",
"title": "PAQUETE ULTRA",
"discount": "<discount>% DE DESCUENTO",
"description": "(3 en 1 + 2 lecturas secretas adicionales)",
"price": "<price> (precio regular <oldPrice>)"
@ -681,5 +681,283 @@
},
"/trial-choice": {
"button": "Elige una cantidad que creas razonable."
},
"assistantId": "asst_rG0fI4HaRFx5AcX6eNPZc6gY",
"v": "v1",
"config": "es.female",
"threadId": "thread_WJOMVhNOTyfYW9eN2kPAE1Fn",
"skip_trial": "Omitir Prueba",
"add_consultant": "Agregar Consultora",
"add_guides": "Agregar Guías",
"/skip-trial": {
"title": "¿No piensas mirar atrás?",
"price_per_week": "<price> por semana",
"billing_period": "Período de facturación",
"billed_amount": "Monto facturado",
"billed_in_4_weeks": "Facturado en 4 semanas",
"start_trial": {
"every_week": "Cada semana",
"start_trial": "Iniciar prueba"
},
"skip_trial": {
"save": "ahorra <save>%",
"every_4_weeks": "Cada 4 semanas",
"skip_trial": "Aceptar oferta y omitir prueba"
}
},
"/add-consultant": {
"caution": "¡Precaución!",
"caution_text": "Para evitar cargos dobles, por favor no cierres la página ni retrocedas.",
"unlock_profound": "Descubre profundos conocimientos sobre tu personalidad, relaciones, trayectoria profesional y momentos cruciales de la vida a través de la astrología, empoderándote para tomar decisiones informadas y lograr una mayor realización.",
"choose_from": "Elige entre más de 80 astrólogos expertos."
},
"palmistry-v1": {
"next": "Siguiente",
"went_wrong": "Algo salió mal.",
"biometric_data": "No se recopilan datos biométricos. Todo el proceso de reconocimiento se realiza en tu dispositivo.",
"privacy_policy": "Al continuar, aceptas nuestro <eulaLink> y <privacyLink>. ¿Tienes alguna pregunta? Comunícate con nuestro equipo de soporte <clickHere>",
"eula_link": "EULA",
"privacy_notice": "Aviso de Privacidad",
"policy_here": "aquí",
"/scanned-photo": {
"title": "¡Estamos preparando una lectura de quiromancia completa solo para ti!",
"text": "Wow, parece que hay mucho que podemos decir sobre tu futuro ambicioso y seguro de ti misma."
},
"aura_paywall_palmistry_main": {
"text_0": "Hemos ayudado a millones de personas a revelar el destino de su vida amorosa y lo que les depara el futuro a ellas y a sus familias.",
"text_1": "Nos cuesta $13.21 compensar a nuestros empleados de AURA por la prueba, pero por favor elige el monto con el que te sientas cómoda."
},
"skip_trial": "Omitir prueba",
"add_consultant": "Agregar Consultora",
"add_guides": "Agregar Guías",
"access_product": "Acceder al Producto",
"thank_you": "¡Gracias!",
"order_successful": "¡Tu pedido fue exitoso!",
"/skip-trial": {
"title": "¿No piensas mirar atrás?",
"price_per_week": "<price> por semana",
"billing_period": "Período de facturación",
"billed_amount": "Monto facturado",
"billed_in_4_weeks": "Facturado en 4 semanas",
"start_trial": {
"every_week": "Cada semana",
"start_trial": "Iniciar prueba"
},
"skip_trial": {
"save": "ahorra <save>%",
"every_4_weeks": "Cada 4 semanas",
"skip_trial": "Aceptar oferta y omitir prueba"
}
},
"/add-consultant": {
"more_for_you": "Más para ti",
"exclusive_offer": "Oferta exclusiva recomendada para que alcances tus metas más rápido",
"your_unique_consultation": "Tu consulta individual única",
"30-minute": "Consulta privada de 30 minutos con una experta",
"description": "Puedes pedir predicciones del futuro, análisis de compatibilidad en vivo, compatibilidad amorosa, etc.",
"one_time_price_offer": "Oferta de precio único: ",
"original_price": "Precio original: <oldPrice> <discount>",
"you_will_be_charged": "*Se te cobrará por los servicios o ofertas adicionales seleccionados en el momento de la compra.\n Este es un pago no recurrente.",
"get_my_consultation": "Obtener mi consulta",
"discount_save": "Ahorra",
"caution": "¡Precaución!",
"caution_text": "Para evitar cargos dobles, por favor no cierres la página ni retrocedas.",
"unlock_profound": "Desbloquea profundos conocimientos sobre tu personalidad, relaciones, trayectoria profesional y momentos cruciales de la vida a través de la astrología, empoderándote para tomar decisiones informadas y lograr una mayor realización.",
"choose_from": "Elige entre más de 80 astrólogos expertos."
},
"/find-your-happiness": {
"title": "Encuentra tu felicidad con predicciones altamente personalizadas.",
"point1": "calificado por usuarios reales",
"point2": "93.4% de precisión",
"point3": "elección de 20 millones de usuarios",
"point4": "puntuación de satisfacción de 4.8",
"text": "Entiende a ti misma y mejora tus relaciones con la astrología"
},
"/gender": {
"title": "¿Cuál es tu género?",
"description": "En la quiromancia, todos somos una mezcla de lo masculino y lo femenino, así que nos ayuda saber el tuyo.",
"already_have_account": "¿Ya tienes una cuenta? Inicia sesión"
},
"/birthdate": {
"title": "¿Cuál es tu fecha de nacimiento?",
"text": "Tu fecha de nacimiento revela tus rasgos principales de personalidad, necesidades y deseos."
},
"/palms-information": {
"title": "Tus palmas contienen una gran cantidad de información sobre tu destino y personalidad."
},
"/what-aspects": {
"title": "¿En qué aspectos de tu vida deseas obtener información a través de la quiromancia?",
"answer1": "Amor y Relaciones",
"answer2": "Salud y Vitalidad",
"answer3": "Carrera y Destino"
},
"/relationship-status": {
"title": "Para conocerte mejor, por favor dinos tu estado civil",
"answer1": "Soltera",
"answer2": "En una relación"
},
"/element-resonates": {
"title": "¿Con qué elemento resuenas más?",
"answer1": "Agua",
"answer2": "Fuego",
"answer3": "Aire",
"answer4": "Tierra"
},
"/favorite-color": {
"title": "¿Cuál es tu color favorito?",
"answer1": "Azul",
"answer2": "Verde",
"answer3": "Naranja",
"answer4": "Violeta",
"answer5": "Rojo",
"answer6": "Amarillo"
},
"/head-or-heart": {
"title": "¿Tomas decisiones con la cabeza o con el corazón?",
"answer1": "Corazón",
"answer2": "Cabeza",
"answer3": "Ambos"
},
"/relate-following": {
"title": "¿Te identificas con lo siguiente?",
"question1": "Encuentro consuelo y comodidad pasando tiempo sola.",
"question2": "Valoro y disfruto de mi propia compañía.",
"question3": "Prefiero socializar en grupo en lugar de pasar tiempo sola.",
"question4": "La soledad es algo que trato de evitar activamente.",
"question5": "Disfruto de actividades que puedo hacer de manera independiente.",
"strongly_agree": "Totalmente de acuerdo",
"strongly_disagree": "Totalmente en desacuerdo"
},
"/let-scan": {
"title": "Vamos a escanear tus palmas",
"text": "Sigue las instrucciones en pantalla, así podremos analizar las líneas de tu palma y revelar tu futuro y los secretos de tu destino."
},
"/scan-instruction": {
"title": "Toma una foto de tu palma como se indica",
"button": "Tomar una foto ahora"
},
"/email": {
"title": "Ingresa tu correo electrónico para obtener tu lectura avanzada de quiromancia con AURA",
"not_share": "No compartimos ninguna información personal.",
"placeholder_email": "Tu correo electrónico",
"placeholder_name": "Tu nombre"
},
"app_number_one": {
"text": "La aplicación <color> confiada por más de 25 millones de personas.",
"color": "#1 en Astrología"
},
"/trial-payment": {
"palm_is_ready": {
"title": "Tu lectura de palma <color>",
"title_color": "Está lista",
"description": "“Acabo de recibir los resultados del escaneo de tu palma. ¡Hablemos!”",
"text1": "<color> 6 años en lecturas de quiromancia y guía espiritual.",
"text1_color": "Akho",
"text2": "Elige entre más de 80 lectores de palma y astrólogos."
},
"joined_today": {
"text1": "Chats ilimitados con un lector de palma",
"text2": "<count> personas se unieron hoy"
},
"get_personal_prediction": "Obtén una predicción personalizada",
"how_work": {
"title": "¿Cómo funciona AURA?",
"point1_title": "Envíanos tu escaneo de la palma",
"point1_text": "Analizamos las líneas de tu palma para obtener pistas sobre tu futuro",
"point2_title": "Se genera tu lectura de la palma",
"point2_text": "Uno de nuestros lectores de palma profesionales prepara un informe lleno de pistas sobre tu futuro",
"point3_title": "Empieza tu prueba para recibir tu predicción",
"point3_text": "Una vez que seas miembro de AURA, te enviaremos tu informe de predicción para que puedas empezar a vivir una vida mejor.",
"point4_title": "Habla con un especialista en lectura de palma en cualquier momento",
"point4_text": "Obtén apoyo continuo discutiendo tus lecturas, horóscopos personales y compatibilidades con nuestro equipo de expertos."
},
"money_back_guarantee": {
"title": "Garantía de devolución del 100% del dinero",
"text": "Si no notas ningún progreso después de usar la aplicación durante al menos una semana, estamos listos para hacer un reembolso completo dentro de los 14 días."
},
"begin_trial_now": "Comienza la prueba ahora",
"what_included": {
"title": "¿Qué está incluido?",
"point1": "<bold> lecturas de palma",
"point1_bold": "Ilimitadas",
"point2": "<bold> con astrólogos profesionales",
"point2_bold": "Chats en vivo 1:1",
"point3": "<bold> lecturas",
"point3_bold": "Compatibilidad diaria",
"point4": "Consejos cósmicos de relación",
"point5": "Horóscopos diarios"
},
"palms_say_about": {
"title": "¿Qué dicen tus palmas sobre ti?",
"point1": "<color> muestra tu actitud hacia el amor y la calidad del amor",
"point1_color": "Línea del amor",
"point2": "Un pulgar largo indica buena fortuna",
"point3": "<color> refleja tu inteligencia y mentalidad",
"point3_color": "Línea de la cabeza",
"point4": "Un dedo índice largo indica un líder nato",
"point5": "<color> define la calidad de tu vida y lo que lograrás",
"point5_color": "Línea de la vida",
"point6": "Un dedo medio corto revela un espíritu libre",
"point7": "<color> representa tus logros materiales y objetivos profesionales",
"point7_color": "Línea del destino",
"point8": "Un dedo anular largo revela que una persona tiende a tomar riesgos",
"point9": "Un dedo meñique corto indica la falta de confianza en uno mismo"
},
"discover_more": "Descubre más",
"why_love": "¿Por qué todos <color>?",
"why_love_color": "aman AURA",
"reviews": {
"username1": "Rebecca Bauman",
"tagline1": "\"¡Ha cambiado mi vida!\"",
"text1": "Estoy agradecida por esta aplicación y por Akho. ¡Ella es una excelente lectora de palma y astróloga—clara, minuciosa y tranquilizadora. Espero con ansias más sesiones con ella!",
"username2": "Mika Ryan",
"tagline2": "\"Después de años de búsqueda, finalmente he encontrado un verdadero amor.\"",
"text2": "Tenía dudas sobre si realmente valía la pena probarlo, pero ahora no tengo arrepentimientos y estoy disfrutando mis nuevas relaciones.",
"username3": "Amanda Holmes",
"tagline3": "\"He encontrado un trabajo que realmente disfruto.\"",
"text3": "Gracias a Vladana, finalmente he descubierto una pista sobre cuál es realmente el propósito de mi vida y qué tipo de trabajo resuena más conmigo."
},
"success_story": "¡Conviértete en una historia de éxito de AURA!",
"as_seen_in": "<color> Visto en",
"footer": {
"text1": "¿Preguntas? Estamos aquí para ayudarte",
"text2": "Atención al Cliente",
"text3": "Centro de Ayuda"
}
},
"/payment": {
"will_be_charged_trial_info": "<trialPrice> por tu prueba de <trialDuration> días",
"will_be_charged_email_reminder": "te enviaremos un recordatorio por correo electrónico",
"will_be_charged": "Se te cobrará solo <trialInfo>. Luego <fullPrice> <trialPrice> por semana. Ahorra <save> cada semana. Te enviaremos un <emailReminder> antes de que termine tu prueba.",
"payment_information": {
"personalized_offer": "Oferta personalizada reservada",
"title": "Comienza tu prueba de <trialDuration> días",
"total_today": "Total hoy",
"code_applied_bold": "AURA24",
"code_applied": "¡Código <bold> aplicado!"
},
"guarantees": {
"no_commitment": "Sin compromiso. Cancela en cualquier momento.",
"30_day_money_back": "Garantía de devolución del dinero en 30 días"
},
"get_personal_prediction": "Obtén una predicción personalizada",
"total_due": "Total adeudado hoy: <trialPrice>",
"app_number_one_color": "25 millones de personas.",
"app_number_one": "La aplicación de astrología #1 confiada por más de <color>"
},
"/camera": {
"bad_photo": "¡Foto mala!",
"try_again": "Inténtalo de nuevo",
"do_better": "Puedes hacerlo mejor",
"next": "Siguiente"
}
}
}
}

View File

@ -715,6 +715,64 @@
"next": "Siguiente",
"biometric_data": "No se recopilan datos biométricos. Todo el proceso de reconocimiento se realiza en tu dispositivo.",
"went_wrong": "Algo salió mal.",
"privacy_policy": "Al continuar, aceptas nuestro <eulaLink> y <privacyLink>. ¿Tienes alguna pregunta? Contacta a nuestro equipo de soporte <clickHere>.",
"eula_link": "EULA",
"privacy_notice": "Aviso de Privacidad",
"policy_here": "aquí",
"/scanned-photo": {
"title": "Estamos preparando una lectura de quiromancia completa solo para ti.",
"text": "Guau, parece que hay mucho que podemos decir sobre tu futuro ambicioso y seguro de ti mismo."
},
"aura_paywall_palmistry_main": {
"text_0": "Hemos ayudado a millones de personas a revelar el destino de su vida amorosa y lo que el futuro les depara a ellos y sus familias.",
"text_1": "Nos cuesta $13.21 compensar a nuestros empleados de AURA por la prueba, pero elige la cantidad con la que te sientas cómodo."
},
"skip_trial": "Saltar la prueba",
"add_consultant": "Agregar Consultor",
"add_guides": "Agregar Guías",
"access_product": "Acceder al producto",
"thank_you": "¡Gracias!",
"order_successful": "¡Tu pedido fue exitoso!",
"/skip-trial": {
"title": "¿No planeas mirar atrás?",
"price_per_week": "<price> por semana",
"billing_period": "Periodo de facturación",
"billed_amount": "Cantidad facturada",
"billed_in_4_weeks": "Facturado en 4 semanas",
"start_trial": {
"every_week": "Cada semana",
"start_trial": "Iniciar prueba"
},
"skip_trial": {
"save": "ahorra <save>%",
"every_4_weeks": "Cada 4 semanas",
"skip_trial": "Aceptar oferta y saltar prueba"
}
},
"/add-consultant": {
"more_for_you": "Más para ti",
"exclusive_offer": "Oferta exclusiva recomendada para que alcances tus metas más rápido",
"your_unique_consultation": "Tu consulta individual única",
"30-minute": "Consulta privada de 30 minutos con un experto",
"description": "Puedes pedir predicciones del futuro, análisis en vivo de compatibilidad; compatibilidad amorosa, etc.",
"one_time_price_offer": "Oferta de precio único: ",
"original_price": "Precio original: <oldPrice> <discount>",
"you_will_be_charged": "*Se te cobrará por los servicios adicionales u ofertas seleccionadas en el momento de la compra.\n Este es un pago no recurrente.",
"get_my_consultation": "Obtener mi consulta",
"discount_save": "Ahorrar",
"caution": "¡Precaución!",
"caution_text": "Para evitar cargos dobles, por favor no cierres la página ni retrocedas.",
"unlock_profound": "Desbloquea profundas perspectivas sobre tu personalidad, relaciones, trayectoria profesional y momentos cruciales de la vida a través de la astrología, empoderándote para tomar decisiones informadas y lograr una mayor satisfacción.",
"choose_from": "Elige entre más de 80 astrólogos expertos."
},
"/find-your-happiness": {
"title": "Encuentra tu felicidad con predicciones altamente personalizadas.",
"point1": "Valorado por usuarios reales",
@ -725,7 +783,8 @@
},
"/gender": {
"title": "¿Cuál es tu género?",
"description": "En la quiromancia, todos somos una mezcla de lo masculino y lo femenino, así que ayuda saber el tuyo."
"description": "En la quiromancia, todos somos una mezcla de lo masculino y lo femenino, así que ayuda saber el tuyo.",
"already_have_account": "¿Ya tienes una cuenta? Inicia sesión"
},
"/birthdate": {
"title": "¿Cuál es tu fecha de nacimiento?",
@ -893,6 +952,12 @@
"total_due": "Total a pagar hoy: <trialPrice>",
"app_number_one_color": "25 millones de personas.",
"app_number_one": "La aplicación #1 en Astrología en la que confían más de <color>"
},
"/camera": {
"bad_photo": "¡Foto mala!",
"try_again": "Inténtalo de nuevo",
"do_better": "Puedes hacerlo mejor",
"next": "Siguiente"
}
}
}

Binary file not shown.

View File

@ -32,11 +32,11 @@ interface ResponseGetSuccess {
}
interface ResponseGetError {
ip: "127.0.0.1",
error: true,
reason: "Reserved IP Address",
reserved?: true,
version?: "IPv4"
ip: string,
error: boolean,
reason: string,
reserved?: boolean,
version?: string;
}
export type ResponseGet = ResponseGetSuccess & ResponseGetError;

View File

@ -15,26 +15,6 @@ import Toast from "@/components/pages/ABDesign/v1/components/Toast";
import { useTranslations } from "@/hooks/translations";
import { ELocalesPlacement } from "@/locales";
const fingersNames = {
thumb: "Thumb finger",
index_finger: "Index finger",
middle_finger: "Middle finger",
ring_finger: "Ring finger",
pinky: "Little finger",
};
const setFingersNames = (
fingers: IPalmistryFinger[]
): IPalmistryFingerLocal[] => {
if (!fingers) return [];
return fingers.map((finger) => {
return {
...finger,
fingerName: fingersNames[finger.name as keyof typeof fingersNames],
};
});
};
const isProduction = import.meta.env.MODE === "production";
enum EToastVisible {
@ -55,6 +35,26 @@ function Camera() {
navigate(routes.client.palmistryV1ScannedPhoto());
};
const fingersNames = {
thumb: translate("thumb"),
index_finger: translate("index_finger"),
middle_finger: translate("middle_finger"),
ring_finger: translate("ring_finger"),
pinky: translate("pinky"),
};
const setFingersNames = (
fingers: IPalmistryFinger[]
): IPalmistryFingerLocal[] => {
if (!fingers) return [];
return fingers.map((finger) => {
return {
...finger,
fingerName: fingersNames[finger.name as keyof typeof fingersNames],
};
});
};
/**
* Check if the palmistry lines are valid for the next step.
* If the length of the lines is less than 2, show the "try_again" toast.

View File

@ -77,7 +77,7 @@ function GenderPalmistry() {
</Title>
<p className={styles.description}>{translate("/gender.description")}</p>
<ChooseGender onSelectGender={selectGender} />
<AlreadyHaveAccount />
<AlreadyHaveAccount text={translate("/gender.already_have_account")} />
<PrivacyPolicy containerClassName={styles["privacy-policy"]} />
{gender && !privacyPolicyChecked && (
<Toast classNameContainer={styles["toast-container"]} variant="error">

View File

@ -35,39 +35,35 @@ function PalmsInformation() {
{translate("next")}
</Button>
<Policy>
{translate(
"privacy_text",
{
eulaLink: (
<a
href="https://aura.wit.life/terms"
target="_blank"
rel="noopener noreferrer"
>
{translate("eula", undefined, ELocalesPlacement.V0)}
</a>
),
privacyLink: (
<a
href="https://aura.wit.life/privacy"
target="_blank"
rel="noopener noreferrer"
>
{translate("privacy_notice", undefined, ELocalesPlacement.V0)}
</a>
),
clickHere: (
<a
href="https://aura.wit.life/"
target="_blank"
rel="noopener noreferrer"
>
{translate("here", undefined, ELocalesPlacement.V0)}
</a>
),
},
ELocalesPlacement.V0
)}
{translate("privacy_policy", {
eulaLink: (
<a
href="https://aura.wit.life/terms"
target="_blank"
rel="noopener noreferrer"
>
{translate("eula_link")}
</a>
),
privacyLink: (
<a
href="https://aura.wit.life/privacy"
target="_blank"
rel="noopener noreferrer"
>
{translate("privacy_notice")}
</a>
),
clickHere: (
<a
href="https://aura.wit.life/"
target="_blank"
rel="noopener noreferrer"
>
{translate("policy_here")}
</a>
),
})}
</Policy>
</div>
);

View File

@ -8,11 +8,14 @@ import { IPalmistryFingerLocal } from "@/store/palmistry";
import { useNavigate } from "react-router-dom";
import routes from "@/routes";
import ScannedPhotoElement from "@/components/palmistry/scanned-photo/scanned-photo";
import { useTranslations } from "@/hooks/translations";
import { ELocalesPlacement } from "@/locales";
const drawElementChangeDelay = 1500;
const startDelay = 500;
function ScannedPhoto() {
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
const navigate = useNavigate();
const photo = useSelector(selectors.selectPalmistryPhoto);
const fingers = useSelector(selectors.selectPalmistryFingers);
@ -103,7 +106,7 @@ function ScannedPhoto() {
}ms`,
}}
>
We are putting together a comprehensive Palmistry Reading just for you!
{translate("/scanned-photo.title")}
</h2>
<h3
@ -114,8 +117,7 @@ function ScannedPhoto() {
}ms`,
}}
>
Wow, looks like there is a lot we can tell about your ambitious and
strong self-confident future.
{translate("/scanned-photo.text")}
</h3>
</section>
);

View File

@ -0,0 +1,80 @@
export const getLongText = (locale: string) => {
if (locale === "es") {
return (
<>
AURA es la única aplicación precisa con un análisis fiable de la línea
del destino, verificado por profesionales y garantizado para
proporcionar predicciones precisas.
<br />
<br />
AURA ya ha ayudado a millones de personas a encontrar la felicidad y
descubrir toda la verdad sobre sus relaciones.
<br />
<br />
Tu análisis del destino, que cambiará tu vida por completo, ¡está casi
listo! Antes de proporcionártelo, nos gustaría ofrecerte la oportunidad
de elegir la cantidad que consideres razonable para probar AURA durante
7 días y que creas justa para los cambios que te sucederán:
<br />
<br />
Descubrirás todos los secretos más íntimos que las estrellas tienen
preparados para ti y resolverás problemas de relación en solo un mes;
<br />
<br />
Pondrás fin, de una vez por todas, a asuntos pendientes y olvidarás
los problemas que te han estado atormentando durante años (si no
décadas);
<br />
<br />
Ahorrarás cientos de dólares en predicciones astrológicas falsas y
adivinos no profesionales;
<br />
<br />
Recibirás no solo un análisis personal, sino también horóscopos
diarios personalizados, aprenderás quién y cómo está drenando tu energía
y obtendrás otras lecturas personalizadas.
<br />
<br />
El período de prueba de 7 días nos cuesta $13.76, pero por favor elige
la cantidad que más te convenga:
</>
);
}
return (
<>
AURA is the only accurate app with reliable fate line analysis, verified
by professionals and guaranteed to provide precise predictions.
<br />
<br />
AURA has already helped millions of people find happiness and discover the
whole truth about their relationships.
<br />
<br />
Your fate analysis, which will completely change your life, is almost
ready! Before we provide it to you, we would like to offer you the
opportunity to choose the amount you consider reasonable to try AURA for 7
days and which you think is fair for the changes that will happen to you:
<br />
<br />
You will discover all the most intimate secrets that the stars have
prepared for you and solve relationship issues within just one month;
<br />
<br />
You will once and for all put the finishing touches on unresolved issues
and forget about problems that have been haunting you for years (if not
decades);
<br />
<br />
You will save hundreds of dollars on fake and unprofessional astrological
predictions and fortune tellers;
<br />
<br />
You will receive not only a personal analysis but also personalized daily
horoscopes, learn who and how is draining your energy, and get other
personalized readings.
<br />
<br />A 7-day trial period costs us $13.76, but please choose the amount
that suits you best:
</>
);
};

View File

@ -18,6 +18,7 @@ import { useNavigate } from "react-router-dom";
import Loader from "@/components/Loader";
import { useTranslations } from "@/hooks/translations";
import { useMetricABFlags } from "@/services/metric/metricService";
import { getLongText } from "./abText";
function TrialChoice() {
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
@ -25,9 +26,11 @@ function TrialChoice() {
const dispatch = useDispatch();
const { products, isLoading, currency, getText } = usePaywall({
placementKey: EPlacementKeys["aura.placement.palmistry.redesign"],
localesPlacement: ELocalesPlacement.V1,
localesPlacement: ELocalesPlacement.PalmistryV1,
});
const locale = getDefaultLocaleByLanguage(language);
const { flags } = useMetricABFlags();
const isLongText = flags?.text?.[0] === "on";
@ -58,51 +61,12 @@ function TrialChoice() {
{!isLoading && (
<>
<EmailSubstrate className={styles["email-substrate"]} email={email} />
{(getDefaultLocaleByLanguage(language) !== "en" || !isLongText) && (
{!isLongText && (
<Title className={styles.title} variant="h2">
{getText("text.0")}
</Title>
)}
{getDefaultLocaleByLanguage(language) === "en" && isLongText && (
<p className={styles.text}>
AURA is the only accurate app with reliable fate line analysis,
verified by professionals and guaranteed to provide precise
predictions.
<br />
<br />
AURA has already helped millions of people find happiness and
discover the whole truth about their relationships.
<br />
<br />
Your fate analysis, which will completely change your life, is
almost ready! Before we provide it to you, we would like to offer
you the opportunity to choose the amount you consider reasonable
to try AURA for 7 days and which you think is fair for the changes
that will happen to you:
<br />
<br />
You will discover all the most intimate secrets that the stars
have prepared for you and solve relationship issues within just
one month;
<br />
<br />
You will once and for all put the finishing touches on unresolved
issues and forget about problems that have been haunting you for
years (if not decades);
<br />
<br />
You will save hundreds of dollars on fake and unprofessional
astrological predictions and fortune tellers;
<br />
<br />
You will receive not only a personal analysis but also
personalized daily horoscopes, learn who and how is draining your
energy, and get other personalized readings.
<br />
<br />A 7-day trial period costs us $13.76, but please choose the
amount that suits you best:
</p>
)}
{isLongText && <p className={styles.text}>{getLongText(locale)}</p>}
<div className={styles["price-container"]}>
<PriceList

View File

@ -15,7 +15,7 @@ function AdditionalPurchasesSteps({
steps,
activeStep,
}: IAdditionalPurchasesStepsProps) {
const { translate } = useTranslations(ELocalesPlacement.V1);
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
const containerRef = useRef<HTMLDivElement>(null);
const titlesRef = useRef<Array<HTMLSpanElement | null>>([]);
const circleSize = 30;

View File

@ -4,7 +4,7 @@ import { ELocalesPlacement } from "@/locales";
import Title from "@/components/Title";
function Caution() {
const { translate } = useTranslations(ELocalesPlacement.V1);
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
return (
<div className={styles.container}>

View File

@ -11,7 +11,7 @@ interface IConsultationTableProps {
}
function ConsultationTable({ price }: IConsultationTableProps) {
const { translate } = useTranslations(ELocalesPlacement.V1);
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
const currency = useSelector(selectors.selectCurrency);
const _price = useMemo(() => {
return addCurrency((price / 100).toFixed(2), currency);
@ -20,12 +20,12 @@ function ConsultationTable({ price }: IConsultationTableProps) {
return (
<div className={styles.container}>
<Title variant="h2" className={styles.title}>
{translate("/add-consultation.your_unique_consultation")}
{translate("/add-consultant.your_unique_consultation")}
</Title>
<div className={styles["header"]}>
<div className={styles["text-container"]}>
<Title variant="h3" className={styles.title}>
{translate("/add-consultation.30-minute")}
{translate("/add-consultant.30-minute")}
</Title>
<p className={styles.text}>
{translate("/add-consultant.unlock_profound")}
@ -36,12 +36,12 @@ function ConsultationTable({ price }: IConsultationTableProps) {
<div className={styles.line} />
<div className={styles.footer}>
<span className={styles["one-time-price"]}>
{translate("/add-consultation.one_time_price_offer")}
{translate("/add-consultant.one_time_price_offer")}
</span>
<span className={styles["current-price"]}>{_price}</span>
<br />
<div className={styles["old-price-container"]}>
{translate("/add-consultation.original_price", {
{translate("/add-consultant.original_price", {
oldPrice: addCurrency(99.99, currency),
discount: <span className={styles.save}>Economisez 50</span>,
})}

View File

@ -0,0 +1,30 @@
import Title from "@/components/Title";
import styles from "./styles.module.css";
import { useTranslations } from "@/hooks/translations";
import { ELocalesPlacement } from "@/locales";
interface IThankYouBannerProps {
containerClassName?: string;
}
function ThankYouBanner({ containerClassName = "" }: IThankYouBannerProps) {
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
return (
<div className={`${styles.container} ${containerClassName}`}>
<img
className={styles.image}
src="/smiling-face-with-hearts.webp"
alt="Love"
/>
<div className={styles["text-container"]}>
<Title variant="h4" className={styles.title}>
{translate("thank_you")}
</Title>
<p className={styles.text}>{translate("order_successful")}</p>
</div>
</div>
);
}
export default ThankYouBanner;

View File

@ -0,0 +1,32 @@
.container {
width: 100%;
padding: 6px 20px;
background-color: #a5a3f3;
border-radius: 8px;
display: flex;
flex-direction: row;
align-items: center;
gap: 15px;
color: #fff;
height: min-content;
margin-top: 12px;
}
.image {
height: 34px;
aspect-ratio: 1 / 1;
}
.title {
text-align: left;
margin-bottom: 4px;
font-size: 14px;
font-weight: 700;
line-height: 135%;
}
.text {
font-size: 14px;
line-height: 20px;
font-weight: 400;
}

View File

@ -24,7 +24,7 @@ const returnUrl = `${window.location.protocol}//${
}${routes.client.addGuides()}`;
function AddConsultant() {
const { translate } = useTranslations(ELocalesPlacement.V1);
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
const navigate = useNavigate();
const api = useApi();
const { user: userFromStore } = useAuth();
@ -112,10 +112,10 @@ function AddConsultant() {
<>
<Caution />
<Title variant="h2" className={styles.title}>
{translate("/add-consultation.more_for_you")}
{translate("/add-consultant.more_for_you")}
</Title>
<div className={styles["exclusive-offer"]}>
{translate("/add-consultation.exclusive_offer")}
{translate("/add-consultant.exclusive_offer")}
</div>
<ConsultationTable price={currentProduct?.price || 0} />
{isError && <p className={styles.error}>{translate("went_wrong")}</p>}
@ -129,7 +129,7 @@ function AddConsultant() {
{isPendingProducts || isLoading ? (
<Loader color={LoaderColor.White} />
) : (
translate("/add-consultation.get_my_consultation")
translate("/add-consultant.get_my_consultation")
)}
</FooterButton>
</>

View File

@ -1,4 +1,3 @@
import ThankYouBanner from "@/components/pages/AdditionalPurchases/components/ThankYouBanner";
import styles from "./styles.module.scss";
import Title from "@/components/Title";
import { addCurrency, ELocalesPlacement } from "@/locales";
@ -17,12 +16,13 @@ import { Elements } from "@stripe/react-stripe-js";
import CheckoutForm from "@/components/PaymentPage/methods/CheckoutForm";
import { useSinglePayment } from "@/hooks/payment/useSinglePayment";
import { useTranslations } from "@/hooks/translations";
import ThankYouBanner from "../../components/ThankYouBanner";
const currentProductKey = "skip.trial.subscription.aura";
const returnUrl = `${window.location.host}${routes.client.addConsultant()}`;
function SkipTrial() {
const { translate } = useTranslations(ELocalesPlacement.V1);
const { translate } = useTranslations(ELocalesPlacement.PalmistryV1);
const navigate = useNavigate();
const api = useApi();
const { token, user } = useAuth();

View File

@ -1,16 +1,16 @@
.thank-you {
background-color: #aaddff;
padding: 16px 20px;
background-color: #aaddff !important;
padding: 16px 20px !important;
& > * {
color: #000;
font-size: 12px;
color: #000 !important;
font-size: 12px !important;
}
& h4,
& p {
font-size: 12px !important;
margin: 0;
margin: 0 !important;
}
}

View File

@ -2,7 +2,11 @@ import { useNavigate } from "react-router-dom";
import styles from "./styles.module.scss";
import routes from "@/routes";
function AlreadyHaveAccount() {
interface IAlreadyHaveAccountProps {
text?: string;
}
function AlreadyHaveAccount({ text }: IAlreadyHaveAccountProps) {
const navigate = useNavigate();
const navigateAuth = () => {
@ -10,7 +14,7 @@ function AlreadyHaveAccount() {
};
return (
<button className={styles["have-account"]} onClick={navigateAuth}>
Already have an account? Sign in
{text?.length ? text : "Already have an account? Sign in"}
</button>
);
}

View File

@ -5,6 +5,7 @@ import { actions, selectors } from "@/store";
import { useDispatch, useSelector } from "react-redux";
import { Outlet, useLocation } from "react-router-dom";
import { useCallback, useEffect, useRef, useState } from "react";
import { getDefaultLocaleByLanguage, language } from "@/locales";
export interface IOutletContext {
containerVideoRef: React.RefObject<HTMLDivElement>;
@ -21,6 +22,15 @@ function LayoutPersonalVideo() {
const showElementsTimer = useRef<NodeJS.Timeout>();
const containerVideoRef = useRef<HTMLDivElement>(null);
const locale = getDefaultLocaleByLanguage(language);
console.log(locale);
const videoUrl =
locale === "es"
? "/trial-choice-palmistry-es.mp4"
: "/trial-choice-palmistry.mp4";
const showElements = useCallback(() => {
showElementsTimer.current = setTimeout(() => {
setIsVisibleElements(true);
@ -37,7 +47,7 @@ function LayoutPersonalVideo() {
<>
<PersonalVideo
gender={gender}
url={"/trial-choice-palmistry.mp4"}
url={videoUrl}
classNameContainer={
location.pathname !== routes.client.palmistryV1TrialChoiceVideo()
? styles["personal-video"]