From c1c9f7dd7875641785e299f460337efabe1ef97b Mon Sep 17 00:00:00 2001 From: Davte Date: Mon, 22 Jul 2019 12:36:38 +0200 Subject: [PATCH] Language suppport for /language command --- davtelepot/__init__.py | 2 +- davtelepot/languages.py | 58 ++++++++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/davtelepot/__init__.py b/davtelepot/__init__.py index 1e9049d..c27680d 100644 --- a/davtelepot/__init__.py +++ b/davtelepot/__init__.py @@ -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" diff --git a/davtelepot/languages.py b/davtelepot/languages.py index 8a221a1..d479028 100644 --- a/davtelepot/languages.py +++ b/davtelepot/languages.py @@ -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': "Choose a language", + 'it': "Seleziona una lingua" + } + } +} + 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):