-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanguages.py
More file actions
218 lines (196 loc) · 10.5 KB
/
languages.py
File metadata and controls
218 lines (196 loc) · 10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
"""
Multi-language support for Daily Light Bot
Supports English (default) and Farsi (Persian)
"""
class Languages:
"""Language configuration and translations"""
# Supported languages
SUPPORTED_LANGUAGES = {
'en': 'English',
'fa': 'فارسی (Farsi)'
}
DEFAULT_LANGUAGE = 'fa' # Persian as default for Persian-focused bot
# Translations
TRANSLATIONS = {
'en': {
# Bot messages
'daily_light_title': '🌅 *Daily Light - Verse of the Day*',
'have_blessed_day': '🙏 Have a blessed day!',
'source': 'Source',
# Welcome messages
'welcome_private': (
"🌅 *Welcome to Daily Light Bot!*\n\n"
"I share daily Bible verses to bring light to your day.\n\n"
"*Commands:*\n"
"• /verse - Get today's verse\n"
"• /language - Change language\n"
"• /help - Show this help message\n"
"• /stats - Show bot statistics (admin only)\n\n"
"*To use in groups:*\n"
"1. Add me to your group\n"
"2. Make me an admin (optional but recommended)\n"
"3. I'll automatically share daily verses at 8:00 AM\n\n"
"🙏 God bless you!"
),
'welcome_group_new': (
"🌅 *Hello {chat_title}!*\n\n"
"Thank you for adding Daily Light Bot!\n\n"
"I will share daily Bible verses here every day at 8:00 AM.\n\n"
"Use /verse to get today's verse anytime.\n"
"Use /language to change the language.\n\n"
"🙏 May God bless this group!"
),
'welcome_group_existing': (
"🌅 *Hello again, {chat_title}!*\n\n"
"I'm already set up to share daily verses here at 8:00 AM.\n\n"
"🙏 God bless!"
),
# Help message
'help_message': (
"🌅 *Daily Light Bot Help*\n\n"
"*Commands:*\n"
"• /start - Welcome message and setup\n"
"• /verse - Get today's Bible verse\n"
"• /language - Change language (English/Farsi)\n"
"• /help - Show this help message\n"
"• /stats - Show bot statistics (admin only)\n\n"
"*Features:*\n"
"• Daily Bible verses at 8:00 AM\n"
"• Multi-language support (English/Farsi)\n"
"• Works in groups and private chats\n"
"• Automatic group management\n\n"
"*Support:*\n"
"If you need help, contact the bot administrator.\n\n"
"🙏 God bless you!"
),
# Language selection
'language_selection': (
"🌍 *Language Selection*\n\n"
"Choose your preferred language:\n\n"
"Current language: English"
),
'language_changed': "✅ Language changed to English!",
'language_button_en': "🇺🇸 English",
'language_button_fa': "🇮🇷 فارسی",
# Stats message
'stats_message': (
"📊 *Bot Statistics*\n\n"
"👥 Active Groups: {group_count}\n"
"🕐 Daily Schedule: {daily_time}\n"
"🌍 Timezone: {timezone}\n\n"
"🤖 Bot is running and ready!"
),
'stats_admin_only': "❌ This command is only available to administrators.",
# Error messages
'verse_error': "❌ Sorry, I couldn't get today's verse. Please try again later.",
'unknown_command': "❓ Unknown command. Use /help to see available commands.",
# Broadcast messages
'broadcast_start': "Starting daily verse broadcast...",
'broadcast_complete': "Broadcast complete: {success} successful, {failed} failed",
'no_groups': "No groups found in database.",
'sent_to_group': "✅ Sent to group {chat_id}",
'failed_to_group': "❌ Failed to send to group {chat_id}: {error}",
'removed_group': "🗑️ Removed group {chat_id} from database"
},
'fa': {
# Bot messages
'daily_light_title': '🌅 *نور روزانه - آیه روز*',
'have_blessed_day': '🙏 روز پربرکتی داشته باشید!',
'source': 'منبع',
# Welcome messages
'welcome_private': (
"🌅 *به ربات نور روزانه خوش آمدید!*\n\n"
"📜 من هر روز آیات زیبا و الهامبخش کتاب مقدس را به فارسی برای تقویت ایمان و امید شما ارسال میکنم.\n\n"
"*دستورات:*\n"
"• /verse - دریافت آیه امروز\n"
"• /language - تغییر زبان\n"
"• /help - راهنمای کامل\n"
"• /stats - آمار ربات (فقط ادمین)\n\n"
"*برای گروهها:*\n"
"👥 من را به گروه خود اضافه کنید\n"
"🕑 هر روز ساعت ۸ صبح آیه روزانه دریافت کنید\n"
"🌅 روزتان را با نور کلام خدا آغاز کنید\n\n"
"🙏 خداوند شما را برکت دهد!"
),
'welcome_group_new': (
"🌅 *سلام {chat_title}!*\n\n"
"از اضافه کردن ربات نور روزانه متشکرم!\n\n"
"من هر روز ساعت ۸ صبح آیات کتاب مقدس را اینجا به اشتراک خواهم گذاشت.\n\n"
"از /verse برای دریافت آیه امروز استفاده کنید.\n"
"از /language برای تغییر زبان استفاده کنید.\n\n"
"🙏 خدا این گروه را برکت دهد!"
),
'welcome_group_existing': (
"🌅 *دوباره سلام، {chat_title}!*\n\n"
"من قبلاً برای اشتراکگذاری آیات روزانه در ساعت ۸ صبح تنظیم شدهام.\n\n"
"🙏 خدا برکت دهد!"
),
# Help message
'help_message': (
"🌅 *راهنمای ربات نور روزانه*\n\n"
"📜 این ربات برای ارسال آیات روزانه کتاب مقدس به فارسی طراحی شده است.\n\n"
"*دستورات:*\n"
"• /start - شروع و خوشآمدگویی\n"
"• /verse - دریافت آیه امروز\n"
"• /language - تغییر زبان (فارسی/انگلیسی)\n"
"• /help - نمایش این راهنما\n"
"• /stats - آمار ربات (فقط مدیران)\n\n"
"*ویژگیهای ویژه:*\n"
"🌅 آیات روزانه در ساعت ۸ صبح\n"
"🎯 بیش از ۵۰ آیه الهامبخش فارسی\n"
"👥 پشتیبانی گروههای متعدد\n"
"🌍 پشتیبانی فارسی و انگلیسی\n"
"🔄 مدیریت خودکار و هوشمند\n\n"
"*هدف:*\n"
"تقویت ایمان، الهام و امید روزانه با کلام خدا\n\n"
"🙏 خداوند شما را برکت دهد!"
),
# Language selection
'language_selection': (
"🌍 *انتخاب زبان*\n\n"
"زبان مورد نظر خود را انتخاب کنید:\n\n"
"زبان فعلی: فارسی"
),
'language_changed': "✅ زبان به فارسی تغییر یافت!",
'language_button_en': "🇺🇸 English",
'language_button_fa': "🇮🇷 فارسی",
# Stats message
'stats_message': (
"📊 *آمار ربات*\n\n"
"👥 گروههای فعال: {group_count}\n"
"🕐 برنامه روزانه: {daily_time}\n"
"🌍 منطقه زمانی: {timezone}\n\n"
"🤖 ربات در حال اجرا و آماده است!"
),
'stats_admin_only': "❌ این دستور فقط برای مدیران در دسترس است.",
# Error messages
'verse_error': "❌ متأسفانه نتوانستم آیه امروز را دریافت کنم. لطفاً بعداً دوباره تلاش کنید.",
'unknown_command': "❓ دستور ناشناخته. از /help برای مشاهده دستورات موجود استفاده کنید.",
# Broadcast messages
'broadcast_start': "شروع پخش آیه روزانه...",
'broadcast_complete': "پخش کامل شد: {success} موفق، {failed} ناموفق",
'no_groups': "هیچ گروهی در پایگاه داده یافت نشد.",
'sent_to_group': "✅ به گروه {chat_id} ارسال شد",
'failed_to_group': "❌ ارسال به گروه {chat_id} ناموفق بود: {error}",
'removed_group': "🗑️ گروه {chat_id} از پایگاه داده حذف شد"
}
}
@classmethod
def get_text(cls, key, language='en', **kwargs):
"""Get translated text for a given key and language"""
if language not in cls.TRANSLATIONS:
language = cls.DEFAULT_LANGUAGE
text = cls.TRANSLATIONS[language].get(key, cls.TRANSLATIONS[cls.DEFAULT_LANGUAGE].get(key, key))
# Format with provided kwargs
try:
return text.format(**kwargs)
except (KeyError, ValueError):
return text
@classmethod
def get_supported_languages(cls):
"""Get list of supported languages"""
return cls.SUPPORTED_LANGUAGES
@classmethod
def is_supported_language(cls, language):
"""Check if language is supported"""
return language in cls.SUPPORTED_LANGUAGES