From 20b5c9ada4e1279bd649357a25d20689cf473733 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 7 Oct 2025 18:43:49 +0300 Subject: [PATCH] Enhance Russian localization and update message formatting - Added a new payment agreement clause in the Russian localization file, clarifying user consent for payments. - Updated message formatting in the contact addition and subscription processes to support HTML parsing, improving message presentation and user experience. - Incorporated the new payment agreement into the subscription flow, ensuring users are informed about their consent to the terms. --- apps/bot/locales/ru.ftl | 4 +++- apps/bot/src/bot/conversations/add-contact.ts | 3 +++ apps/bot/src/bot/conversations/subscription.ts | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/bot/locales/ru.ftl b/apps/bot/locales/ru.ftl index 9062c8e..4a0e8e4 100644 --- a/apps/bot/locales/ru.ftl +++ b/apps/bot/locales/ru.ftl @@ -63,6 +63,8 @@ agreement = - подтверждаете согласие на обработку персональных данных согласно Политике конфиденциальности share-phone-agreement = Нажимая кнопку «Отправить номер телефона», +payment-agreement = + Совершая оплату, вы соглашаетесь с Публичной офертой # Приветственные сообщения @@ -105,7 +107,7 @@ msg-share-bot = # Системные сообщения msg-cancel = ❌ Операция отменена msg-unhandled = ❓ Неизвестная команда. Попробуйте /start -msg-cancel-operation = Для отмены операции используйте команду /cancel +msg-cancel-operation = Для отмены операции используйте команду /cancel # Ошибки err-generic = ⚠️ Что-то пошло не так. Попробуйте еще раз через несколько секунд diff --git a/apps/bot/src/bot/conversations/add-contact.ts b/apps/bot/src/bot/conversations/add-contact.ts index d76eab3..2214a09 100644 --- a/apps/bot/src/bot/conversations/add-contact.ts +++ b/apps/bot/src/bot/conversations/add-contact.ts @@ -42,6 +42,9 @@ export async function addContact(conversation: Conversation, c await conversation.external(({ t }) => combine(t('msg-send-client-contact-or-phone'), t('msg-cancel-operation')), ), + { + parse_mode: 'HTML', + }, ); // Ждём первое сообщение: контакт или текст с номером diff --git a/apps/bot/src/bot/conversations/subscription.ts b/apps/bot/src/bot/conversations/subscription.ts index 71fc0df..6b7e8c3 100644 --- a/apps/bot/src/bot/conversations/subscription.ts +++ b/apps/bot/src/bot/conversations/subscription.ts @@ -66,7 +66,7 @@ export async function subscription(conversation: Conversation, return combine(statusLine, fmt`${i}${t('msg-cancel-operation')}${i}`.text); }), ), - { reply_markup: keyboard }, + { parse_mode: 'HTML', reply_markup: keyboard }, ); // ждём выбора @@ -95,6 +95,18 @@ export async function subscription(conversation: Conversation, month: '2-digit', year: 'numeric', }); + + const agreementText = await conversation.external(({ t }) => { + return t('payment-agreement', { + offerUrl: env.OFFER_URL, + privacyUrl: env.PRIVACY_URL, + }); + }); + + await ctx.reply(agreementText, { + parse_mode: 'HTML', + }); + return ctx.replyWithInvoice( 'Оплата Pro доступа', combine( @@ -110,6 +122,7 @@ export async function subscription(conversation: Conversation, }, ], { + protect_content: true, provider_token: env.BOT_PROVIDER_TOKEN, start_parameter: 'get_access', },