feat(localization): update Pro access terminology and enhance subscription messages
- Replaced instances of "подписка" with "доступ" to clarify Pro access terminology. - Updated subscription-related messages for improved user understanding and consistency. - Enhanced command list and bot responses to reflect changes in Pro access messaging.
This commit is contained in:
parent
7862713a06
commit
e6c823570c
@ -28,17 +28,18 @@ addcontact =
|
|||||||
.description = Добавить контакт клиента
|
.description = Добавить контакт клиента
|
||||||
sharebot =
|
sharebot =
|
||||||
.description = Поделиться ботом
|
.description = Поделиться ботом
|
||||||
|
subscribe =
|
||||||
|
.description = Приобрести Pro доступ
|
||||||
|
pro =
|
||||||
|
.description = Информация о вашем Pro доступе
|
||||||
help =
|
help =
|
||||||
.description = Список команд и поддержка
|
.description = Список команд и поддержка
|
||||||
subscribe =
|
|
||||||
.description = Оформить подписку
|
|
||||||
pro =
|
|
||||||
.description = Информация о Pro подписке
|
|
||||||
commands-list =
|
commands-list =
|
||||||
📋 Доступные команды:
|
📋 Доступные команды:
|
||||||
• /addcontact — добавить контакт клиента
|
• /addcontact — добавить контакт клиента
|
||||||
• /sharebot — поделиться ботом
|
• /sharebot — поделиться ботом
|
||||||
• /subscribe — оформить подписку
|
• /subscribe — приобрести Pro доступ
|
||||||
|
• /pro — информация о вашем Pro доступе
|
||||||
• /help — список команд
|
• /help — список команд
|
||||||
|
|
||||||
Откройте приложение кнопкой "Открыть", чтобы отредактировать свой профиль или создать запись
|
Откройте приложение кнопкой "Открыть", чтобы отредактировать свой профиль или создать запись
|
||||||
@ -92,16 +93,18 @@ err-with-details = ❌ Произошла ошибка
|
|||||||
err-limit-exceeded = 🚫 Слишком много запросов! Подождите немного
|
err-limit-exceeded = 🚫 Слишком много запросов! Подождите немного
|
||||||
|
|
||||||
|
|
||||||
# Сообщения о подписке
|
# Сообщения о доступе
|
||||||
msg-subscribe =
|
msg-subscribe =
|
||||||
👑 Подписка Pro:
|
👑 Pro доступ:
|
||||||
• Разблокирует неограниченное количество заказов
|
• Разблокирует неограниченное количество заказов
|
||||||
msg-subscribe-success = ✅ Платеж успешно обработан!
|
msg-subscribe-success = ✅ Платеж успешно обработан!
|
||||||
msg-subscribe-error = ❌ Произошла ошибка при обработке платежа
|
msg-subscribe-error = ❌ Произошла ошибка при обработке платежа
|
||||||
msg-subscription-active-until = 📅 Ваша подписка активна до { $date }
|
msg-subscription-active-until = 👑 Ваш Pro доступ активен до { $date }
|
||||||
msg-subscription-active-days = 📅 Осталось еще { $days } дней вашей подписки
|
msg-subscription-active-days = 👑 Осталось дней вашего Pro доступа: { $days }
|
||||||
msg-subscribe-disabled = 🚫 Подписка отключена. Все ограничения сняты! Наслаждайтесь полным доступом! 🎉
|
msg-subscription-expired =
|
||||||
|
Ваш Pro доступ истек.
|
||||||
|
Воспользуйтесь командой /subscribe, чтобы получить неограниченное количество заказов
|
||||||
|
msg-subscribe-disabled = 🚫 Pro доступ отключен для всех. Ограничения сняты! Наслаждайтесь полным доступом! 🎉
|
||||||
|
|
||||||
# Информация о лимитах
|
# Информация о лимитах
|
||||||
msg-remaining-orders-this-month = 🧾 Доступно заказов в этом месяце: { $count }
|
msg-remaining-orders-this-month = 🧾 Доступно заказов в этом месяце: { $count }
|
||||||
msg-subscription-active-days = 📅 Осталось дней вашей подписки: { $days }
|
|
||||||
@ -70,7 +70,7 @@ export async function subscription(conversation: Conversation<Context, Context>,
|
|||||||
|
|
||||||
// создаём invoice
|
// создаём invoice
|
||||||
return ctx.replyWithInvoice(
|
return ctx.replyWithInvoice(
|
||||||
'Оплата подписки',
|
'Оплата Pro доступа',
|
||||||
selectedPrice.description || '',
|
selectedPrice.description || '',
|
||||||
JSON.stringify({ period: selectedPrice.period }),
|
JSON.stringify({ period: selectedPrice.period }),
|
||||||
'RUB',
|
'RUB',
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { type Context } from '@/bot/context';
|
import { type Context } from '@/bot/context';
|
||||||
import { logHandle } from '@/bot/helpers/logging';
|
import { logHandle } from '@/bot/helpers/logging';
|
||||||
|
import { combine } from '@/utils/messages';
|
||||||
import { SubscriptionsService } from '@repo/graphql/api/subscriptions';
|
import { SubscriptionsService } from '@repo/graphql/api/subscriptions';
|
||||||
import { Composer } from 'grammy';
|
import { Composer } from 'grammy';
|
||||||
|
|
||||||
@ -19,10 +20,20 @@ feature.command('pro', logHandle('command-pro'), async (ctx) => {
|
|||||||
await subscriptionsService.getSubscription({ telegramId });
|
await subscriptionsService.getSubscription({ telegramId });
|
||||||
|
|
||||||
if (hasActiveSubscription && remainingDays > 0) {
|
if (hasActiveSubscription && remainingDays > 0) {
|
||||||
return ctx.reply(ctx.t('msg-subscription-active-days', { days: remainingDays }));
|
return ctx.reply(
|
||||||
|
combine(
|
||||||
|
ctx.t('msg-subscription-active-days', { days: remainingDays }),
|
||||||
|
remainingDays === 0 ? ctx.t('msg-subscription-expired') : '',
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctx.reply(ctx.t('msg-remaining-orders-this-month', { count: remainingOrdersCount }));
|
return ctx.reply(
|
||||||
|
combine(
|
||||||
|
ctx.t('msg-remaining-orders-this-month', { count: remainingOrdersCount }),
|
||||||
|
remainingOrdersCount === 0 ? ctx.t('msg-subscription-expired') : '',
|
||||||
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
export { composer as pro };
|
export { composer as pro };
|
||||||
|
|||||||
@ -31,7 +31,7 @@ export default async function ProPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 className="mb-6 text-4xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-6xl">
|
<h1 className="mb-6 text-4xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-6xl">
|
||||||
Подписка{' '}
|
Доступ{' '}
|
||||||
<span className="bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent dark:from-purple-700 dark:to-blue-700">
|
<span className="bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent dark:from-purple-700 dark:to-blue-700">
|
||||||
Pro
|
Pro
|
||||||
</span>
|
</span>
|
||||||
@ -39,7 +39,7 @@ export default async function ProPage() {
|
|||||||
|
|
||||||
<p className="mx-auto mb-8 max-w-2xl text-xl text-gray-600 dark:text-gray-300">
|
<p className="mx-auto mb-8 max-w-2xl text-xl text-gray-600 dark:text-gray-300">
|
||||||
{hasActiveSubscription
|
{hasActiveSubscription
|
||||||
? 'Ваша подписка Pro активна!'
|
? 'Ваш Pro доступ активен!'
|
||||||
: 'Разблокируйте больше возможностей'}
|
: 'Разблокируйте больше возможностей'}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ export default async function ProPage() {
|
|||||||
variant={canUseTrial ? 'outline' : 'default'}
|
variant={canUseTrial ? 'outline' : 'default'}
|
||||||
>
|
>
|
||||||
<Link href={env.BOT_URL} rel="noopener noreferrer" target="_blank">
|
<Link href={env.BOT_URL} rel="noopener noreferrer" target="_blank">
|
||||||
Оформить подписку через бота
|
Приобрести Pro доступ через бота
|
||||||
<ArrowRight className="ml-2 size-5" />
|
<ArrowRight className="ml-2 size-5" />
|
||||||
</Link>
|
</Link>
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@ -22,7 +22,7 @@ export function SubscriptionInfoBar() {
|
|||||||
|
|
||||||
if (error) return null;
|
if (error) return null;
|
||||||
|
|
||||||
const title = isActive ? 'Подписка Pro активна' : 'Подписка неактивна';
|
const title = isActive ? 'Pro доступ активен' : 'Pro доступ неактивен';
|
||||||
|
|
||||||
let description = 'Попробуйте бесплатно';
|
let description = 'Попробуйте бесплатно';
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export const ERRORS = {
|
|||||||
ORDER_LIMIT_EXCEEDED_CLIENT:
|
ORDER_LIMIT_EXCEEDED_CLIENT:
|
||||||
'Достигнут лимит заказов у этого мастера на месяц. Попробуйте записаться позже или к другому мастеру.',
|
'Достигнут лимит заказов у этого мастера на месяц. Попробуйте записаться позже или к другому мастеру.',
|
||||||
ORDER_LIMIT_EXCEEDED_MASTER:
|
ORDER_LIMIT_EXCEEDED_MASTER:
|
||||||
'Достигнут лимит заказов на месяц. Оформите Pro подписку для продолжения работы.',
|
'Достигнут лимит заказов на месяц. Оформите Pro доступ для продолжения работы.',
|
||||||
OVERLAPPING_TIME: 'Время пересекается с другими заказами',
|
OVERLAPPING_TIME: 'Время пересекается с другими заказами',
|
||||||
SLOT_CLOSED: 'Слот закрыт',
|
SLOT_CLOSED: 'Слот закрыт',
|
||||||
};
|
};
|
||||||
|
|||||||
@ -11,9 +11,9 @@ if (!dayjs.prototype.minMax) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ERRORS = {
|
export const ERRORS = {
|
||||||
FAILED_TO_CREATE_TRIAL_SUBSCRIPTION: 'Не удалось создать пробную подписку',
|
FAILED_TO_CREATE_TRIAL_SUBSCRIPTION: 'Не удалось оформить доступ к пробному периоду',
|
||||||
SUBSCRIPTION_PRICES_NOT_FOUND: 'Цены подписки не найдены',
|
SUBSCRIPTION_PRICES_NOT_FOUND: 'Цены Pro доступа не найдены',
|
||||||
SUBSCRIPTION_SETTING_NOT_FOUND: 'Настройки подписки не найдены',
|
SUBSCRIPTION_SETTING_NOT_FOUND: 'Настройки Pro доступа не найдены',
|
||||||
TRIAL_PERIOD_ALREADY_USED: 'Пробный период уже был использован',
|
TRIAL_PERIOD_ALREADY_USED: 'Пробный период уже был использован',
|
||||||
TRIAL_PERIOD_NOT_ACTIVE: 'Пробный период неактивен',
|
TRIAL_PERIOD_NOT_ACTIVE: 'Пробный период неактивен',
|
||||||
TRIAL_PERIOD_NOT_FOUND: 'Пробный период не найден',
|
TRIAL_PERIOD_NOT_FOUND: 'Пробный период не найден',
|
||||||
@ -60,7 +60,7 @@ export class SubscriptionsService extends BaseService {
|
|||||||
data: {
|
data: {
|
||||||
amount: subscriptionPrice.amount,
|
amount: subscriptionPrice.amount,
|
||||||
currency: 'RUB',
|
currency: 'RUB',
|
||||||
description: existingSubscription ? 'Продление подписки' : 'Новая подписка',
|
description: existingSubscription ? 'Продление Pro доступа' : 'Новая подписка',
|
||||||
period: subscriptionPrice.period,
|
period: subscriptionPrice.period,
|
||||||
source: GQL.Enum_Subscriptionhistory_Source.Payment,
|
source: GQL.Enum_Subscriptionhistory_Source.Payment,
|
||||||
state: GQL.Enum_Subscriptionhistory_State.Success,
|
state: GQL.Enum_Subscriptionhistory_State.Success,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user