remove ru
This commit is contained in:
parent
edda5e476a
commit
daf559cfae
315
messages/de.json
315
messages/de.json
@ -37,6 +37,7 @@
|
|||||||
},
|
},
|
||||||
"Subscriptions": {
|
"Subscriptions": {
|
||||||
"title": "Manage my subscriptions",
|
"title": "Manage my subscriptions",
|
||||||
|
"success_cancel_message": "Your subscription has been cancelled successfully",
|
||||||
"modal": {
|
"modal": {
|
||||||
"title": "Are you sure you want to cancel your subscription?",
|
"title": "Are you sure you want to cancel your subscription?",
|
||||||
"description": "Are you sure you want to cancel your subscription?",
|
"description": "Are you sure you want to cancel your subscription?",
|
||||||
@ -54,7 +55,8 @@
|
|||||||
"subscription_status": "Subscription Status",
|
"subscription_status": "Subscription Status",
|
||||||
"subscription_status_value": {
|
"subscription_status_value": {
|
||||||
"ACTIVE": "Active",
|
"ACTIVE": "Active",
|
||||||
"CANCELLED": "Cancels on {date}"
|
"CANCELLED": "Cancels on {date}",
|
||||||
|
"PAST_DUE": "Past due"
|
||||||
},
|
},
|
||||||
"billing_period": "Billing Period",
|
"billing_period": "Billing Period",
|
||||||
"billing_period_value": {
|
"billing_period_value": {
|
||||||
@ -73,40 +75,41 @@
|
|||||||
"try_again": "Try again"
|
"try_again": "Try again"
|
||||||
},
|
},
|
||||||
"CancelSubscription": {
|
"CancelSubscription": {
|
||||||
"title": "Жаль, что вы уходите…",
|
"title": "Sad to see you go…",
|
||||||
"description": "Многие уходят именно в тот момент, когда астролог начинает видеть поворотную точку в их истории.<br></br><br></br>Позвольте задать пару вопросов, чтобы сделать наш сервис лучше - и, возможно, предложить решение, которое больше подходит именно вам.",
|
"description": "Many leave exactly at the moment when the astrologist begins to see a turning point in their history.<br></br><br></br>Allow us to ask a few questions to make our service better - and, possibly, offer a solution that is more suitable for you.",
|
||||||
"stay_button": "Остаться и уменьшить мой план на 50%",
|
"stay_button": "Stay and reduce my plan by 50%",
|
||||||
"cancel_button": "Отменить"
|
"cancel_button": "Cancel",
|
||||||
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"Stay50Done": {
|
"Stay50Done": {
|
||||||
"title": "Мы ценим твой выбор!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "План успешно изменен"
|
"1": "Plan successfully changed"
|
||||||
},
|
},
|
||||||
"button": "Готово"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"AppreciateChoice": {
|
"AppreciateChoice": {
|
||||||
"title": "Мы ценим твой выбор!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "Подбираем оптимальное решение...",
|
"1": "Selecting the optimal solution...",
|
||||||
"2": "Составляем персонализированный опрос...",
|
"2": "Creating a personalized survey...",
|
||||||
"3": "Формируем выгодное предложение..."
|
"3": "Forming a profitable offer..."
|
||||||
},
|
},
|
||||||
"button": "Next"
|
"button": "Next"
|
||||||
},
|
},
|
||||||
"WhatReason": {
|
"WhatReason": {
|
||||||
"title": "Что стало причиной?",
|
"title": "What became the reason?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"no_promised_result": "Не получил(а) обещанного результата",
|
"no_promised_result": "Did not receive the promised result",
|
||||||
"too_expensive": "Слишком дорого",
|
"too_expensive": "Too expensive",
|
||||||
"high_auto_payment": "Стоимость автоматической оплаты слишком высока",
|
"high_auto_payment": "The cost of automatic payment is too high",
|
||||||
"unexpected_fee": "Я не ожидал дополнительной платы",
|
"unexpected_fee": "I did not expect an additional charge",
|
||||||
"want_pause": "Хочу сделать паузу",
|
"want_pause": "I want to pause",
|
||||||
"service_not_as_expected": "Сервис оказался не таким, как ожидал(а)",
|
"service_not_as_expected": "The service was not as expected",
|
||||||
"found_alternative": "Нашёл(а) альтернативу",
|
"found_alternative": "Found an alternative",
|
||||||
"dislike_app": "Мне не понравилось приложение",
|
"dislike_app": "I did not like the app",
|
||||||
"hard_to_navigate": "В приложении сложно ориентироваться",
|
"hard_to_navigate": "It is difficult to navigate in the app",
|
||||||
"other": "Другое"
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Payment": {
|
"Payment": {
|
||||||
@ -120,57 +123,275 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SecondChance": {
|
"SecondChance": {
|
||||||
"title": "Дайте нам второй шанс и получи самый лучший план БЕСПЛАТНО",
|
"title": "Give us a second chance and get the best plan for free",
|
||||||
"offers": {
|
"offers": {
|
||||||
"1": {
|
"1": {
|
||||||
"title": "Бесплатный план на<br></br>1 месяц",
|
"title": "Free plan for 1 month",
|
||||||
"description": "Используй весь потенциал AURA и даже больше.",
|
"description": "Use the full potential of WITLAB and even more.",
|
||||||
"old-price": "1900",
|
"old-price": "1900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"title": "Бесплатный премиальный план",
|
"title": "Free premium plan",
|
||||||
"description": "Бесплатная 30 мин консультация с премиальным Эдвайзером",
|
"description": "Free 30 min consultation with a premium advisor",
|
||||||
"old-price": "4900",
|
"old-price": "4900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"get_offer": "Получить бесплатный план",
|
"get_offer": "Get free plan",
|
||||||
"cancel": "Отменить"
|
"cancel": "Cancel",
|
||||||
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"ChangeMind": {
|
"ChangeMind": {
|
||||||
"title": "Что может изменить твое мнение?",
|
"title": "What could change your mind?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"more_chat_time": "Больше времени в чатах",
|
"more_chat_time": "More time in chats",
|
||||||
"more_personal_reports": "Больше персонализированных отчетов",
|
"more_personal_reports": "More personalized reports",
|
||||||
"individual_plan": "Индивидуальный план",
|
"individual_plan": "Individual plan",
|
||||||
"other": "Другое"
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"StopFor30Days": {
|
"StopFor30Days": {
|
||||||
"title": "Остановите подписку на тридцать дней. Никаких списаний.",
|
"title": "Pause the subscription for 30 days. No charges.",
|
||||||
"stop": "Остановить",
|
"stop": "Pause",
|
||||||
"cancel": "Отменить"
|
"cancel": "Cancel",
|
||||||
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"CancellationOfSubscription": {
|
"CancellationOfSubscription": {
|
||||||
"title": "Подписка аннулируется!",
|
"title": "Subscription cancelled!",
|
||||||
"description": "Чтобы отменить подписку, нажмите “Подтвердить мои действия”",
|
"description": "To cancel the subscription, click “Confirm my actions”",
|
||||||
"offer": {
|
"offer": {
|
||||||
"title": "Бесплатный 2-месячный план",
|
"title": "Free 2-month plan",
|
||||||
"old-price": "9900",
|
"old-price": "9900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"offer_button": "Применить",
|
"offer_button": "Apply",
|
||||||
"cancel_button": "Я подтверждаю свои действия"
|
"cancel_button": "Confirm my actions",
|
||||||
|
"error_message": "Something went wrong. Please try again later.",
|
||||||
|
"toast_message": "Your subscription will be cancelled!"
|
||||||
},
|
},
|
||||||
"PlanCancelled": {
|
"PlanCancelled": {
|
||||||
"title": "Стандартный план Отменен!",
|
"title": "Standard plan cancelled!",
|
||||||
"icon": "🥳",
|
"icon": "🥳",
|
||||||
"description": "Выполнен переход на бесплатный тридцатидневный план ",
|
"description": "Completed transition to a free 30-day plan",
|
||||||
"button": "Готово"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"SubscriptionStopped": {
|
"SubscriptionStopped": {
|
||||||
"title": "Подписка остановлена успешно!",
|
"title": "Subscription stopped successfully!",
|
||||||
"icon": "🎉"
|
"icon": "🎉"
|
||||||
|
},
|
||||||
|
"DatePicker": {
|
||||||
|
"year": "YYYY",
|
||||||
|
"month": "MM",
|
||||||
|
"day": "DD"
|
||||||
|
},
|
||||||
|
"TimePicker": {
|
||||||
|
"hour": "HH",
|
||||||
|
"minute": "MM",
|
||||||
|
"period": "AM/PM"
|
||||||
|
},
|
||||||
|
"Compatibility": {
|
||||||
|
"title": "Your Personality Type",
|
||||||
|
"description": "Please input your data to create the report.",
|
||||||
|
"button": "Continue",
|
||||||
|
"error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"CompatibilityResult": {
|
||||||
|
"title": "Your Personality Type",
|
||||||
|
"error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"PalmistryResult": {
|
||||||
|
"title": "Your Personality Type",
|
||||||
|
"error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"Meditation": {
|
||||||
|
"title": "Stop and breathe to help you relax and focus on what really matters.",
|
||||||
|
"subtitle": "Breathing practice will help improve your aura. Breath in the positive energy, breathe out the negative...",
|
||||||
|
"button": "BEGIN"
|
||||||
|
},
|
||||||
|
"MeditationResult": {
|
||||||
|
"breath_relax": "Breath & Relax",
|
||||||
|
"breath_in": "Breath in",
|
||||||
|
"breath_out": "Breath out"
|
||||||
|
},
|
||||||
|
"ActionFieldsForm": {
|
||||||
|
"required_field": "This field is required"
|
||||||
|
},
|
||||||
|
"AdditionalPurchases": {
|
||||||
|
"caution": {
|
||||||
|
"title": "Caution!",
|
||||||
|
"description": "To prevent double charges please don`t close the page and don`t go back."
|
||||||
|
},
|
||||||
|
"add-consultant": {
|
||||||
|
"title": "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",
|
||||||
|
"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.",
|
||||||
|
"one_time_price_offer": "One time price offer: <price></price>",
|
||||||
|
"choose_from": "Choose from 80+ experts astrologers.",
|
||||||
|
"original_price": "Original price: {oldPrice} ",
|
||||||
|
"save": "Save {discount}%",
|
||||||
|
"get_my_consultation": "Get my consultation",
|
||||||
|
"skip_this_offer": "Skip this offer",
|
||||||
|
"payment_error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"add-guides": {
|
||||||
|
"title": "Choose your sign-up offer 🔥",
|
||||||
|
"subtitle": "Available only now",
|
||||||
|
"description": "*You will be charged for the add-on services or offers selected at the time of purchase. This is a non-recuring payment.",
|
||||||
|
"button": "Get my copy",
|
||||||
|
"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",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"subtitle": "(3 in 1 + 2 secret bonus reading)",
|
||||||
|
"price": "<price></price> ( regular price <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "star_struck.webp"
|
||||||
|
},
|
||||||
|
"main_numerology_analysis": {
|
||||||
|
"title": "NUMEROLOGY ANALYSIS",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "input_numbers.webp"
|
||||||
|
},
|
||||||
|
"main_tarot_reading": {
|
||||||
|
"title": "TAROT READING",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "sunset.webp"
|
||||||
|
},
|
||||||
|
"main_palmistry_guide": {
|
||||||
|
"title": "PALMISTRY GUIDE",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "rised_hand.webp"
|
||||||
|
},
|
||||||
|
"main_money_reading": {
|
||||||
|
"title": "MONEY READING",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "money.png"
|
||||||
|
},
|
||||||
|
"main_skip_offer": {
|
||||||
|
"title": "SKIP OFFER",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"subtitle": "You are missing out on both readings",
|
||||||
|
"emoji": "rised_hand.webp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Chat": {
|
||||||
|
"header": {
|
||||||
|
"title": "Chat",
|
||||||
|
"search_placeholder": "Type a Chat..."
|
||||||
|
},
|
||||||
|
"new_messages": "New messages",
|
||||||
|
"view_all": "View All ({count})",
|
||||||
|
"hide_all": "Hide",
|
||||||
|
"typing": "is typing...",
|
||||||
|
"voice_message": "Voice message",
|
||||||
|
"photo": "Photo",
|
||||||
|
"correspondence_started": {
|
||||||
|
"title": "Correspondence started",
|
||||||
|
"pinned_chats": "Pinned Chats"
|
||||||
|
},
|
||||||
|
"message_input_placeholder": "Type a message...",
|
||||||
|
"message_image_fallback": "Failed to load image",
|
||||||
|
"payment_error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"RefillTimerModal": {
|
||||||
|
"title": "Refill credits in 1 click",
|
||||||
|
"subtitle": "<oldCredits></oldCredits> {newCredits} credits for {price}",
|
||||||
|
"button": "Get Credits",
|
||||||
|
"dont_want_to_continue": "I don't want to continue chatting",
|
||||||
|
"auto_refill_description": "Auto-refill keeps your readings uninterrupted. After using {afterCredits} credits, we'll automatically add {addCredits} more credits ({minutes} minutes of consultation) for a one-time payment. No recurring charges.",
|
||||||
|
"seconds": "seconds"
|
||||||
|
},
|
||||||
|
"RefillOptionsModal": {
|
||||||
|
"header": {
|
||||||
|
"title": "{name} is waiting!",
|
||||||
|
"subtitle": "{name} is waiting for you in our chat..."
|
||||||
|
},
|
||||||
|
"button": "Continue",
|
||||||
|
"refill_option": {
|
||||||
|
"popular": "POPULAR",
|
||||||
|
"credits": "{credits} credits",
|
||||||
|
"bonus": "+<bonus></bonus><br></br>credits",
|
||||||
|
"price": "{price}"
|
||||||
|
},
|
||||||
|
"benefits": {
|
||||||
|
"1": {
|
||||||
|
"title": "Instant Access",
|
||||||
|
"description": "Continue chatting immediately"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Secure Payment",
|
||||||
|
"description": "256-bit SSL encryption"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Cancel Anytime",
|
||||||
|
"description": "No long-term commitment"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Best Value",
|
||||||
|
"description": "Most credits per dollar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"EmailMarketing": {
|
||||||
|
"Compatibility": {
|
||||||
|
"v1": {
|
||||||
|
"Landing": {
|
||||||
|
"title": "Special Offer!",
|
||||||
|
"description": "Everything for free. Trial include!",
|
||||||
|
"title-hey": "Hey, Sun 👋",
|
||||||
|
"description-hey": "Your wellness and happiness are key for us!",
|
||||||
|
"personalized-plan-title": "So we decided to give you your personalized plan and access to the trial of our app",
|
||||||
|
"personalized-plan-free": "FOR FREE!",
|
||||||
|
"title-highlights": "Highlights of your plan:",
|
||||||
|
"personal-astrologer-advice": "1:1 Advice from your personal astrologer",
|
||||||
|
"finding-compatible-partner": "Finding the most compatible partner",
|
||||||
|
"relationship-patterns-insights": "Insights into your relationship patterns, and emotional and sexual needs",
|
||||||
|
"better-understanding-yourself": "Better understanding of yourself and your needs",
|
||||||
|
"old-price-label": "OLD PRICE",
|
||||||
|
"new-price-label": "NEW PRICE",
|
||||||
|
"plan-includes-title": "Your plan also includes:",
|
||||||
|
"plan-includes-unlimited-horoscopes": "Unlimited daily / weekly / monthly / yearly horoscopes",
|
||||||
|
"plan-includes-astrology-lessons": "Astrology lessons and articles inside the app",
|
||||||
|
"plan-includes-lifestyle-calendars": "Beauty / health / travel and more calendars",
|
||||||
|
"plan-includes-compatibility-check": "Compatibility check with zodiac signs inside the app",
|
||||||
|
"review-1": "Horoscope tells realistic facts about day to day life, which can be easily relatable. It shows direction.",
|
||||||
|
"review-2": "It makes me feel safe, seeing, warm and smart.",
|
||||||
|
"review-3": "I love that we have the \"my profile\" option. I love learning about myself.",
|
||||||
|
"circular-text-image": "circular-text-en.png",
|
||||||
|
"statistics-banner-text": "Last week alone <count></count> got this relationship guide",
|
||||||
|
"statistics-banner-count": "{count}+ people",
|
||||||
|
"money-back-guarantee-title": "Money-back guarantee",
|
||||||
|
"money-back-guarantee-text": "We are convinced that we will help you get a deeper understanding of your partner and how you can improve your relationship. After all of our stellar customer reviews, we are ready to return your money if you feel that this report doesn't provide any value. Find more about applicable limitations in our Money-back policy.",
|
||||||
|
"guaranteed-security-payments": "Guaranteed security payments",
|
||||||
|
"button-continue": "Continue",
|
||||||
|
"old-price": "up to {oldPrice}"
|
||||||
|
},
|
||||||
|
"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 2 weeks until you cancel in settings. Learn more about cancellation and refund policy in Subscription terms",
|
||||||
|
"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 {totalToday} for your {trialDuration}-day trial. Subscription renews automatically until cancelled. You can cancel at any time before the end of the trial.",
|
||||||
|
"reserved-for": "Reserved for {time}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
100
messages/en.json
100
messages/en.json
@ -75,41 +75,41 @@
|
|||||||
"try_again": "Try again"
|
"try_again": "Try again"
|
||||||
},
|
},
|
||||||
"CancelSubscription": {
|
"CancelSubscription": {
|
||||||
"title": "Жаль, что вы уходите…",
|
"title": "Sad to see you go…",
|
||||||
"description": "Многие уходят именно в тот момент, когда астролог начинает видеть поворотную точку в их истории.<br></br><br></br>Позвольте задать пару вопросов, чтобы сделать наш сервис лучше - и, возможно, предложить решение, которое больше подходит именно вам.",
|
"description": "Many leave exactly at the moment when the astrologist begins to see a turning point in their history.<br></br><br></br>Allow us to ask a few questions to make our service better - and, possibly, offer a solution that is more suitable for you.",
|
||||||
"stay_button": "Остаться и уменьшить мой план на 50%",
|
"stay_button": "Stay and reduce my plan by 50%",
|
||||||
"cancel_button": "Отменить",
|
"cancel_button": "Cancel",
|
||||||
"error_message": "Something went wrong. Please try again later."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"Stay50Done": {
|
"Stay50Done": {
|
||||||
"title": "Мы ценим твой выбор!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "План успешно изменен"
|
"1": "Plan successfully changed"
|
||||||
},
|
},
|
||||||
"button": "Готово"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"AppreciateChoice": {
|
"AppreciateChoice": {
|
||||||
"title": "Мы ценим твой выбор!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "Подбираем оптимальное решение...",
|
"1": "Selecting the optimal solution...",
|
||||||
"2": "Составляем персонализированный опрос...",
|
"2": "Creating a personalized survey...",
|
||||||
"3": "Формируем выгодное предложение..."
|
"3": "Forming a profitable offer..."
|
||||||
},
|
},
|
||||||
"button": "Next"
|
"button": "Next"
|
||||||
},
|
},
|
||||||
"WhatReason": {
|
"WhatReason": {
|
||||||
"title": "Что стало причиной?",
|
"title": "What became the reason?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"no_promised_result": "Не получил(а) обещанного результата",
|
"no_promised_result": "Did not receive the promised result",
|
||||||
"too_expensive": "Слишком дорого",
|
"too_expensive": "Too expensive",
|
||||||
"high_auto_payment": "Стоимость автоматической оплаты слишком высока",
|
"high_auto_payment": "The cost of automatic payment is too high",
|
||||||
"unexpected_fee": "Я не ожидал дополнительной платы",
|
"unexpected_fee": "I did not expect an additional charge",
|
||||||
"want_pause": "Хочу сделать паузу",
|
"want_pause": "I want to pause",
|
||||||
"service_not_as_expected": "Сервис оказался не таким, как ожидал(а)",
|
"service_not_as_expected": "The service was not as expected",
|
||||||
"found_alternative": "Нашёл(а) альтернативу",
|
"found_alternative": "Found an alternative",
|
||||||
"dislike_app": "Мне не понравилось приложение",
|
"dislike_app": "I did not like the app",
|
||||||
"hard_to_navigate": "В приложении сложно ориентироваться",
|
"hard_to_navigate": "It is difficult to navigate in the app",
|
||||||
"other": "Другое"
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Payment": {
|
"Payment": {
|
||||||
@ -123,61 +123,61 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SecondChance": {
|
"SecondChance": {
|
||||||
"title": "Дайте нам второй шанс и получи самый лучший план БЕСПЛАТНО",
|
"title": "Give us a second chance and get the best plan for free",
|
||||||
"offers": {
|
"offers": {
|
||||||
"1": {
|
"1": {
|
||||||
"title": "Бесплатный план на<br></br>1 месяц",
|
"title": "Free plan for 1 month",
|
||||||
"description": "Используй весь потенциал AURA и даже больше.",
|
"description": "Use the full potential of WITLAB and even more.",
|
||||||
"old-price": "1900",
|
"old-price": "1900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"title": "Бесплатный премиальный план",
|
"title": "Free premium plan",
|
||||||
"description": "Бесплатная 30 мин консультация с премиальным Эдвайзером",
|
"description": "Free 30 min consultation with a premium advisor",
|
||||||
"old-price": "4900",
|
"old-price": "4900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"get_offer": "Получить бесплатный план",
|
"get_offer": "Get free plan",
|
||||||
"cancel": "Отменить",
|
"cancel": "Cancel",
|
||||||
"error_message": "Something went wrong. Please try again later."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"ChangeMind": {
|
"ChangeMind": {
|
||||||
"title": "Что может изменить твое мнение?",
|
"title": "What could change your mind?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"more_chat_time": "Больше времени в чатах",
|
"more_chat_time": "More time in chats",
|
||||||
"more_personal_reports": "Больше персонализированных отчетов",
|
"more_personal_reports": "More personalized reports",
|
||||||
"individual_plan": "Индивидуальный план",
|
"individual_plan": "Individual plan",
|
||||||
"other": "Другое"
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"StopFor30Days": {
|
"StopFor30Days": {
|
||||||
"title": "Остановите подписку на тридцать дней. Никаких списаний.",
|
"title": "Pause the subscription for 30 days. No charges.",
|
||||||
"stop": "Остановить",
|
"stop": "Pause",
|
||||||
"cancel": "Отменить",
|
"cancel": "Cancel",
|
||||||
"error_message": "Something went wrong. Please try again later."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"CancellationOfSubscription": {
|
"CancellationOfSubscription": {
|
||||||
"title": "Подписка аннулируется!",
|
"title": "Subscription cancelled!",
|
||||||
"description": "Чтобы отменить подписку, нажмите “Подтвердить мои действия”",
|
"description": "To cancel the subscription, click “Confirm my actions”",
|
||||||
"offer": {
|
"offer": {
|
||||||
"title": "Бесплатный 2-месячный план",
|
"title": "Free 2-month plan",
|
||||||
"old-price": "9900",
|
"old-price": "9900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"offer_button": "Применить",
|
"offer_button": "Apply",
|
||||||
"cancel_button": "Я подтверждаю свои действия",
|
"cancel_button": "Confirm my actions",
|
||||||
"error_message": "Something went wrong. Please try again later.",
|
"error_message": "Something went wrong. Please try again later.",
|
||||||
"toast_message": "Your subscription will be cancelled!"
|
"toast_message": "Your subscription will be cancelled!"
|
||||||
},
|
},
|
||||||
"PlanCancelled": {
|
"PlanCancelled": {
|
||||||
"title": "Стандартный план Отменен!",
|
"title": "Standard plan cancelled!",
|
||||||
"icon": "🥳",
|
"icon": "🥳",
|
||||||
"description": "Выполнен переход на бесплатный тридцатидневный план ",
|
"description": "Completed transition to a free 30-day plan",
|
||||||
"button": "Готово"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"SubscriptionStopped": {
|
"SubscriptionStopped": {
|
||||||
"title": "Подписка остановлена успешно!",
|
"title": "Subscription stopped successfully!",
|
||||||
"icon": "🎉"
|
"icon": "🎉"
|
||||||
},
|
},
|
||||||
"DatePicker": {
|
"DatePicker": {
|
||||||
@ -231,7 +231,7 @@
|
|||||||
"one_time_price_offer": "One time price offer: <price></price>",
|
"one_time_price_offer": "One time price offer: <price></price>",
|
||||||
"choose_from": "Choose from 80+ experts astrologers.",
|
"choose_from": "Choose from 80+ experts astrologers.",
|
||||||
"original_price": "Original price: {oldPrice} ",
|
"original_price": "Original price: {oldPrice} ",
|
||||||
"save": "Economisez {discount}%",
|
"save": "Save {discount}%",
|
||||||
"get_my_consultation": "Get my consultation",
|
"get_my_consultation": "Get my consultation",
|
||||||
"skip_this_offer": "Skip this offer",
|
"skip_this_offer": "Skip this offer",
|
||||||
"payment_error": "Something went wrong. Please try again later."
|
"payment_error": "Something went wrong. Please try again later."
|
||||||
@ -292,14 +292,14 @@
|
|||||||
"title": "Chat",
|
"title": "Chat",
|
||||||
"search_placeholder": "Type a Chat..."
|
"search_placeholder": "Type a Chat..."
|
||||||
},
|
},
|
||||||
"new_messages": "Новые сообщения",
|
"new_messages": "New messages",
|
||||||
"view_all": "View All ({count})",
|
"view_all": "View All ({count})",
|
||||||
"hide_all": "Hide",
|
"hide_all": "Hide",
|
||||||
"typing": "is typing...",
|
"typing": "is typing...",
|
||||||
"voice_message": "Voice message",
|
"voice_message": "Voice message",
|
||||||
"photo": "Photo",
|
"photo": "Photo",
|
||||||
"correspondence_started": {
|
"correspondence_started": {
|
||||||
"title": "Начата переписка",
|
"title": "Correspondence started",
|
||||||
"pinned_chats": "Pinned Chats"
|
"pinned_chats": "Pinned Chats"
|
||||||
},
|
},
|
||||||
"message_input_placeholder": "Type a message...",
|
"message_input_placeholder": "Type a message...",
|
||||||
@ -317,7 +317,7 @@
|
|||||||
"RefillOptionsModal": {
|
"RefillOptionsModal": {
|
||||||
"header": {
|
"header": {
|
||||||
"title": "{name} is waiting!",
|
"title": "{name} is waiting!",
|
||||||
"subtitle": "{name} я жду тебя в нашем чате..."
|
"subtitle": "{name} is waiting for you in our chat..."
|
||||||
},
|
},
|
||||||
"button": "Continue",
|
"button": "Continue",
|
||||||
"refill_option": {
|
"refill_option": {
|
||||||
|
|||||||
416
messages/es.json
416
messages/es.json
@ -1,184 +1,187 @@
|
|||||||
{
|
{
|
||||||
"HomePage": {
|
"HomePage": {
|
||||||
"title": "¡Hola mundo!",
|
"title": "Hello world!",
|
||||||
"about": "Ir a la página acerca de"
|
"about": "Go to the about page"
|
||||||
},
|
},
|
||||||
"Profile": {
|
"Profile": {
|
||||||
"profile_information": {
|
"profile_information": {
|
||||||
"title": "Información del Perfil",
|
"title": "Profile Information",
|
||||||
"description": "Para actualizar tu dirección de correo electrónico, por favor contacta al soporte.",
|
"description": "To update your email address please contact support.",
|
||||||
"email_placeholder": "Correo electrónico",
|
"email_placeholder": "Email",
|
||||||
"name_placeholder": "Nombre"
|
"name_placeholder": "Name"
|
||||||
},
|
},
|
||||||
"billing": {
|
"billing": {
|
||||||
"title": "Facturación",
|
"title": "Billing",
|
||||||
"description": "Para acceder a la información de tu suscripción, por favor inicia sesión en tu cuenta de facturación.",
|
"description": "To access your subscription information, please log into your billing account.",
|
||||||
"subscription_type": "Tipo de Suscripción:",
|
"subscription_type": "Subscription Type:",
|
||||||
"billing_button": "Facturación",
|
"billing_button": "Billing",
|
||||||
"credits": {
|
"credits": {
|
||||||
"title": "Te quedan {credits} créditos",
|
"title": "You have {credits} credits left",
|
||||||
"description": "Puedes usarlos para chatear con cualquier Experto en la plataforma."
|
"description": "You can use them to chat with any Expert on the platform."
|
||||||
},
|
},
|
||||||
"any_questions": "¿Alguna pregunta? <link>{linkText}</link>",
|
"any_questions": "Any questions? <link>{linkText}</link>",
|
||||||
"any_questions_link": "Contáctanos",
|
"any_questions_link": "Contact us",
|
||||||
"subscription_update": "<bold>{subscriptionUpdateBold}</bold><br></br>Si acabas de comprar o cambiar de plan, el estado de tu suscripción cambiará en unas horas.",
|
"subscription_update": "<bold>{subscriptionUpdateBold}</bold><br></br>If you've just purchased or changed plan, your subscription status will change in a few hours.",
|
||||||
"subscription_update_bold": "La información de la suscripción se actualiza cada pocas horas."
|
"subscription_update_bold": "Subscription information is updated every few hours."
|
||||||
},
|
},
|
||||||
"log_out": {
|
"log_out": {
|
||||||
"title": "Cerrar sesión",
|
"title": "Log out",
|
||||||
"log_out_button": "Cerrar sesión",
|
"log_out_button": "Log out",
|
||||||
"modal": {
|
"modal": {
|
||||||
"title": "¿Estás seguro de que quieres cerrar sesión?",
|
"title": "Are you sure you want to log out?",
|
||||||
"description": "¿Estás seguro de que quieres cerrar sesión?",
|
"description": "Are you sure you want to log out?",
|
||||||
"stay_button": "Quedarse",
|
"stay_button": "Stay",
|
||||||
"log_out_button": "Cerrar sesión"
|
"log_out_button": "Log out"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Subscriptions": {
|
"Subscriptions": {
|
||||||
"title": "Gestionar mis suscripciones",
|
"title": "Manage my subscriptions",
|
||||||
"success_cancel_message": "Tu suscripción ha sido cancelada exitosamente",
|
"success_cancel_message": "Your subscription has been cancelled successfully",
|
||||||
"modal": {
|
"modal": {
|
||||||
"title": "¿Estás seguro de que quieres cancelar tu suscripción?",
|
"title": "Are you sure you want to cancel your subscription?",
|
||||||
"description": "¿Estás seguro de que quieres cancelar tu suscripción?",
|
"description": "Are you sure you want to cancel your subscription?",
|
||||||
"cancel_button": "Cancelar suscripción",
|
"cancel_button": "Cancel subscription",
|
||||||
"stay_button": "Quedarse"
|
"stay_button": "Stay"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"subscription_type": "Tipo de Suscripción",
|
"subscription_type": "Subscription Type",
|
||||||
"subscription_type_value": {
|
"subscription_type_value": {
|
||||||
"DAY": "Suscripción Diaria",
|
"DAY": "Daily Subscription",
|
||||||
"WEEK": "Suscripción Semanal",
|
"WEEK": "Weekly Subscription",
|
||||||
"MONTH": "Suscripción Mensual",
|
"MONTH": "Monthly Subscription",
|
||||||
"YEAR": "Suscripción Anual"
|
"YEAR": "Yearly Subscription"
|
||||||
},
|
},
|
||||||
"subscription_status": "Estado de la Suscripción",
|
"subscription_status": "Subscription Status",
|
||||||
"subscription_status_value": {
|
"subscription_status_value": {
|
||||||
"ACTIVE": "Activa",
|
"ACTIVE": "Active",
|
||||||
"CANCELLED": "Se cancela el {date}",
|
"CANCELLED": "Cancels on {date}",
|
||||||
"PAST_DUE": "Vencida"
|
"PAST_DUE": "Past due"
|
||||||
},
|
},
|
||||||
"billing_period": "Período de Facturación",
|
"billing_period": "Billing Period",
|
||||||
"billing_period_value": {
|
"billing_period_value": {
|
||||||
"DAY": "Día",
|
"DAY": "Day",
|
||||||
"WEEK": "Semana",
|
"WEEK": "Week",
|
||||||
"MONTH": "Mes",
|
"MONTH": "Month",
|
||||||
"YEAR": "Año"
|
"YEAR": "Year"
|
||||||
},
|
},
|
||||||
"last_payment_on": "Último Pago el",
|
"last_payment_on": "Last Payment On",
|
||||||
"renewal_date": "Fecha de Renovación",
|
"renewal_date": "Renewal Date",
|
||||||
"renewal_amount": "Monto de Renovación",
|
"renewal_amount": "Renewal Amount",
|
||||||
"cancel_subscription": "Cancelar Suscripción"
|
"cancel_subscription": "Cancel Subscription"
|
||||||
},
|
},
|
||||||
"no_subscriptions": "No tienes ninguna suscripción",
|
"no_subscriptions": "You don't have any subscriptions",
|
||||||
"error": "Algo salió mal. Por favor, inténtalo de nuevo más tarde.",
|
"error": "Something went wrong. Please try again later.",
|
||||||
"try_again": "Intentar de nuevo"
|
"try_again": "Try again"
|
||||||
},
|
},
|
||||||
"CancelSubscription": {
|
"CancelSubscription": {
|
||||||
"title": "Lamentamos que te vayas…",
|
"title": "Sad to see you go…",
|
||||||
"description": "Muchos se van justo en el momento en que el astrólogo comienza a ver el punto de inflexión en su historia.<br></br><br></br>Permítenos hacer un par de preguntas para mejorar nuestro servicio - y tal vez ofrecer una solución que se adapte mejor a ti.",
|
"description": "Many leave exactly at the moment when the astrologist begins to see a turning point in their history.<br></br><br></br>Allow us to ask a few questions to make our service better - and, possibly, offer a solution that is more suitable for you.",
|
||||||
"stay_button": "Quedarse y reducir mi plan en 50%",
|
"stay_button": "Stay and reduce my plan by 50%",
|
||||||
"cancel_button": "Cancelar",
|
"cancel_button": "Cancel",
|
||||||
"error_message": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"Stay50Done": {
|
"Stay50Done": {
|
||||||
"title": "¡Valoramos tu elección!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "Plan cambiado exitosamente"
|
"1": "Plan successfully changed"
|
||||||
},
|
},
|
||||||
"button": "Listo"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"AppreciateChoice": {
|
"AppreciateChoice": {
|
||||||
"title": "¡Valoramos tu elección!",
|
"title": "We value your choice!",
|
||||||
"descriptions": {
|
"descriptions": {
|
||||||
"1": "Seleccionando la solución óptima...",
|
"1": "Selecting the optimal solution...",
|
||||||
"2": "Creando encuesta personalizada...",
|
"2": "Creating a personalized survey...",
|
||||||
"3": "Formando oferta ventajosa..."
|
"3": "Forming a profitable offer..."
|
||||||
},
|
},
|
||||||
"button": "Siguiente"
|
"button": "Next"
|
||||||
},
|
},
|
||||||
"WhatReason": {
|
"WhatReason": {
|
||||||
"title": "¿Cuál fue la razón?",
|
"title": "What became the reason?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"no_promised_result": "No obtuve el resultado prometido",
|
"no_promised_result": "Did not receive the promised result",
|
||||||
"too_expensive": "Muy caro",
|
"too_expensive": "Too expensive",
|
||||||
"no_time": "No tengo tiempo",
|
"high_auto_payment": "The cost of automatic payment is too high",
|
||||||
"technical_issues": "Problemas técnicos",
|
"unexpected_fee": "I did not expect an additional charge",
|
||||||
"dislike_app": "No me gustó la aplicación",
|
"want_pause": "I want to pause",
|
||||||
"hard_to_navigate": "Es difícil navegar en la aplicación",
|
"service_not_as_expected": "The service was not as expected",
|
||||||
"other": "Otro"
|
"found_alternative": "Found an alternative",
|
||||||
|
"dislike_app": "I did not like the app",
|
||||||
|
"hard_to_navigate": "It is difficult to navigate in the app",
|
||||||
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Payment": {
|
"Payment": {
|
||||||
"Success": {
|
"Success": {
|
||||||
"title": "Pago exitoso",
|
"title": "Payment successful",
|
||||||
"button": "Listo"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"Error": {
|
"Error": {
|
||||||
"title": "Pago fallido",
|
"title": "Payment failed",
|
||||||
"button": "Intentar de nuevo"
|
"button": "Try again"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SecondChance": {
|
"SecondChance": {
|
||||||
"title": "Danos una segunda oportunidad y obtén el mejor plan GRATIS",
|
"title": "Give us a second chance and get the best plan for free",
|
||||||
"offers": {
|
"offers": {
|
||||||
"1": {
|
"1": {
|
||||||
"title": "Plan gratuito por<br></br>1 mes",
|
"title": "Free plan for 1 month",
|
||||||
"description": "Usa todo el potencial de AURA y aún más.",
|
"description": "Use the full potential of WITLAB and even more.",
|
||||||
"old-price": "1900",
|
"old-price": "1900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"title": "Plan premium gratuito",
|
"title": "Free premium plan",
|
||||||
"description": "Consulta gratuita de 30 min con un Asesor premium",
|
"description": "Free 30 min consultation with a premium advisor",
|
||||||
"old-price": "4900",
|
"old-price": "4900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"get_offer": "Obtener plan gratuito",
|
"get_offer": "Get free plan",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancel",
|
||||||
"error_message": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"ChangeMind": {
|
"ChangeMind": {
|
||||||
"title": "¿Qué podría cambiar tu opinión?",
|
"title": "What could change your mind?",
|
||||||
"answers": {
|
"answers": {
|
||||||
"more_chat_time": "Más tiempo de chat",
|
"more_chat_time": "More time in chats",
|
||||||
"more_personal_reports": "Más reportes personalizados",
|
"more_personal_reports": "More personalized reports",
|
||||||
"individual_plan": "Plan individual",
|
"individual_plan": "Individual plan",
|
||||||
"other": "Otro"
|
"other": "Other"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"StopFor30Days": {
|
"StopFor30Days": {
|
||||||
"title": "Pausa la suscripción por treinta días. Sin cargos.",
|
"title": "Pause the subscription for 30 days. No charges.",
|
||||||
"stop": "Pausar",
|
"stop": "Pause",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancel",
|
||||||
"error_message": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error_message": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"CancellationOfSubscription": {
|
"CancellationOfSubscription": {
|
||||||
"title": "¡La suscripción será cancelada!",
|
"title": "Subscription cancelled!",
|
||||||
"description": "Para cancelar la suscripción, presiona \"Confirmo mis acciones\"",
|
"description": "To cancel the subscription, click “Confirm my actions”",
|
||||||
"offer": {
|
"offer": {
|
||||||
"title": "Plan gratuito de 2 meses",
|
"title": "Free 2-month plan",
|
||||||
"old-price": "9900",
|
"old-price": "9900",
|
||||||
"new-price": "0"
|
"new-price": "0"
|
||||||
},
|
},
|
||||||
"offer_button": "Aplicar",
|
"offer_button": "Apply",
|
||||||
"cancel_button": "Confirmo mis acciones",
|
"cancel_button": "Confirm my actions",
|
||||||
"error_message": "Algo salió mal. Por favor, inténtalo de nuevo más tarde.",
|
"error_message": "Something went wrong. Please try again later.",
|
||||||
"toast_message": "¡Tu suscripción será cancelada!"
|
"toast_message": "Your subscription will be cancelled!"
|
||||||
},
|
},
|
||||||
"PlanCancelled": {
|
"PlanCancelled": {
|
||||||
"title": "¡Plan Estándar Cancelado!",
|
"title": "Standard plan cancelled!",
|
||||||
"icon": "🥳",
|
"icon": "🥳",
|
||||||
"description": "Transición completada al plan gratuito de treinta días",
|
"description": "Completed transition to a free 30-day plan",
|
||||||
"button": "Listo"
|
"button": "Done"
|
||||||
},
|
},
|
||||||
"SubscriptionStopped": {
|
"SubscriptionStopped": {
|
||||||
"title": "¡Suscripción pausada exitosamente!",
|
"title": "Subscription stopped successfully!",
|
||||||
"icon": "🎉"
|
"icon": "🎉"
|
||||||
},
|
},
|
||||||
"DatePicker": {
|
"DatePicker": {
|
||||||
"year": "AAAA",
|
"year": "YYYY",
|
||||||
"month": "MM",
|
"month": "MM",
|
||||||
"day": "DD"
|
"day": "DD"
|
||||||
},
|
},
|
||||||
@ -188,30 +191,207 @@
|
|||||||
"period": "AM/PM"
|
"period": "AM/PM"
|
||||||
},
|
},
|
||||||
"Compatibility": {
|
"Compatibility": {
|
||||||
"title": "Tu Tipo de Personalidad",
|
"title": "Your Personality Type",
|
||||||
"description": "Por favor ingresa tus datos para crear el reporte.",
|
"description": "Please input your data to create the report.",
|
||||||
"button": "Continuar",
|
"button": "Continue",
|
||||||
"error": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"CompatibilityResult": {
|
"CompatibilityResult": {
|
||||||
"title": "Tu Tipo de Personalidad",
|
"title": "Your Personality Type",
|
||||||
"error": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"PalmistryResult": {
|
"PalmistryResult": {
|
||||||
"title": "Tu Tipo de Personalidad",
|
"title": "Your Personality Type",
|
||||||
"error": "Algo salió mal. Por favor, inténtalo de nuevo más tarde."
|
"error": "Something went wrong. Please try again later."
|
||||||
},
|
},
|
||||||
"Meditation": {
|
"Meditation": {
|
||||||
"title": "Para y respira para ayudarte a relajar y enfocarte en lo que realmente importa.",
|
"title": "Stop and breathe to help you relax and focus on what really matters.",
|
||||||
"subtitle": "La práctica de respiración ayudará a mejorar tu aura. Inhala la energía positiva, exhala la negativa...",
|
"subtitle": "Breathing practice will help improve your aura. Breath in the positive energy, breathe out the negative...",
|
||||||
"button": "COMENZAR"
|
"button": "BEGIN"
|
||||||
},
|
},
|
||||||
"MeditationResult": {
|
"MeditationResult": {
|
||||||
"breath_relax": "Respira y Relájate",
|
"breath_relax": "Breath & Relax",
|
||||||
"breath_in": "Inhalar",
|
"breath_in": "Breath in",
|
||||||
"breath_out": "Exhalar"
|
"breath_out": "Breath out"
|
||||||
},
|
},
|
||||||
"ActionFieldsForm": {
|
"ActionFieldsForm": {
|
||||||
"required_field": "Este campo es obligatorio"
|
"required_field": "This field is required"
|
||||||
|
},
|
||||||
|
"AdditionalPurchases": {
|
||||||
|
"caution": {
|
||||||
|
"title": "Caution!",
|
||||||
|
"description": "To prevent double charges please don`t close the page and don`t go back."
|
||||||
|
},
|
||||||
|
"add-consultant": {
|
||||||
|
"title": "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",
|
||||||
|
"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.",
|
||||||
|
"one_time_price_offer": "One time price offer: <price></price>",
|
||||||
|
"choose_from": "Choose from 80+ experts astrologers.",
|
||||||
|
"original_price": "Original price: {oldPrice} ",
|
||||||
|
"save": "Save {discount}%",
|
||||||
|
"get_my_consultation": "Get my consultation",
|
||||||
|
"skip_this_offer": "Skip this offer",
|
||||||
|
"payment_error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"add-guides": {
|
||||||
|
"title": "Choose your sign-up offer 🔥",
|
||||||
|
"subtitle": "Available only now",
|
||||||
|
"description": "*You will be charged for the add-on services or offers selected at the time of purchase. This is a non-recuring payment.",
|
||||||
|
"button": "Get my copy",
|
||||||
|
"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",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"subtitle": "(3 in 1 + 2 secret bonus reading)",
|
||||||
|
"price": "<price></price> ( regular price <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "star_struck.webp"
|
||||||
|
},
|
||||||
|
"main_numerology_analysis": {
|
||||||
|
"title": "NUMEROLOGY ANALYSIS",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "input_numbers.webp"
|
||||||
|
},
|
||||||
|
"main_tarot_reading": {
|
||||||
|
"title": "TAROT READING",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "sunset.webp"
|
||||||
|
},
|
||||||
|
"main_palmistry_guide": {
|
||||||
|
"title": "PALMISTRY GUIDE",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "rised_hand.webp"
|
||||||
|
},
|
||||||
|
"main_money_reading": {
|
||||||
|
"title": "MONEY READING",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"emoji": "money.png"
|
||||||
|
},
|
||||||
|
"main_skip_offer": {
|
||||||
|
"title": "SKIP OFFER",
|
||||||
|
"discount": "{discount}% OFF",
|
||||||
|
"price": "<price></price> ( was <oldPrice></oldPrice> )",
|
||||||
|
"subtitle": "You are missing out on both readings",
|
||||||
|
"emoji": "rised_hand.webp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Chat": {
|
||||||
|
"header": {
|
||||||
|
"title": "Chat",
|
||||||
|
"search_placeholder": "Type a Chat..."
|
||||||
|
},
|
||||||
|
"new_messages": "New messages",
|
||||||
|
"view_all": "View All ({count})",
|
||||||
|
"hide_all": "Hide",
|
||||||
|
"typing": "is typing...",
|
||||||
|
"voice_message": "Voice message",
|
||||||
|
"photo": "Photo",
|
||||||
|
"correspondence_started": {
|
||||||
|
"title": "Correspondence started",
|
||||||
|
"pinned_chats": "Pinned Chats"
|
||||||
|
},
|
||||||
|
"message_input_placeholder": "Type a message...",
|
||||||
|
"message_image_fallback": "Failed to load image",
|
||||||
|
"payment_error": "Something went wrong. Please try again later."
|
||||||
|
},
|
||||||
|
"RefillTimerModal": {
|
||||||
|
"title": "Refill credits in 1 click",
|
||||||
|
"subtitle": "<oldCredits></oldCredits> {newCredits} credits for {price}",
|
||||||
|
"button": "Get Credits",
|
||||||
|
"dont_want_to_continue": "I don't want to continue chatting",
|
||||||
|
"auto_refill_description": "Auto-refill keeps your readings uninterrupted. After using {afterCredits} credits, we'll automatically add {addCredits} more credits ({minutes} minutes of consultation) for a one-time payment. No recurring charges.",
|
||||||
|
"seconds": "seconds"
|
||||||
|
},
|
||||||
|
"RefillOptionsModal": {
|
||||||
|
"header": {
|
||||||
|
"title": "{name} is waiting!",
|
||||||
|
"subtitle": "{name} is waiting for you in our chat..."
|
||||||
|
},
|
||||||
|
"button": "Continue",
|
||||||
|
"refill_option": {
|
||||||
|
"popular": "POPULAR",
|
||||||
|
"credits": "{credits} credits",
|
||||||
|
"bonus": "+<bonus></bonus><br></br>credits",
|
||||||
|
"price": "{price}"
|
||||||
|
},
|
||||||
|
"benefits": {
|
||||||
|
"1": {
|
||||||
|
"title": "Instant Access",
|
||||||
|
"description": "Continue chatting immediately"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Secure Payment",
|
||||||
|
"description": "256-bit SSL encryption"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Cancel Anytime",
|
||||||
|
"description": "No long-term commitment"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Best Value",
|
||||||
|
"description": "Most credits per dollar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"EmailMarketing": {
|
||||||
|
"Compatibility": {
|
||||||
|
"v1": {
|
||||||
|
"Landing": {
|
||||||
|
"title": "Special Offer!",
|
||||||
|
"description": "Everything for free. Trial include!",
|
||||||
|
"title-hey": "Hey, Sun 👋",
|
||||||
|
"description-hey": "Your wellness and happiness are key for us!",
|
||||||
|
"personalized-plan-title": "So we decided to give you your personalized plan and access to the trial of our app",
|
||||||
|
"personalized-plan-free": "FOR FREE!",
|
||||||
|
"title-highlights": "Highlights of your plan:",
|
||||||
|
"personal-astrologer-advice": "1:1 Advice from your personal astrologer",
|
||||||
|
"finding-compatible-partner": "Finding the most compatible partner",
|
||||||
|
"relationship-patterns-insights": "Insights into your relationship patterns, and emotional and sexual needs",
|
||||||
|
"better-understanding-yourself": "Better understanding of yourself and your needs",
|
||||||
|
"old-price-label": "OLD PRICE",
|
||||||
|
"new-price-label": "NEW PRICE",
|
||||||
|
"plan-includes-title": "Your plan also includes:",
|
||||||
|
"plan-includes-unlimited-horoscopes": "Unlimited daily / weekly / monthly / yearly horoscopes",
|
||||||
|
"plan-includes-astrology-lessons": "Astrology lessons and articles inside the app",
|
||||||
|
"plan-includes-lifestyle-calendars": "Beauty / health / travel and more calendars",
|
||||||
|
"plan-includes-compatibility-check": "Compatibility check with zodiac signs inside the app",
|
||||||
|
"review-1": "Horoscope tells realistic facts about day to day life, which can be easily relatable. It shows direction.",
|
||||||
|
"review-2": "It makes me feel safe, seeing, warm and smart.",
|
||||||
|
"review-3": "I love that we have the \"my profile\" option. I love learning about myself.",
|
||||||
|
"circular-text-image": "circular-text-en.png",
|
||||||
|
"statistics-banner-text": "Last week alone <count></count> got this relationship guide",
|
||||||
|
"statistics-banner-count": "{count}+ people",
|
||||||
|
"money-back-guarantee-title": "Money-back guarantee",
|
||||||
|
"money-back-guarantee-text": "We are convinced that we will help you get a deeper understanding of your partner and how you can improve your relationship. After all of our stellar customer reviews, we are ready to return your money if you feel that this report doesn't provide any value. Find more about applicable limitations in our Money-back policy.",
|
||||||
|
"guaranteed-security-payments": "Guaranteed security payments",
|
||||||
|
"button-continue": "Continue",
|
||||||
|
"old-price": "up to {oldPrice}"
|
||||||
|
},
|
||||||
|
"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 2 weeks until you cancel in settings. Learn more about cancellation and refund policy in Subscription terms",
|
||||||
|
"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 {totalToday} for your {trialDuration}-day trial. Subscription renews automatically until cancelled. You can cancel at any time before the end of the trial.",
|
||||||
|
"reserved-for": "Reserved for {time}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
39
src/entities/balance/api.ts
Normal file
39
src/entities/balance/api.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { getClientAccessToken } from "@/shared/auth/clientToken";
|
||||||
|
import { API_ROUTES } from "@/shared/constants/api-routes";
|
||||||
|
|
||||||
|
import { IUserBalanceResponse, UserBalanceSchema } from "./types";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches the current user balance using client-side authentication
|
||||||
|
* @returns Promise with user balance information
|
||||||
|
*/
|
||||||
|
export const getUserBalance = async (): Promise<IUserBalanceResponse> => {
|
||||||
|
const accessToken = getClientAccessToken();
|
||||||
|
if (!accessToken) {
|
||||||
|
throw new Error("No access token available");
|
||||||
|
}
|
||||||
|
|
||||||
|
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
|
||||||
|
if (!apiUrl) {
|
||||||
|
throw new Error("API URL not configured");
|
||||||
|
}
|
||||||
|
|
||||||
|
const url = new URL(API_ROUTES.getUserBalance(), apiUrl);
|
||||||
|
|
||||||
|
const response = await fetch(url.toString(), {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Authorization": `Bearer ${accessToken}`,
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`Failed to fetch balance: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
return UserBalanceSchema.parse(data);
|
||||||
|
};
|
||||||
8
src/entities/balance/types.ts
Normal file
8
src/entities/balance/types.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
export const UserBalanceSchema = z.object({
|
||||||
|
success: z.boolean(),
|
||||||
|
balance: z.number(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export type IUserBalanceResponse = z.infer<typeof UserBalanceSchema>;
|
||||||
40
src/hooks/balance/useUserBalance.ts
Normal file
40
src/hooks/balance/useUserBalance.ts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { useCallback, useEffect, useState } from "react";
|
||||||
|
|
||||||
|
import { getUserBalance } from "@/entities/balance/api";
|
||||||
|
|
||||||
|
export const useUserBalance = () => {
|
||||||
|
const [balance, setBalance] = useState<number | null>(null);
|
||||||
|
const [isLoading, setIsLoading] = useState<boolean>(false);
|
||||||
|
const [error, setError] = useState<Error | null>(null);
|
||||||
|
|
||||||
|
const fetchBalance = useCallback(async () => {
|
||||||
|
setIsLoading(true);
|
||||||
|
setError(null);
|
||||||
|
try {
|
||||||
|
const response = await getUserBalance();
|
||||||
|
setBalance(response.balance);
|
||||||
|
} catch (err) {
|
||||||
|
setError(err instanceof Error ? err : new Error("Failed to fetch balance"));
|
||||||
|
// Используем devLogger или другой механизм логирования в продакшене
|
||||||
|
if (process.env.NODE_ENV !== "production") {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error("Error fetching user balance:", err);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setIsLoading(false);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
fetchBalance();
|
||||||
|
}, [fetchBalance]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
balance,
|
||||||
|
isLoading,
|
||||||
|
error,
|
||||||
|
refetch: fetchBalance,
|
||||||
|
};
|
||||||
|
};
|
||||||
24
src/shared/auth/clientToken.ts
Normal file
24
src/shared/auth/clientToken.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the access token from client-side cookies
|
||||||
|
* @returns The access token or undefined if not found
|
||||||
|
*/
|
||||||
|
export function getClientAccessToken(): string | undefined {
|
||||||
|
if (typeof document === "undefined") {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cookies = document.cookie.split(";");
|
||||||
|
const accessTokenCookie = cookies.find(cookie =>
|
||||||
|
cookie.trim().startsWith("accessToken=")
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!accessTokenCookie) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return decodeURIComponent(
|
||||||
|
accessTokenCookie.trim().substring("accessToken=".length)
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user