Language suppport for /language command

This commit is contained in:
Davte 2019-07-22 12:36:38 +02:00
parent 3f4417b84b
commit c1c9f7dd78
2 changed files with 38 additions and 22 deletions

View File

@ -14,7 +14,7 @@ __author__ = "Davide Testa"
__email__ = "davide@davte.it"
__credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
__license__ = "GNU General Public License v3.0"
__version__ = "2.1.28"
__version__ = "2.1.29"
__maintainer__ = "Davide Testa"
__contact__ = "t.me/davte"

View File

@ -7,6 +7,35 @@ import logging
# Third party modules
from .utilities import extract, make_button, make_inline_keyboard
default_language_messages = {
'language_command': {
'name': {
'en': "/language",
'it': "/lingua"
},
'alias': {
'en': "Language 🗣",
'it': "Lingua 🗣"
},
'description': {
'en': "Change language settings",
'it': "Cambia le impostazioni della lingua"
}
},
'language_button': {
'description': {
'en': "Change language settings",
'it': "Cambia le impostazioni della lingua"
}
},
'language_panel': {
'text': {
'en': "<b>Choose a language</b>",
'it': "<b>Seleziona una lingua</b>"
}
}
}
class MultiLanguageObject(object):
"""Make bot inherit from this class to make it support multiple languages.
@ -250,7 +279,7 @@ async def _language_button(bot, update, user_record, data):
def init(
bot, language=None, language_messages=dict(), show_in_keyboard=True,
bot, language_messages=None, show_in_keyboard=True,
supported_languages={}
):
"""Set language support to `bot`."""
@ -258,47 +287,34 @@ def init(
"Bot must be a MultiLanguageObject subclass in order to support "
"multiple languages."
)
if language_messages is None:
language_messages = default_language_messages
bot.messages['language'] = language_messages
if language is None:
language = bot.default_language
bot.add_supported_languages(supported_languages)
language_command_name = bot.get_message(
'language', 'language_command', 'name',
language=language, default_message='/language'
)
language_command_alias = bot.get_message(
'language', 'language_command', 'alias',
language=language, default_message=None
language='en', default_message=None
)
if language_command_alias is None:
aliases = []
else:
aliases = [language_command_alias]
language_command_description = bot.get_message(
'language', 'language_command', 'description',
language=language, default_message=''
)
@bot.command(
command=language_command_name, aliases=aliases,
command='/language',
aliases=aliases,
show_in_keyboard=show_in_keyboard,
description=language_command_description,
description=language_messages['language_command']['description'],
authorization_level='everybody'
)
async def language_command(bot, update, user_record):
return await _language_command(bot, update, user_record)
language_button_description = bot.get_message(
'language', 'language_button', 'description',
language=language, default_message=''
)
@bot.button(
prefix='lang:///',
separator='|',
description=language_button_description,
description=language_messages['language_button']['description'],
authorization_level='everybody'
)
async def language_button(bot, update, user_record, data):