Skip to content

Commit 3178bcb

Browse files
authored
Merge pull request #16 from dapi/vk/62f0-ru-telegram-bot
Почини ru.telegram_bot.channels.list.total (vibe-kanban)
2 parents 191e3f7 + 7c54105 commit 3178bcb

4 files changed

Lines changed: 18 additions & 18 deletions

File tree

app/controllers/concerns/telegram/admin_commands.rb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def channels!(*args)
77
# Проверяем права доступа
88
unless current_user&.is_admin?
99
Rails.logger.warn "Unauthorized access attempt to /channels by user #{current_user&.username}"
10-
respond_with :message, text: I18n.t('telegram_bot.channels.list.admin_only')
10+
respond_with :message, text: I18n.t('telegram_bot.channels.admin_list.admin_only')
1111
return
1212
end
1313

@@ -22,7 +22,7 @@ def channels!(*args)
2222
channels_with_subscribers = get_channels_with_subscribers(page, per_page)
2323

2424
if channels_with_subscribers[:channels].empty?
25-
respond_with :message, text: I18n.t('telegram_bot.channels.list.empty')
25+
respond_with :message, text: I18n.t('telegram_bot.channels.admin_list.empty')
2626
return
2727
end
2828

@@ -44,7 +44,7 @@ def channels!(*args)
4444
# Callback query для пагинации списка каналов
4545
def channels_page_callback_query(page = nil)
4646
unless current_user&.is_admin?
47-
answer_callback_query(I18n.t('telegram_bot.channels.list.admin_only'))
47+
answer_callback_query(I18n.t('telegram_bot.channels.admin_list.admin_only'))
4848
return
4949
end
5050

@@ -58,7 +58,7 @@ def channels_page_callback_query(page = nil)
5858
channels_with_subscribers = get_channels_with_subscribers(page, per_page)
5959

6060
if channels_with_subscribers[:channels].empty?
61-
edit_message :text, text: I18n.t('telegram_bot.channels.list.empty')
61+
edit_message :text, text: I18n.t('telegram_bot.channels.admin_list.empty')
6262
return
6363
end
6464

@@ -125,7 +125,7 @@ def build_channels_list_message(channels_data)
125125
total_count = channels_data[:total_count]
126126

127127
message_parts = []
128-
message_parts << "📊 Список каналов в системе (всего: #{total_count})"
128+
message_parts << I18n.t('telegram_bot.channels.admin_list.title', count: total_count)
129129
message_parts << ''
130130

131131
channels.each_with_index do |channel, index|
@@ -160,7 +160,7 @@ def build_channels_list_message(channels_data)
160160
# Добавляем информацию о пагинации
161161
if total_pages > 1
162162
message_parts << ''
163-
message_parts << "Страница #{current_page} из #{total_pages}"
163+
message_parts << I18n.t('telegram_bot.channels.admin_list.pagination_info', current: current_page, total: total_pages)
164164
end
165165

166166
message_parts.join("\n")
@@ -182,19 +182,19 @@ def format_subscribers_count(count)
182182
count = count.to_i
183183

184184
if count == 0
185-
'0 подписчиков'
185+
I18n.t('telegram_bot.channels.admin_list.subscribers', count: 0)
186186
elsif count == 1
187187
'1 подписчик'
188188
elsif count >= 2 && count <= 4
189189
"#{count} подписчика"
190190
elsif count >= 5 && count <= 20
191-
"#{count} подписчиков"
191+
I18n.t('telegram_bot.channels.admin_list.subscribers', count: count)
192192
elsif count % 10 == 1
193193
"#{count} подписчик"
194194
elsif count % 10 >= 2 && count % 10 <= 4
195195
"#{count} подписчика"
196196
else
197-
"#{count} подписчиков"
197+
I18n.t('telegram_bot.channels.admin_list.subscribers', count: count)
198198
end
199199
end
200200

@@ -203,7 +203,7 @@ def format_last_post_time(last_post_at)
203203
return 'Нет постов' unless last_post_at
204204

205205
time_ago = time_ago_in_words(last_post_at)
206-
"Последний пост: #{time_ago}"
206+
"#{I18n.t('telegram_bot.channels.admin_list.last_post')} #{time_ago}"
207207
end
208208

209209
# Создает клавиатуру для списка каналов
@@ -220,35 +220,35 @@ def build_channels_list_keyboard(channels_data, current_page)
220220
# Кнопка "Предыдущая"
221221
if current_page > 1
222222
nav_buttons << callback_button(
223-
'← Предыдущая',
223+
I18n.t('telegram_bot.channels.admin_list.previous_page'),
224224
"channels_page:#{current_page - 1}"
225225
)
226226
end
227227

228228
# Кнопка "Следующая"
229229
if current_page < total_pages
230230
nav_buttons << callback_button(
231-
'Следующая →',
231+
I18n.t('telegram_bot.channels.admin_list.next_page'),
232232
"channels_page:#{current_page + 1}"
233233
)
234234
end
235235

236236
buttons << nav_buttons if nav_buttons.any?
237237

238238
# Кнопка закрытия
239-
buttons << [ callback_button('✖️ Закрыть', 'close_channels_list:') ]
239+
buttons << [ callback_button(I18n.t('telegram_bot.channels.admin_list.close'), 'close_channels_list:') ]
240240

241241
inline_keyboard(*buttons)
242242
end
243243

244244
# Callback query для закрытия списка каналов
245245
def close_channels_list_callback_query(*)
246246
unless current_user&.is_admin?
247-
answer_callback_query(I18n.t('telegram_bot.channels.list.admin_only'))
247+
answer_callback_query(I18n.t('telegram_bot.channels.admin_list.admin_only'))
248248
return
249249
end
250250

251-
answer_callback_query('Список каналов закрыт')
251+
answer_callback_query(I18n.t('telegram_bot.channels.admin_list.closed'))
252252

253253
# Удаляем сообщение или заменяем его на простое сообщение
254254
begin

app/controllers/concerns/telegram/subscription_commands.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def confirm_remove_callback_query(channel_id)
7676

7777
# Построить текст списка подписок
7878
def build_subscriptions_list(subscriptions)
79-
text = "#{I18n.t('telegram_bot.channels.list.title')}\n\n"
79+
text = "#{I18n.t('telegram_bot.channels.list.title', count: subscriptions.count)}\n\n"
8080
text += "#{I18n.t('telegram_bot.channels.list.total', count: subscriptions.count)}\n\n"
8181

8282
subscriptions.each do |subscription|

config/locales/ru.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ ru:
180180
confirm_remove: "Удалить %{channel} из подписок?"
181181
remove_success: "Канал %{channel} удалён из подписок"
182182

183-
list:
183+
admin_list:
184184
title: "📊 Список каналов в системе (всего: %{count})"
185185
admin_only: "🚫 У вас нет прав для выполнения этой команды. Доступно только администраторам."
186186
empty: "📭 В системе пока нет каналов."

test/controllers/telegram/admin_commands_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ def create_test_subscriptions
255255

256256
message_content = extract_message_content(@bot.requests)
257257
assert_not_nil message_content
258-
assert_includes message_content[:text], I18n.t('telegram_bot.channels.list.admin_only')
258+
assert_includes message_content[:text], I18n.t('telegram_bot.channels.admin_list.admin_only')
259259
end
260260

261261
test 'channels list shows message with available channels' do

0 commit comments

Comments
 (0)