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 = Добавить контакт клиента
|
||||
sharebot =
|
||||
.description = Поделиться ботом
|
||||
subscribe =
|
||||
.description = Приобрести Pro доступ
|
||||
pro =
|
||||
.description = Информация о вашем Pro доступе
|
||||
help =
|
||||
.description = Список команд и поддержка
|
||||
subscribe =
|
||||
.description = Оформить подписку
|
||||
pro =
|
||||
.description = Информация о Pro подписке
|
||||
commands-list =
|
||||
📋 Доступные команды:
|
||||
• /addcontact — добавить контакт клиента
|
||||
• /sharebot — поделиться ботом
|
||||
• /subscribe — оформить подписку
|
||||
• /subscribe — приобрести Pro доступ
|
||||
• /pro — информация о вашем Pro доступе
|
||||
• /help — список команд
|
||||
|
||||
Откройте приложение кнопкой "Открыть", чтобы отредактировать свой профиль или создать запись
|
||||
@ -92,16 +93,18 @@ err-with-details = ❌ Произошла ошибка
|
||||
err-limit-exceeded = 🚫 Слишком много запросов! Подождите немного
|
||||
|
||||
|
||||
# Сообщения о подписке
|
||||
# Сообщения о доступе
|
||||
msg-subscribe =
|
||||
👑 Подписка Pro:
|
||||
👑 Pro доступ:
|
||||
• Разблокирует неограниченное количество заказов
|
||||
msg-subscribe-success = ✅ Платеж успешно обработан!
|
||||
msg-subscribe-error = ❌ Произошла ошибка при обработке платежа
|
||||
msg-subscription-active-until = 📅 Ваша подписка активна до { $date }
|
||||
msg-subscription-active-days = 📅 Осталось еще { $days } дней вашей подписки
|
||||
msg-subscribe-disabled = 🚫 Подписка отключена. Все ограничения сняты! Наслаждайтесь полным доступом! 🎉
|
||||
msg-subscription-active-until = 👑 Ваш Pro доступ активен до { $date }
|
||||
msg-subscription-active-days = 👑 Осталось дней вашего Pro доступа: { $days }
|
||||
msg-subscription-expired =
|
||||
Ваш Pro доступ истек.
|
||||
Воспользуйтесь командой /subscribe, чтобы получить неограниченное количество заказов
|
||||
msg-subscribe-disabled = 🚫 Pro доступ отключен для всех. Ограничения сняты! Наслаждайтесь полным доступом! 🎉
|
||||
|
||||
# Информация о лимитах
|
||||
msg-remaining-orders-this-month = 🧾 Доступно заказов в этом месяце: { $count }
|
||||
msg-subscription-active-days = 📅 Осталось дней вашей подписки: { $days }
|
||||
msg-remaining-orders-this-month = 🧾 Доступно заказов в этом месяце: { $count }
|
||||
@ -70,7 +70,7 @@ export async function subscription(conversation: Conversation<Context, Context>,
|
||||
|
||||
// создаём invoice
|
||||
return ctx.replyWithInvoice(
|
||||
'Оплата подписки',
|
||||
'Оплата Pro доступа',
|
||||
selectedPrice.description || '',
|
||||
JSON.stringify({ period: selectedPrice.period }),
|
||||
'RUB',
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { type Context } from '@/bot/context';
|
||||
import { logHandle } from '@/bot/helpers/logging';
|
||||
import { combine } from '@/utils/messages';
|
||||
import { SubscriptionsService } from '@repo/graphql/api/subscriptions';
|
||||
import { Composer } from 'grammy';
|
||||
|
||||
@ -19,10 +20,20 @@ feature.command('pro', logHandle('command-pro'), async (ctx) => {
|
||||
await subscriptionsService.getSubscription({ telegramId });
|
||||
|
||||
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 };
|
||||
|
||||
@ -31,7 +31,7 @@ export default async function ProPage() {
|
||||
</div>
|
||||
|
||||
<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">
|
||||
Pro
|
||||
</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">
|
||||
{hasActiveSubscription
|
||||
? 'Ваша подписка Pro активна!'
|
||||
? 'Ваш Pro доступ активен!'
|
||||
: 'Разблокируйте больше возможностей'}
|
||||
</p>
|
||||
|
||||
@ -58,7 +58,7 @@ export default async function ProPage() {
|
||||
variant={canUseTrial ? 'outline' : 'default'}
|
||||
>
|
||||
<Link href={env.BOT_URL} rel="noopener noreferrer" target="_blank">
|
||||
Оформить подписку через бота
|
||||
Приобрести Pro доступ через бота
|
||||
<ArrowRight className="ml-2 size-5" />
|
||||
</Link>
|
||||
</Button>
|
||||
|
||||
@ -22,7 +22,7 @@ export function SubscriptionInfoBar() {
|
||||
|
||||
if (error) return null;
|
||||
|
||||
const title = isActive ? 'Подписка Pro активна' : 'Подписка неактивна';
|
||||
const title = isActive ? 'Pro доступ активен' : 'Pro доступ неактивен';
|
||||
|
||||
let description = 'Попробуйте бесплатно';
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ export const ERRORS = {
|
||||
ORDER_LIMIT_EXCEEDED_CLIENT:
|
||||
'Достигнут лимит заказов у этого мастера на месяц. Попробуйте записаться позже или к другому мастеру.',
|
||||
ORDER_LIMIT_EXCEEDED_MASTER:
|
||||
'Достигнут лимит заказов на месяц. Оформите Pro подписку для продолжения работы.',
|
||||
'Достигнут лимит заказов на месяц. Оформите Pro доступ для продолжения работы.',
|
||||
OVERLAPPING_TIME: 'Время пересекается с другими заказами',
|
||||
SLOT_CLOSED: 'Слот закрыт',
|
||||
};
|
||||
|
||||
@ -11,9 +11,9 @@ if (!dayjs.prototype.minMax) {
|
||||
}
|
||||
|
||||
export const ERRORS = {
|
||||
FAILED_TO_CREATE_TRIAL_SUBSCRIPTION: 'Не удалось создать пробную подписку',
|
||||
SUBSCRIPTION_PRICES_NOT_FOUND: 'Цены подписки не найдены',
|
||||
SUBSCRIPTION_SETTING_NOT_FOUND: 'Настройки подписки не найдены',
|
||||
FAILED_TO_CREATE_TRIAL_SUBSCRIPTION: 'Не удалось оформить доступ к пробному периоду',
|
||||
SUBSCRIPTION_PRICES_NOT_FOUND: 'Цены Pro доступа не найдены',
|
||||
SUBSCRIPTION_SETTING_NOT_FOUND: 'Настройки Pro доступа не найдены',
|
||||
TRIAL_PERIOD_ALREADY_USED: 'Пробный период уже был использован',
|
||||
TRIAL_PERIOD_NOT_ACTIVE: 'Пробный период неактивен',
|
||||
TRIAL_PERIOD_NOT_FOUND: 'Пробный период не найден',
|
||||
@ -60,7 +60,7 @@ export class SubscriptionsService extends BaseService {
|
||||
data: {
|
||||
amount: subscriptionPrice.amount,
|
||||
currency: 'RUB',
|
||||
description: existingSubscription ? 'Продление подписки' : 'Новая подписка',
|
||||
description: existingSubscription ? 'Продление Pro доступа' : 'Новая подписка',
|
||||
period: subscriptionPrice.period,
|
||||
source: GQL.Enum_Subscriptionhistory_Source.Payment,
|
||||
state: GQL.Enum_Subscriptionhistory_State.Success,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user