feat: add locales for user search in promo offer sending

- Add searchUserPlaceholder, noUsersFound, hasSubscription keys
- Support all 4 languages: en, ru, zh, fa
- Remove fallback strings from component
This commit is contained in:
c0mrade
2026-02-02 07:40:05 +03:00
parent fc922671d2
commit 0c9d09280c
5 changed files with 15 additions and 6 deletions

View File

@@ -1817,6 +1817,9 @@
"segment": "Segment", "segment": "Segment",
"user": "User", "user": "User",
"userIdPlaceholder": "Telegram ID or User ID", "userIdPlaceholder": "Telegram ID or User ID",
"searchUserPlaceholder": "Search by name, username or Telegram ID...",
"noUsersFound": "No users found",
"hasSubscription": "Sub",
"preview": "Preview", "preview": "Preview",
"sending": "Sending...", "sending": "Sending...",
"sendButton": "Send" "sendButton": "Send"

View File

@@ -1610,6 +1610,9 @@
"segment": "بخش", "segment": "بخش",
"user": "کاربر", "user": "کاربر",
"userIdPlaceholder": "شناسه تلگرام یا شناسه کاربر", "userIdPlaceholder": "شناسه تلگرام یا شناسه کاربر",
"searchUserPlaceholder": "جستجو بر اساس نام، نام کاربری یا شناسه تلگرام...",
"noUsersFound": "کاربری یافت نشد",
"hasSubscription": "اشتراک",
"preview": "پیش‌نمایش", "preview": "پیش‌نمایش",
"sending": "در حال ارسال...", "sending": "در حال ارسال...",
"sendButton": "ارسال" "sendButton": "ارسال"

View File

@@ -2328,6 +2328,9 @@
"segment": "Сегмент", "segment": "Сегмент",
"user": "Пользователь", "user": "Пользователь",
"userIdPlaceholder": "Telegram ID или User ID", "userIdPlaceholder": "Telegram ID или User ID",
"searchUserPlaceholder": "Поиск по имени, username или Telegram ID...",
"noUsersFound": "Пользователи не найдены",
"hasSubscription": "Подп",
"preview": "Предпросмотр", "preview": "Предпросмотр",
"sending": "Отправка...", "sending": "Отправка...",
"sendButton": "Отправить" "sendButton": "Отправить"

View File

@@ -1609,6 +1609,9 @@
"segment": "分组", "segment": "分组",
"user": "用户", "user": "用户",
"userIdPlaceholder": "Telegram ID 或 User ID", "userIdPlaceholder": "Telegram ID 或 User ID",
"searchUserPlaceholder": "按姓名、用户名或Telegram ID搜索...",
"noUsersFound": "未找到用户",
"hasSubscription": "订阅",
"preview": "预览", "preview": "预览",
"sending": "发送中...", "sending": "发送中...",
"sendButton": "发送" "sendButton": "发送"

View File

@@ -427,10 +427,7 @@ export default function AdminPromoOfferSend() {
setShowDropdown(true); setShowDropdown(true);
}} }}
onFocus={() => setShowDropdown(true)} onFocus={() => setShowDropdown(true)}
placeholder={t( placeholder={t('admin.promoOffers.send.searchUserPlaceholder')}
'admin.promoOffers.send.searchUserPlaceholder',
'Search by name, username or Telegram ID...',
)}
className="w-full rounded-lg border border-dark-600 bg-dark-700 py-2.5 pl-10 pr-3 text-dark-100 focus:border-accent-500 focus:outline-none" className="w-full rounded-lg border border-dark-600 bg-dark-700 py-2.5 pl-10 pr-3 text-dark-100 focus:border-accent-500 focus:outline-none"
/> />
{isSearching && ( {isSearching && (
@@ -464,14 +461,14 @@ export default function AdminPromoOfferSend() {
</div> </div>
{user.has_subscription && ( {user.has_subscription && (
<span className="flex-shrink-0 rounded bg-success-500/20 px-1.5 py-0.5 text-xs text-success-400"> <span className="flex-shrink-0 rounded bg-success-500/20 px-1.5 py-0.5 text-xs text-success-400">
{t('admin.users.hasSubscription', 'Sub')} {t('admin.promoOffers.send.hasSubscription')}
</span> </span>
)} )}
</button> </button>
)) ))
) : !isSearching ? ( ) : !isSearching ? (
<div className="px-3 py-4 text-center text-sm text-dark-400"> <div className="px-3 py-4 text-center text-sm text-dark-400">
{t('admin.promoOffers.send.noUsersFound', 'No users found')} {t('admin.promoOffers.send.noUsersFound')}
</div> </div>
) : null} ) : null}
</div> </div>