diff --git a/app/bot.py b/app/bot.py index 2ea9621..f484bc8 100644 --- a/app/bot.py +++ b/app/bot.py @@ -26,19 +26,15 @@ import telebot from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, KeyboardButton import sys - +from os import path sys.path.append('../') from app.db_manager import DatabaseQueries, connect_db, close_db # noqa - from app.encryption import getting_hash, get_salt # noqa - from app.validation import (date_validation, value_validation, description_validation, username_validation, password_validation, category_validation) # noqa - from app.create_csv import create_csv_file, get_file_size_kb, get_file_checksum # noqa - -from app.dictionary import Dictionary, Stickers # noqa +from app.dictionary import Stickers, receive_translation # noqa from app.time_checking import timeit # noqa from app.logger import setup_logger # noqa @@ -892,7 +888,7 @@ def check_user_language(telegram_id: int) -> str: def get_phrase_by_language(language: str, phrase: str) -> str: - return Dictionary.receive_translation(language, phrase) + return receive_translation(language, phrase) @bot.message_handler(content_types=['text']) diff --git a/app/dictionary.py b/app/dictionary.py index f5ad508..f7510f8 100644 --- a/app/dictionary.py +++ b/app/dictionary.py @@ -1,9 +1,11 @@ """ - This package is used to switch languages in the chatbot. + This package is used to switch localization in the chatbot. Also stores emoji and sticker codes for use inside the bot. """ +import json +from os import path from app.logger import setup_logger logger_dict = setup_logger("logs/DictLog.log", "dict_loger") @@ -49,847 +51,24 @@ def get_sticker_by_id(sticker_id): return Stickers._stickers.get(sticker_id) -class Dictionary: +def receive_translation(language: str, phrase: str) -> str: """ - Each language has its own dictionary, the keys are the same for all dictionaries. + The function takes as input a phrase that the chatbot responds to the user in the selected language + (also passed in the parameters). + These phrases are known in advance and are found along with translations in the localization dictionary. - en - English - ru - Russian - es - Espanol - fr - French - de - German - is - Icelandic - - To generate new dictionaries, refer to the dictionary_generate.py file - and don't forget to add your language to the list of allowed languages in the validator. + :param language: one of the valid language codes -> en / ru / es / fr / de / is. + :param phrase: string that is a key in the language dictionary. + :return: value in the json-dictionary in the selected language. """ - _languages: dict = \ - { - "en": - { - "misunderstanding": "I don't understand you", - "greetings": "Hello", - "our_user": "We recognized you. Welcome!", - "unknown_user": "We didn't recognize you. Would you like to register in the project?", - "help": "Help", - "change_language": "Change the language", - "great": "Great!", - "language_changed": "Language changed", - "premium": "Premium", - "link_github": "Link to GitHub", - "click_need_button": "Click the button you need", - "table_manage": "Table manage", - "group_settings": "Group settings", - "my": "My", - "get_my_token": "Get my token", - "register": "I want to register", - "view_table": "View table", - "add_income": "Add income", - "add_expense": "Add expense", - "del_record": "Delete record", - "get_csv": "Get CSV-file", - "back": "Back", - "group_users": "Group users", - "delete_account": "Delete my account", - "delete_group": "Delete group", - "change_owner": "Change owner", - "delete_user": "Delete user", - "your": "Your", - "project_on_github": "Our open-source project on GitHub", - "choose_language": "Choose a language", - "invalid_value": "Invalid value", - "invalid_date": "Invalid date format", - "group_token": "Your group token", - "unknown": "unknown", - "YES": "YES", - "NO": "NO", - "error_change_language": "An error occurred while changing the language", - "contact_support": "Please contact support!", - "enter_expense": "Enter the value of expense", - "enter_income": "Enter the value of income", - "set_date": "Set the date", - "supermarkets": "Supermarkets", - "restaurants": "Restaurants", - "clothes": "Clothes", - "medicine": "Medicine", - "transport": "Transport", - "devices": "Devices", - "education": "Education", - "services": "Services", - "travel": "Travel", - "housing": "Housing", - "investments": "Investments", - "hobby": "Hobby", - "jewelry": "Jewelry", - "salary": "Salary", - "other": "Other", - "select_category": "Select category", - "add_description": "Add description (no more than 50 characters)", - "no_description": "No description", - "entry_add_success": "Entry added successfully", - "entry_record_id": "Enter the record ID", - "enry_record_id_error": "There is no record with this ID", - "back_to_menu": "Back to menu", - "success": "Successfully", - "enter_username": "Enter username (3-20 characters)", - "already_registered": "You are already registered", - "enter_password": "Enter your password (8-32 characters / at least 1 number and 1 letter)", - "invalid_username": "Invalid username format or this username already exists!", - "enter_token": "Enter group token:", - "none_token": "(if you don't have one, enter \"None\")", - "invalid_password_format": "Invalid password format!", - "congratulations": "Congratulations on registering!", - "create_new_user_error": "Error creating a new user", - "group_is_full": "There is no group with this token or it is full. " - "Contact the group members for more information, or create your own group!", - "invalid_token_format": "This is invalid token format", - "unrecognized_language": "We were unable to recognize this language", - "try_again": "Try again", - "support_information": "soon", - "total": "Total", - "username": "Username", - "transfer": "Transactions", - "category": "Category", - "datetime": "DateTime", - "description": "Description", - "table_is_empty": "Your records table is empty", - "csv_not_found_error": "Error. Try again later or report the problem to technical support.", - "owner": "owner", - "small_group_exception": "There is only 1 member in this group.", - "username_new_owner": "Write below the name of the user (from the list) " - "you want to assign as the owner of the group", - "not_owner_exception": "Only the group owner can change the group owner.", - "current_owner_exception": "This is the current owner of the group.", - "owner_has_been_changed": "Group owner has been changed.", - "error_change_owner": "An error occurred while changing the group owner.", - "check_correct_username": "Check the correct spelling of the username.", - "confirmation_delete": "Are you sure you want to remove the account?", - "owner_try_delete_account": "You are the owner of the group: either transfer the rights to manage " - "another participant, or delete the group.", - "parting": "We respect your choice, thanks to be with us!", - "account_is_deleted": "Your account is completely deleted!", - "stay_with_us": "We are glad that you stay with us!", - "unknown_message": "Your message is not clear to us, please, " - "when choosing, use the buttons at the bottom of the screen.", - "exception_one_user_in_group": "There are no users in the group except you.", - "select_to_delete": "If you want to delete your account, select the appropriate item in the menu.", - "select_new_owner": "Below write the name of the user (from the list) " - "you want to remove from the group:", - "owner_privileges": "Only the group owner can delete users.", - "user_removed": "The user has been successfully removed from the group.", - "error_user_delete": "An error occurred while deleting a user.", - "unknown_user_in_group": "There is no such username in the group.", - "are_you_sure": "Are you sure you want to delete the group?", - "delete_table": "(A table and all participants will be deleted)", - "not_deleted_by_owner": "The group can only be removed by its owner - " - "contact the owner of the group, or delete the account.", - "remove_completed": "The group and users are completely deleted!", - "not_register": "You are not register.", - "file_size": "File size", - "hashsum": "Checksum", - "unsupported_language": "We're sorry, but this language is not supported. " - "Select from those presented in the button menu.", - "charity": "Charity", - "invalid_category": "Incorrect category selected.", - "entry_add_error": "Error adding a new transaction.", - "start_after_change_language": "To change the language correctly, " - "please restart the bot by clicking on the /start button.", - "data_is_safe": "Your data will not be harmed!" - }, - - "ru": - { - "misunderstanding": "Я не понимаю тебя", - "greetings": "Привет", - "our_user": "Мы узнали вас. Добро пожаловать!", - "unknown_user": "Мы вас не узнали. Хотите зарегистрироваться в проекте?", - "help": "Помощь", - "change_language": "Изменить язык", - "great": "Отлично!", - "language_changed": "Язык изменен", - "premium": "Премиум", - "link_github": "Ссылка на GitHub", - "click_need_button": "Нажмите на нужную вам кнопку", - "table_manage": "Управление таблицей", - "group_settings": "Настройки группы", - "my": "Мой", - "get_my_token": "Получить мой токен", - "register": "Я хочу зарегистрироваться", - "view_table": "Посмотреть таблицу", - "add_income": "Добавить доход", - "add_expense": "Добавить расходы", - "del_record": "Удалить запись", - "get_csv": "Получить CSV-файл", - "back": "Назад", - "group_users": "Пользователи группы", - "delete_account": "Удалить мой аккаунт", - "delete_group": "Удалить группу", - "change_owner": "Сменить владельца", - "delete_user": "Удалить пользователя", - "your": "Ваш", - "project_on_github": "Наш проект с открытым исходным кодом на GitHub", - "choose_language": "Выберите язык", - "invalid_value": "Неверное значение", - "invalid_date": "Неверный формат даты", - "group_token": "Ваш групповой токен", - "unknown": "неизвестно", - "YES": "ДА", - "NO": "НЕТ", - "error_change_language": "Произошла ошибка при смене языка", - "contact_support": "Пожалуйста, свяжитесь со службой поддержки!", - "enter_expense": "Введите сумму расходов", - "enter_income": "Введите величину дохода", - "set_date": "Назначить дату", - "supermarkets": "Супермаркеты", - "restaurants": "Рестораны", - "clothes": "Одежда", - "medicine": "Лекарство", - "transport": "Транспорт", - "devices": "Устройства", - "education": "Образование", - "services": "Услуги", - "travel": "Путешествия", - "housing": "Жилье", - "investments": "Вложения", - "hobby": "Хобби", - "jewelry": "Ювелирные изделия", - "salary": "Зарплата", - "other": "Другое", - "select_category": "Выберите категорию:", - "add_description": "Добавить описание (не более 50 символов)", - "no_description": "без описания", - "entry_add_success": "Запись успешно добавлена", - "entry_record_id": "Введите идентификатор записи", - "enry_record_id_error": "Нет записей с этим идентификатором", - "back_to_menu": "Назад в меню", - "success": "Успешно", - "enter_username": "Введите имя пользователя (3-20 символов)", - "already_registered": "Вы уже зарегистрированы", - "enter_password": "Введите свой пароль (8-32 символа / минимум 1 цифра и 1 буква)", - "invalid_username": "Неверный формат имени пользователя или это имя пользователя уже существует!", - "enter_token": "Введите токен группы:", - "none_token": "(если у вас его нет, введите \"None\")", - "invalid_password_format": "Неверный формат пароля!", - "congratulations": "Поздравляем с регистрацией!", - "create_new_user_error": "Ошибка создания нового пользователя", - "group_is_full": "Группы с данным токеном не существует или она заполнена. Свяжитесь с участниками " - "группы для получения дополнительной информации или создайте свою группу!", - "invalid_token_format": "Неверный формат токена.", - "unrecognized_language": "Мы не смогли распознать этот язык", - "try_again": "Попробуйте еще раз", - "support_information": "скоро", - "total": "Всего", - "username": "Имя пользователя", - "transfer": "Транзакция", - "category": "Категория", - "datetime": "ДатаВремя", - "description": "Описание", - "table_is_empty": "Ваша таблица записей пуста", - "csv_not_found_error": "Ошибка. Повторите попытку позже " - "или сообщите о проблеме в службу технической поддержки.", - "owner": "владелец", - "small_group_exception": "В этой группе только 1 участник.", - "username_new_owner": "Ниже напишите имя пользователя (из списка), " - "которого хотите назначить владельцем группы.", - "not_owner_exception": "Изменить владельца группы может только текущий владелец группы.", - "current_owner_exception": "Это текущий владелец группы.", - "owner_has_been_changed": "Владелец группы изменён.", - "error_change_owner": "Произошла ошибка при смене владельца группы.", - "check_correct_username": "Проверьте правильность написания имени пользователя.", - "confirmation_delete": "Вы уверены, что хотите удалить аккаунт?", - "owner_try_delete_account": "Вы являетесь владельцем группы: либо передайте права на управление " - "другому участнику, либо удалите группу.", - "parting": "Мы уважаем ваш выбор, спасибо, что вы с нами!", - "account_is_deleted": "Ваш аккаунт полностью удален!", - "stay_with_us": "Мы рады, что вы остаетесь с нами!", - "unknown_message": "Нам непонятно Ваше сообщение, пожалуйста, " - "при выборе используйте кнопки внизу экрана.", - "exception_one_user_in_group": "В группе кроме вас нет пользователей.", - "select_to_delete": "Если вы хотите удалить свою учетную запись, " - "выберите соответствующий пункт в меню.", - "select_new_owner": "Ниже напишите имя пользователя (из списка), " - "которого хотите удалить из группы:", - "owner_privileges": "Удалять пользователей может только владелец группы.", - "user_removed": "Пользователь успешно удален из группы.", - "error_user_delete": "Произошла ошибка при удалении пользователя.", - "unknown_user_in_group": "В группе нет пользователя с таким именем.", - "are_you_sure": "Вы уверены, что хотите удалить группу?", - "delete_table": "(Стол и все участники будут удалены)", - "not_deleted_by_owner": "Удалить группу может только ее владелец — " - "обратитесь к владельцу группы или удалите аккаунт.", - "remove_completed": "Группа и пользователи полностью удалены!", - "not_register": "Вы не зарегистрированы.", - "file_size": "Размер файла", - "hashsum": "Хэш-сумма", - "unsupported_language": "Извините, но данный язык не поддерживается." - " Выбирайте из кнопок, представленных в нижнем меню", - "charity": "Благотворительность", - "invalid_category": "Выбрана некорректная категория", - "entry_add_error": "Ошибка добавления новой транзакции.", - "start_after_change_language": "Чтобы корректно изменить язык, " - "перезапустите бота, нажав кнопку /start.", - "data_is_safe": "Ваши данные не пострадают!" - }, - - "es": - { - "misunderstanding": "No lo comprendo", - "greetings": "¡Hola", - "our_user": "Te reconocimos. ¡Bienvenido!", - "unknown_user": "No te reconocimos. ¿Quieres registrarte en el proyecto?", - "help": "Ayuda", - "change_language": "Cambia el idioma", - "great": "¡Excelente!", - "language_changed": "Idioma cambiado", - "premium": "de primera calidad", - "link_github": "Enlace a GitHub", - "click_need_button": "Haga clic en el botón que necesita", - "table_manage": "Gestión de mesa", - "group_settings": "Configuración de grupo", - "my": "Mi", - "get_my_token": "Obtener mi ficha", - "register": "Quiero registrarme", - "view_table": "Ver tabla", - "add_income": "Agregar ingresos", - "add_expense": "Agregar gasto", - "del_record": "Eliminar el registro", - "get_csv": "Obtener archivo CSV", - "back": "Atrás", - "group_users": "Usuarios del grupo", - "delete_account": "Borrar mi cuenta", - "delete_group": "Eliminar grupo", - "change_owner": "Cambio de propietario", - "delete_user": "Borrar usuario", - "your": "Tu", - "project_on_github": "Nuestro proyecto de código abierto en GitHub", - "choose_language": "Elige un idioma", - "invalid_value": "Valor no válido", - "invalid_date": "Formato de fecha no válido", - "group_token": "Tu ficha de grupo", - "unknown": "desconocido", - "YES": "SÍ", - "NO": "NO", - "error_change_language": "Se produjo un error al cambiar el idioma.", - "contact_support": "¡Por favor contacte al soporte!", - "enter_expense": "Ingrese el valor del gasto", - "enter_income": "Introduzca el valor de los ingresos", - "set_date": "Establecer la fecha", - "supermarkets": "supermercados", - "restaurants": "Restaurantes", - "clothes": "Ropa", - "medicine": "Medicamento", - "transport": "Transporte", - "devices": "Dispositivos", - "education": "Educación", - "services": "Servicios", - "travel": "Viajar", - "housing": "Alojamiento", - "investments": "Inversiones", - "hobby": "Pasatiempo", - "jewelry": "Joyas", - "salary": "Salario", - "other": "Otro", - "select_category": "Selecciona una categoría", - "add_description": "Agregar descripción (no más de 50 caracteres)", - "no_description": "Sin descripción", - "entry_add_success": "Entrada agregada exitosamente", - "entry_record_id": "Introduzca el ID del registro", - "enry_record_id_error": "No hay ningún registro con este ID", - "back_to_menu": "Volver al menú", - "success": "Exitosamente", - "enter_username": "Ingrese el nombre de usuario (3-20 caracteres)", - "already_registered": "Usted ya está registrado", - "enter_password": "Ingrese su contraseña (8-32 caracteres / al menos 1 número y 1 letra)", - "invalid_username": "¡Formato de nombre de usuario no válido o este nombre de usuario ya existe!", - "enter_token": "Ingrese el token de grupo:", - "none_token": "(si no tiene uno, ingrese \"None\")", - "invalid_password_format": "¡Formato de contraseña no válido!", - "congratulations": "¡Felicitaciones por registrarse!", - "create_new_user_error": "Error al crear un nuevo usuario", - "group_is_full": "No hay ningún grupo con este token o está lleno. ¡Póngase en contacto " - "con los miembros del grupo para obtener más información o cree su propio grupo!", - "invalid_token_format": "Este es un formato de token no válido.", - "unrecognized_language": "No pudimos reconocer este idioma.", - "try_again": "Intentar otra vez", - "support_information": "pronto", - "total": "Total", - "username": "Nombre de usuario", - "transfer": "Transacción", - "category": "Categoría", - "datetime": "Fecha y hora", - "description": "Descripción", - "table_is_empty": "Tu tabla de registros está vacía", - "csv_not_found_error": "Error. Vuelva a intentarlo más tarde o informe el problema " - "al soporte técnico.", - "owner": "dueño", - "small_group_exception": "Sólo hay 1 miembro en este grupo.", - "username_new_owner": "Escribe debajo el nombre del usuario (de la lista) que deseas asignar " - "como propietario del grupo.", - "not_owner_exception": "Sólo el propietario del grupo puede cambiar el propietario del grupo.", - "current_owner_exception": "Este es el actual propietario del grupo.", - "owner_has_been_changed": "Se ha cambiado el propietario del grupo.", - "error_change_owner": "Se produjo un error al cambiar el propietario del grupo.", - "check_correct_username": "Verifique la ortografía correcta del nombre de usuario.", - "confirmation_delete": "¿Estás seguro de que deseas eliminar la cuenta?", - "owner_try_delete_account": "Usted es el propietario del grupo: transfiera los derechos para " - "administrar a otro participante o elimine el grupo.", - "parting": "Respetamos tu elección, ¡gracias por estar con nosotros!", - "account_is_deleted": "¡Tu cuenta está completamente eliminada!", - "stay_with_us": "¡Nos alegra que te quedes con nosotros!", - "unknown_message": "Su mensaje no nos queda claro, por favor, al elegir, utilice los botones " - "en la parte inferior de la pantalla.", - "exception_one_user_in_group": "No hay ningún usuario en el grupo excepto tú.", - "select_to_delete": "Si desea eliminar su cuenta, seleccione el elemento apropiado en el menú.", - "select_new_owner": "A continuación escribe el nombre del usuario (de la lista) que deseas " - "eliminar del grupo:", - "owner_privileges": "Sólo el propietario del grupo puede eliminar usuarios.", - "user_removed": "El usuario ha sido eliminado exitosamente del grupo.", - "error_user_delete": "Se produjo un error al eliminar un usuario.", - "unknown_user_in_group": "No existe tal nombre de usuario en el grupo.", - "are_you_sure": "¿Estás seguro de que quieres eliminar el grupo?", - "delete_table": "(Se eliminará una mesa y todos los participantes)", - "not_deleted_by_owner": "El grupo solo puede ser eliminado por su propietario: comuníquese con " - "el propietario del grupo o elimine la cuenta.", - "remove_completed": "¡El grupo y los usuarios están completamente eliminados!", - "not_register": "No estás registrado.", - "file_size": "Tamaño del archivo", - "hashsum": "Suma de comprobación", - "unsupported_language": "Lo sentimos, pero este idioma no es compatible." - " Seleccione entre los presentados en el menú de botones.", - "charity": "Caridad", - "invalid_category": "Categoría incorrecta seleccionada.", - "entry_add_error": "Error al agregar una nueva transacción.", - "start_after_change_language": "Para cambiar el idioma correctamente, " - "reinicie el bot haciendo clic en el botón /start.", - "data_is_safe": "¡Tus datos no se verán perjudicados!" - }, + localization_dir_path: str = path.join(path.dirname(__file__), f"localization/{language}.json") + with open(localization_dir_path, encoding='utf-8') as json_file: + json_dict = json_file.read() - "de": - { - "misunderstanding": "Ich verstehe Sie nicht", - "greetings": "Hallo", - "our_user": "Wir haben dich erkannt. Willkommen!", - "unknown_user": "Wir haben dich nicht erkannt. Möchten Sie sich im Projekt registrieren?", - "help": "Helfen", - "change_language": "Ändere die Sprache", - "great": "Großartig!", - "language_changed": "Sprache geändert", - "premium": "Prämie", - "link_github": "Link zu GitHub", - "click_need_button": "Klicken Sie auf die Schaltfläche, die Sie benötigen", - "table_manage": "Tischverwaltung", - "group_settings": "Gruppeneinstellungen", - "my": "Mein", - "get_my_token": "Holen Sie sich meinen Token", - "register": "Ich möchte mich registrieren", - "view_table": "Tabelle ansehen", - "add_income": "Einkommen hinzufügen", - "add_expense": "Kosten hinzufügen", - "del_record": "Aufzeichnung löschen", - "get_csv": "Holen Sie sich die CSV-Datei", - "back": "Zurück", - "group_users": "Gruppenbenutzer", - "delete_account": "Mein Konto löschen", - "delete_group": "Gruppe löschen", - "change_owner": "Besitzer wechseln", - "delete_user": "Benutzer löschen", - "your": "Dein", - "project_on_github": "Unser Open-Source-Projekt auf GitHub", - "choose_language": "Wählen Sie eine Sprache", - "invalid_value": "Ungültiger Wert", - "invalid_date": "ungültiges Datumsformat", - "group_token": "Ihr Gruppen-Token", - "unknown": "Unbekannt", - "YES": "JA", - "NO": "NEIN", - "error_change_language": "Beim Ändern der Sprache ist ein Fehler aufgetreten", - "contact_support": "Bitte kontaktieren Sie den Support!", - "enter_expense": "Geben Sie den Kostenwert ein", - "enter_income": "Geben Sie den Einkommenswert ein", - "set_date": "Datum einstellen", - "supermarkets": "Supermärkte", - "restaurants": "Restaurants", - "clothes": "Kleidung", - "medicine": "Medizin", - "transport": "Transport", - "devices": "Geräte", - "education": "Ausbildung", - "services": "Dienstleistungen", - "travel": "Reisen", - "housing": "Hauskosten", - "investments": "Investitionen", - "hobby": "Hobby", - "jewelry": "Schmuck", - "salary": "Gehalt", - "other": "Andere", - "select_category": "Wählen Sie eine Kategorie", - "add_description": "Beschreibung hinzufügen (nicht mehr als 50 Zeichen)", - "no_description": "Keine Beschreibung", - "entry_add_success": "Eintrag erfolgreich hinzugefügt", - "entry_record_id": "Geben Sie die Datensatz-ID ein", - "enry_record_id_error": "Es gibt keinen Datensatz mit dieser ID", - "back_to_menu": "Zurück zum Menü", - "success": "Erfolgreich", - "enter_username": "Benutzernamen eingeben (3-20 Zeichen)", - "already_registered": "Du bist bereits registriert", - "enter_password": "Geben Sie Ihr Passwort ein (8-32 Zeichen / mindestens 1 Zahl und 1 Buchstabe)", - "invalid_username": "Ungültiges Benutzernamenformat oder dieser Benutzername existiert bereits!", - "enter_token": "Gruppentoken eingeben:", - "none_token": "(Wenn Sie noch keines haben, geben Sie \"None\" ein)", - "invalid_password_format": "Ungültiges Kennwort Format!", - "congratulations": "Herzlichen Glückwunsch zur Registrierung!", - "create_new_user_error": "Fehler beim Erstellen eines neuen Benutzers", - "group_is_full": "Es gibt keine Gruppe mit diesem Token oder es ist voll. Kontaktieren Sie die " - "Gruppenmitglieder für weitere Informationen oder gründen Sie Ihre eigene Gruppe!", - "invalid_token_format": "Dies ist ein ungültiges Tokenformat", - "unrecognized_language": "Wir konnten diese Sprache nicht erkennen", - "try_again": "Versuchen Sie es erneut", - "support_information": "bald", - "total": "Gesamt", - "username": "Nutzername", - "transfer": "Transaktionen", - "category": "Kategorie", - "datetime": "Terminzeit", - "description": "Beschreibung", - "table_is_empty": "Ihre Datensatztabelle ist leer", - "csv_not_found_error": "Fehler. Versuchen Sie es später erneut oder melden Sie das Problem " - "dem technischen Support.", - "owner": "Eigentümer", - "small_group_exception": "Es gibt nur 1 Mitglied in dieser Gruppe.", - "username_new_owner": "Schreiben Sie unten den Namen des Benutzers (aus der Liste), den Sie " - "als Eigentümer der Gruppe zuweisen möchten", - "not_owner_exception": "Nur der Gruppeneigentümer kann den Gruppeneigentümer ändern.", - "current_owner_exception": "Dies ist der aktuelle Eigentümer der Gruppe.", - "owner_has_been_changed": "Der Gruppeneigentümer wurde geändert.", - "error_change_owner": "Beim Ändern des Gruppeneigentümers ist ein Fehler aufgetreten.", - "check_correct_username": "Überprüfen Sie die korrekte Schreibweise des Benutzernamens.", - "confirmation_delete": "Möchten Sie das Konto wirklich entfernen?", - "owner_try_delete_account": "Sie sind der Eigentümer der Gruppe: Übertragen Sie entweder die " - "Rechte zur Verwaltung eines anderen Teilnehmers oder löschen " - "Sie die Gruppe.", - "parting": "Wir respektieren Ihre Entscheidung, danke, dass Sie bei uns sind!", - "account_is_deleted": "Ihr Konto ist vollständig gelöscht!", - "stay_with_us": "Wir freuen uns, dass Sie bei uns bleiben!", - "unknown_message": "Ihre Nachricht ist für uns nicht klar. Bitte verwenden Sie bei der Auswahl " - "die Schaltflächen am unteren Bildschirmrand.", - "exception_one_user_in_group": "Außer Ihnen gibt es in der Gruppe keine Benutzer.", - "select_to_delete": "Wenn Sie Ihr Konto löschen möchten, wählen Sie den entsprechenden " - "Punkt im Menü aus.", - "select_new_owner": "Geben Sie unten den Namen des Benutzers (aus der Liste) ein, den Sie aus " - "der Gruppe entfernen möchten:", - "owner_privileges": "Nur der Gruppeneigentümer kann Benutzer löschen.", - "user_removed": "Der Benutzer wurde erfolgreich aus der Gruppe entfernt.", - "error_user_delete": "Beim Löschen eines Benutzers ist ein Fehler aufgetreten.", - "unknown_user_in_group": "In der Gruppe gibt es keinen solchen Benutzernamen.", - "are_you_sure": "Sind Sie sicher, dass Sie die Gruppe löschen möchten?", - "delete_table": "(Eine Tabelle und alle Teilnehmer werden gelöscht)", - "not_deleted_by_owner": "Die Gruppe kann nur von ihrem Besitzer entfernt werden – wenden Sie sich " - "an den Besitzer der Gruppe oder löschen Sie das Konto.", - "remove_completed": "Die Gruppe und Benutzer werden vollständig gelöscht!", - "not_register": "Sie sind nicht registriert.", - "file_size": "Dateigröße", - "hashsum": "Prüfsumme", - "unsupported_language": "Es tut uns leid, aber diese Sprache wird nicht unterstützt." - " Wählen Sie aus den im Schaltflächenmenü angezeigten Optionen aus.", - "charity": "Wohltätigkeit", - "invalid_category": "Falsche Kategorie ausgewählt.", - "entry_add_error": "Fehler beim Hinzufügen einer neuen Transaktion.", - "start_after_change_language": "Um die Sprache korrekt zu ändern, starten Sie bitte den Bot neu, " - "indem Sie auf die Schaltfläche /start klicken.", - "data_is_safe": "Ihre Daten werden nicht beschädigt!" - }, - - "fr": - { - "misunderstanding": "Je ne te comprends pas", - "greetings": "Bonjour", - "our_user": "Nous vous avons reconnu. Accueillir!", - "unknown_user": "Nous ne vous avons pas reconnu. Vous souhaitez vous inscrire au projet?", - "help": "Aide", - "change_language": "Changer la langue", - "great": "Super!", - "language_changed": "Langue modifiée", - "premium": "prime", - "link_github": "Lien vers GitHub", - "click_need_button": "Cliquez sur le bouton dont vous avez besoin", - "table_manage": "Gestion des tables", - "group_settings": "Paramètres du groupe", - "my": "Mon / Ma", - "get_my_token": "Récupérer mon jeton", - "register": "Je veux m'inscrire", - "view_table": "Voir le tableau", - "add_income": "Ajouter un revenu", - "add_expense": "Ajouter une dépense", - "del_record": "Supprimer l'enregistrement", - "get_csv": "Obtenir un fichier CSV", - "back": "Dos", - "group_users": "Groupe d'utilisateurs", - "delete_account": "Supprimer mon compte", - "delete_group": "Supprimer le groupe", - "change_owner": "Changer de propriétaire", - "delete_user": "Supprimer l'utilisateur", - "your": "Ton", - "project_on_github": "Notre projet open source sur GitHub", - "choose_language": "Choisissez une langue", - "invalid_value": "valeur invalide", - "invalid_date": "Format de date invalide", - "group_token": "Votre jeton de groupe", - "unknown": "inconnu", - "YES": "OUI", - "NO": "NON", - "error_change_language": "Une erreur s'est produite lors du changement de langue", - "contact_support": "Veuillez contacter l'assistance!", - "enter_expense": "Entrez la valeur de la dépense", - "enter_income": "Entrez la valeur du revenu", - "set_date": "Définir la date", - "supermarkets": "Supermarchés", - "restaurants": "Restaurants", - "clothes": "Vêtements", - "medicine": "Médecine", - "transport": "Transport", - "devices": "Dispositifs", - "education": "Éducation", - "services": "Prestations de service", - "travel": "Voyage", - "housing": "Logement", - "investments": "Investissements", - "hobby": "Passe-temps", - "jewelry": "Bijoux", - "salary": "Salaire", - "other": "Autre", - "select_category": "Sélectionnez une catégorie", - "add_description": "Ajouter une description (pas plus de 50 caractères)", - "no_description": "Pas de description", - "entry_add_success": "Entrée ajoutée avec succès", - "entry_record_id": "Entrez l'ID de l'enregistrement", - "enry_record_id_error": "Il n'y a aucun enregistrement avec cet identifiant", - "back_to_menu": "Retour au menu", - "success": "Avec succès", - "enter_username": "Entrez le nom d'utilisateur (3 à 20 caractères)", - "already_registered": "Vous êtes déjà inscrit", - "enter_password": "Entrez votre mot de passe (8 à 32 caractères / au moins 1 chiffre et 1 lettre)", - "invalid_username": "Format de nom d'utilisateur invalide ou ce nom d'utilisateur existe déjà!", - "enter_token": "Entrez le jeton de groupe:", - "none_token": "(si vous n'en avez pas, saisissez \"None\")", - "invalid_password_format": "Format de mot de passe invalide!", - "congratulations": "Félicitations pour votre inscription!", - "create_new_user_error": "Erreur lors de la création d'un nouvel utilisateur", - "group_is_full": "Il n'y a aucun groupe avec ce jeton ou il est complet. Contactez les membres du " - "groupe pour plus d'informations, ou créez votre propre groupe !", - "invalid_token_format": "Ce format de jeton n'est pas valide", - "unrecognized_language": "Nous n'avons pas pu reconnaître cette langue", - "try_again": "Essayer à nouveau", - "support_information": "bientôt", - "total": "Total", - "username": "Nom d'utilisateur", - "transfer": "Transactions", - "category": "Catégorie", - "datetime": "DateHeure", - "description": "Description", - "table_is_empty": "Votre table d'enregistrements est vide", - "csv_not_found_error": "Erreur. Réessayez plus tard ou signalez le problème au support technique.", - "owner": "propriétaire", - "small_group_exception": "Il n'y a qu'un seul membre dans ce groupe.", - "username_new_owner": "Écrivez ci-dessous le nom de l'utilisateur (dans la liste) " - "que vous souhaitez désigner comme propriétaire du groupe", - "not_owner_exception": "Seul le propriétaire du groupe peut modifier le propriétaire du groupe.", - "current_owner_exception": "C'est l'actuel propriétaire du groupe.", - "owner_has_been_changed": "Le propriétaire du groupe a été modifié.", - "error_change_owner": "Une erreur s'est produite lors du changement de propriétaire du groupe.", - "check_correct_username": "Vérifiez l'orthographe correcte du nom d'utilisateur.", - "confirmation_delete": "Êtes-vous sûr de vouloir supprimer le compte?", - "owner_try_delete_account": "Vous êtes propriétaire du groupe : soit transférez les droits de " - "gestion d'un autre participant, soit supprimez le groupe.", - "parting": "Nous respectons votre choix, merci d'être parmi nous !", - "account_is_deleted": "Votre compte est complètement supprimé !", - "stay_with_us": "Nous sommes heureux que vous restiez avec nous!", - "unknown_message": "Votre message ne nous apparaît pas clair, merci, " - "lors de votre choix, d'utiliser les boutons en bas de l'écran.", - "exception_one_user_in_group": "Il n'y a aucun utilisateur dans le groupe à part vous.", - "select_to_delete": "Si vous souhaitez supprimer votre compte, sélectionnez l'élément approprié " - "dans le menu.", - "select_new_owner": "Ci-dessous, écrivez le nom de l'utilisateur (de la liste) que vous souhaitez " - "supprimer du groupe:", - "owner_privileges": "Seul le propriétaire du groupe peut supprimer des utilisateurs.", - "user_removed": "L'utilisateur a été supprimé avec succès du groupe.", - "error_user_delete": "Une erreur s'est produite lors de la suppression d'un utilisateur.", - "unknown_user_in_group": "Il n'existe pas de nom d'utilisateur de ce type dans le groupe.", - "are_you_sure": "Êtes-vous sûr de vouloir supprimer le groupe?", - "delete_table": "(Une table et tous les participants seront supprimés)", - "not_deleted_by_owner": "Le groupe ne peut être supprimé que par son propriétaire - contactez le " - "propriétaire du groupe ou supprimez le compte.", - "remove_completed": "Le groupe et les utilisateurs sont complètement supprimés!", - "not_register": "Vous n'êtes pas inscrit.", - "file_size": "Taille du fichier", - "hashsum": "Somme de contrôle", - "unsupported_language": "Nous sommes désolés, mais cette langue n'est pas prise en charge." - " Sélectionnez parmi ceux présentés dans le menu des boutons.", - "charity": "Charité", - "invalid_category": "Mauvaise catégorie sélectionnée.", - "entry_add_error": "Erreur lors de l'ajout d'une nouvelle transaction.", - "start_after_change_language": "Pour changer correctement la langue, " - "veuillez redémarrer le bot en cliquant sur le bouton /start.", - "data_is_safe": "Vos données ne seront pas endommagées !" - }, - - "is": - { - "misunderstanding": "Ég skil þig ekki", - "greetings": "Halló", - "our_user": "Við þekktum þig. Velkominn!", - "unknown_user": "Við þekktum þig ekki. Viltu skrá þig í verkefnið?", - "help": "Hjálp", - "change_language": "Breyttu tungumálinu", - "great": "Frábært!", - "language_changed": "Tungumál breytt", - "premium": "yfirverði", - "link_github": "Tengill á GitHub", - "click_need_button": "Smelltu á hnappinn sem þú þarft", - "table_manage": "Tafla stjórna", - "group_settings": "Hópstillingar", - "my": "Mín", - "get_my_token": "Fáðu táknið mitt", - "register": "Ég vil skrá mig", - "view_table": "Skoða borð", - "add_income": "Bættu við tekjum", - "add_expense": "Bæta við kostnaði", - "del_record": "Eyða skráningu", - "get_csv": "Sæktu CSV-skrá", - "back": "Til baka", - "group_users": "Hópur notendur", - "delete_account": "Eyða reikningnum mínum", - "delete_group": "Eyða hópi", - "change_owner": "Skipta um eiganda", - "delete_user": "Eyða notanda", - "your": "Þinn", - "project_on_github": "Opinn uppspretta verkefni okkar á GitHub", - "choose_language": "Veldu tungumál", - "invalid_value": "Ógilt gildi", - "invalid_date": "Ógilt dagsetningarsnið", - "group_token": "Hóptáknið þitt", - "unknown": "Óþekktur", - "YES": "JÁ", - "NO": "NEI", - "error_change_language": "Villa kom upp þegar skipt var um tungumál", - "contact_support": "Vinsamlegast hafðu samband við þjónustudeild!", - "enter_expense": "Sláðu inn verðmæti kostnaðar", - "enter_income": "Sláðu inn verðmæti tekna", - "set_date": "Stilltu dagsetninguna", - "supermarkets": "Stórmarkaðir", - "restaurants": "Veitingastaðir", - "clothes": "Föt", - "medicine": "Lyf", - "transport": "Flutningur", - "devices": "Tæki", - "education": "Menntun", - "services": "Þjónusta", - "travel": "Ferðalög", - "housing": "Húsnæði", - "investments": "Fjárfestingar", - "hobby": "Áhugamál", - "jewelry": "Skartgripir", - "salary": "Laun", - "other": "Annað", - "select_category": "Veldu flokk", - "add_description": "Bæta við lýsingu (ekki meira en 50 stafir)", - "no_description": "engin lýsing", - "entry_add_success": "Færslu bætt við", - "entry_record_id": "Sláðu inn skráningarauðkenni", - "enry_record_id_error": "Það er engin skrá með þessu auðkenni", - "back_to_menu": "Aftur í valmynd", - "success": "Með góðum árangri", - "enter_username": "Sláðu inn notandanafn (3-20 stafir)", - "already_registered": "Þú ert nú þegar skráður", - "enter_password": "Sláðu inn lykilorðið þitt (8-32 stafir / að minnsta kosti 1 tala og 1 stafur)", - "invalid_username": "Ógilt notendanafnssnið eða þetta notendanafn er þegar til!", - "enter_token": "Sláðu inn hóplykil:", - "none_token": "(ef þú ert ekki með einn, sláðu inn \"None\")", - "invalid_password_format": "Ógilt lykilorðssnið!", - "congratulations": "Til hamingju með skráninguna!", - "create_new_user_error": "Villa við að búa til nýjan notanda", - "group_is_full": "Það er enginn hópur með þennan tákn eða hann er fullur. Hafðu samband við " - "hópmeðlimi til að fá frekari upplýsingar, eða búðu til þinn eigin hóp!", - "invalid_token_format": "Þetta er ógilt táknsnið", - "unrecognized_language": "Við gátum ekki þekkt þetta tungumál", - "try_again": "Reyndu aftur", - "support_information": "bráðum", - "total": "Samtals", - "username": "Notendanafn", - "transfer": "Viðskipti", - "category": "Flokkur", - "datetime": "DateTime", - "description": "Lýsing", - "table_is_empty": "Skráningartaflan þín er tóm", - "csv_not_found_error": "Villa. Reyndu aftur síðar eða tilkynntu vandamálið til tækniaðstoðar.", - "owner": "eiganda", - "small_group_exception": "Það er aðeins 1 meðlimur í þessum hópi.", - "username_new_owner": "Skrifaðu fyrir neðan nafn notandans (af listanum) sem þú vilt úthluta " - "sem eiganda hópsins", - "not_owner_exception": "Aðeins eigandi hópsins getur skipt um eiganda hópsins.", - "current_owner_exception": "Þetta er núverandi eigandi hópsins.", - "owner_has_been_changed": "Skipt hefur verið um eiganda hópsins.", - "error_change_owner": "Villa kom upp þegar skipt var um eiganda hópsins.", - "check_correct_username": "Athugaðu rétta stafsetningu notandanafns.", - "confirmation_delete": "Ertu viss um að þú viljir fjarlægja reikninginn?", - "owner_try_delete_account": "Þú ert eigandi hópsins: annað hvort færðu réttindi til að stjórna " - "öðrum þátttakanda eða eyddu hópnum.", - "parting": "Við virðum val þitt, takk fyrir að vera með okkur!", - "account_is_deleted": "Reikningnum þínum er algjörlega eytt!", - "stay_with_us": "Við erum ánægð með að þú gistir hjá okkur!", - "unknown_message": "Skilaboðin þín eru ekki skýr fyrir okkur, vinsamlegast, þegar þú velur, " - "notaðu hnappana neðst á skjánum.", - "exception_one_user_in_group": "Það eru engir notendur í hópnum nema þú.", - "select_to_delete": "Ef þú vilt eyða reikningnum þínum skaltu " - "velja viðeigandi atriði í valmyndinni.", - "select_new_owner": "Hér fyrir neðan skrifaðu nafn notandans (af listanum) sem þú vilt " - "fjarlægja úr hópnum:", - "owner_privileges": "Aðeins eigandi hópsins getur eytt notendum.", - "user_removed": "Notandinn hefur verið fjarlægður úr hópnum.", - "error_user_delete": "Villa kom upp við að eyða notanda.", - "unknown_user_in_group": "Það er ekkert slíkt notendanafn í hópnum.", - "are_you_sure": "Ertu viss um að þú viljir eyða hópnum?", - "delete_table": "(Tafla og öllum þátttakendum verður eytt)", - "not_deleted_by_owner": "Einungis eigandi hans getur fjarlægt hópinn - hafðu samband við eiganda " - "hópsins eða eyddu reikningnum.", - "remove_completed": "Hópnum og notendum er alveg eytt!", - "not_register": "Þú ert ekki skráður.", - "file_size": "Skjala stærð", - "hashsum": "Athugunarsumma", - "unsupported_language": "Því miður er þetta tungumál ekki stutt." - " Veldu úr þeim sem kynntar eru í hnappavalmyndinni.", - "charity": "Kærleikur", - "invalid_category": "Rangur flokkur valinn.", - "entry_add_error": "Villa við að bæta við nýrri færslu.", - "start_after_change_language": "Til að breyta tungumálinu rétt skaltu endurræsa " - "vélina með því að smella á /start hnappinn.", - "data_is_safe": "Gögnin þín verða ekki fyrir skaða!" - } - } - - @staticmethod - def check_lang_in_dict(language: str) -> bool: - if language in Dictionary._languages.keys(): - return True - return False - - @staticmethod - def check_phrase_in_dict(language: str, phrase: str) -> bool: - if phrase in Dictionary._languages[language]: - return True - return False - - @staticmethod - def receive_translation(language: str, phrase: str) -> str: - """ - The function takes as input a phrase that the chatbot responds to the user in the selected language - (also passed in the parameters). - These phrases are known in advance and are found along with translations in the languages dictionary. + dict_language_obj = json.loads(json_dict) + return dict_language_obj.get(phrase) - Args: - language (str): one of the valid language codes -> en / ru / es / fr / de / is - phrase (str): string that is a key in the language dictionary. - Returns: - str: value in the dictionary in the selected language - """ - return Dictionary._languages[language].get(phrase) +if __name__ == "__main__": + res = receive_translation("es", "data_is_safe") + print(res) \ No newline at end of file diff --git a/app/localization/de.json b/app/localization/de.json new file mode 100644 index 0000000..38a1a2b --- /dev/null +++ b/app/localization/de.json @@ -0,0 +1,122 @@ +{ + "misunderstanding": "Ich verstehe Sie nicht", + "greetings": "Hallo", + "our_user": "Wir haben dich erkannt. Willkommen!", + "unknown_user": "Wir haben dich nicht erkannt. Möchten Sie sich im Projekt registrieren?", + "help": "Helfen", + "change_language": "Ändere die Sprache", + "great": "Großartig!", + "language_changed": "Sprache geändert", + "premium": "Prämie", + "link_github": "Link zu GitHub", + "click_need_button": "Klicken Sie auf die Schaltfläche, die Sie benötigen", + "table_manage": "Tischverwaltung", + "group_settings": "Gruppeneinstellungen", + "my": "Mein", + "get_my_token": "Holen Sie sich meinen Token", + "register": "Ich möchte mich registrieren", + "view_table": "Tabelle ansehen", + "add_income": "Einkommen hinzufügen", + "add_expense": "Kosten hinzufügen", + "del_record": "Aufzeichnung löschen", + "get_csv": "Holen Sie sich die CSV-Datei", + "back": "Zurück", + "group_users": "Gruppenbenutzer", + "delete_account": "Mein Konto löschen", + "delete_group": "Gruppe löschen", + "change_owner": "Besitzer wechseln", + "delete_user": "Benutzer löschen", + "your": "Dein", + "project_on_github": "Unser Open-Source-Projekt auf GitHub", + "choose_language": "Wählen Sie eine Sprache", + "invalid_value": "Ungültiger Wert", + "invalid_date": "ungültiges Datumsformat", + "group_token": "Ihr Gruppen-Token", + "unknown": "Unbekannt", + "YES": "JA", + "NO": "NEIN", + "error_change_language": "Beim Ändern der Sprache ist ein Fehler aufgetreten", + "contact_support": "Bitte kontaktieren Sie den Support!", + "enter_expense": "Geben Sie den Kostenwert ein", + "enter_income": "Geben Sie den Einkommenswert ein", + "set_date": "Datum einstellen", + "supermarkets": "Supermärkte", + "restaurants": "Restaurants", + "clothes": "Kleidung", + "medicine": "Medizin", + "transport": "Transport", + "devices": "Geräte", + "education": "Ausbildung", + "services": "Dienstleistungen", + "travel": "Reisen", + "housing": "Hauskosten", + "investments": "Investitionen", + "hobby": "Hobby", + "jewelry": "Schmuck", + "salary": "Gehalt", + "other": "Andere", + "select_category": "Wählen Sie eine Kategorie", + "add_description": "Beschreibung hinzufügen (nicht mehr als 50 Zeichen)", + "no_description": "Keine Beschreibung", + "entry_add_success": "Eintrag erfolgreich hinzugefügt", + "entry_record_id": "Geben Sie die Datensatz-ID ein", + "enry_record_id_error": "Es gibt keinen Datensatz mit dieser ID", + "back_to_menu": "Zurück zum Menü", + "success": "Erfolgreich", + "enter_username": "Benutzernamen eingeben (3-20 Zeichen)", + "already_registered": "Du bist bereits registriert", + "enter_password": "Geben Sie Ihr Passwort ein (8-32 Zeichen / mindestens 1 Zahl und 1 Buchstabe)", + "invalid_username": "Ungültiges Benutzernamenformat oder dieser Benutzername existiert bereits!", + "enter_token": "Gruppentoken eingeben:", + "none_token": "(Wenn Sie noch keines haben, geben Sie \"None\" ein)", + "invalid_password_format": "Ungültiges Kennwort Format!", + "congratulations": "Herzlichen Glückwunsch zur Registrierung!", + "create_new_user_error": "Fehler beim Erstellen eines neuen Benutzers", + "group_is_full": "Es gibt keine Gruppe mit diesem Token oder es ist voll. Kontaktieren Sie die Gruppenmitglieder für weitere Informationen oder gründen Sie Ihre eigene Gruppe!", + "invalid_token_format": "Dies ist ein ungültiges Tokenformat", + "unrecognized_language": "Wir konnten diese Sprache nicht erkennen", + "try_again": "Versuchen Sie es erneut", + "support_information": "bald", + "total": "Gesamt", + "username": "Nutzername", + "transfer": "Transaktionen", + "category": "Kategorie", + "datetime": "Terminzeit", + "description": "Beschreibung", + "table_is_empty": "Ihre Datensatztabelle ist leer", + "csv_not_found_error": "Fehler. Versuchen Sie es später erneut oder melden Sie das Problem dem technischen Support.", + "owner": "Eigentümer", + "small_group_exception": "Es gibt nur 1 Mitglied in dieser Gruppe.", + "username_new_owner": "Schreiben Sie unten den Namen des Benutzers (aus der Liste), den Sie als Eigentümer der Gruppe zuweisen möchten", + "not_owner_exception": "Nur der Gruppeneigentümer kann den Gruppeneigentümer ändern.", + "current_owner_exception": "Dies ist der aktuelle Eigentümer der Gruppe.", + "owner_has_been_changed": "Der Gruppeneigentümer wurde geändert.", + "error_change_owner": "Beim Ändern des Gruppeneigentümers ist ein Fehler aufgetreten.", + "check_correct_username": "Überprüfen Sie die korrekte Schreibweise des Benutzernamens.", + "confirmation_delete": "Möchten Sie das Konto wirklich entfernen?", + "owner_try_delete_account": "Sie sind der Eigentümer der Gruppe: Übertragen Sie entweder die Rechte zur Verwaltung eines anderen Teilnehmers oder löschen Sie die Gruppe.", + "parting": "Wir respektieren Ihre Entscheidung, danke, dass Sie bei uns sind!", + "account_is_deleted": "Ihr Konto ist vollständig gelöscht!", + "stay_with_us": "Wir freuen uns, dass Sie bei uns bleiben!", + "unknown_message": "Ihre Nachricht ist für uns nicht klar. Bitte verwenden Sie bei der Auswahl die Schaltflächen am unteren Bildschirmrand.", + "exception_one_user_in_group": "Außer Ihnen gibt es in der Gruppe keine Benutzer.", + "select_to_delete": "Wenn Sie Ihr Konto löschen möchten, wählen Sie den entsprechenden Punkt im Menü aus.", + "select_new_owner": "Geben Sie unten den Namen des Benutzers (aus der Liste) ein, den Sie aus der Gruppe entfernen möchten:", + "owner_privileges": "Nur der Gruppeneigentümer kann Benutzer löschen.", + "user_removed": "Der Benutzer wurde erfolgreich aus der Gruppe entfernt.", + "error_user_delete": "Beim Löschen eines Benutzers ist ein Fehler aufgetreten.", + "unknown_user_in_group": "In der Gruppe gibt es keinen solchen Benutzernamen.", + "are_you_sure": "Sind Sie sicher, dass Sie die Gruppe löschen möchten?", + "delete_table": "(Eine Tabelle und alle Teilnehmer werden gelöscht)", + "not_deleted_by_owner": "Die Gruppe kann nur von ihrem Besitzer entfernt werden – wenden Sie sich an den Besitzer der Gruppe oder löschen Sie das Konto.", + "remove_completed": "Die Gruppe und Benutzer werden vollständig gelöscht!", + "not_register": "Sie sind nicht registriert.", + "file_size": "Dateigröße", + "hashsum": "Prüfsumme", + "unsupported_language": "Es tut uns leid, aber diese Sprache wird nicht unterstützt. Wählen Sie aus den im Schaltflächenmenü angezeigten Optionen aus.", + "charity": "Wohltätigkeit", + "invalid_category": "Falsche Kategorie ausgewählt.", + "entry_add_error": "Fehler beim Hinzufügen einer neuen Transaktion.", + "start_after_change_language": "Um die Sprache korrekt zu ändern, starten Sie bitte den Bot neu, indem Sie auf die Schaltfläche /start klicken.", + "data_is_safe": "Ihre Daten werden nicht beschädigt!" +} \ No newline at end of file diff --git a/app/localization/en.json b/app/localization/en.json new file mode 100644 index 0000000..3f5a3e8 --- /dev/null +++ b/app/localization/en.json @@ -0,0 +1,123 @@ +{ + "misunderstanding": "I don't understand you", + "misunderstanding": "I don't 123 you", + "greetings": "Hello", + "our_user": "We recognized you. Welcome!", + "unknown_user": "We didn't recognize you. Would you like to register in the project?", + "help": "Help", + "change_language": "Change the language", + "great": "Great!", + "language_changed": "Language changed", + "premium": "Premium", + "link_github": "Link to GitHub", + "click_need_button": "Click the button you need", + "table_manage": "Table manage", + "group_settings": "Group settings", + "my": "My", + "get_my_token": "Get my token", + "register": "I want to register", + "view_table": "View table", + "add_income": "Add income", + "add_expense": "Add expense", + "del_record": "Delete record", + "get_csv": "Get CSV-file", + "back": "Back", + "group_users": "Group users", + "delete_account": "Delete my account", + "delete_group": "Delete group", + "change_owner": "Change owner", + "delete_user": "Delete user", + "your": "Your", + "project_on_github": "Our open-source project on GitHub", + "choose_language": "Choose a language", + "invalid_value": "Invalid value", + "invalid_date": "Invalid date format", + "group_token": "Your group token", + "unknown": "unknown", + "YES": "YES", + "NO": "NO", + "error_change_language": "An error occurred while changing the language", + "contact_support": "Please contact support!", + "enter_expense": "Enter the value of expense", + "enter_income": "Enter the value of income", + "set_date": "Set the date", + "supermarkets": "Supermarkets", + "restaurants": "Restaurants", + "clothes": "Clothes", + "medicine": "Medicine", + "transport": "Transport", + "devices": "Devices", + "education": "Education", + "services": "Services", + "travel": "Travel", + "housing": "Housing", + "investments": "Investments", + "hobby": "Hobby", + "jewelry": "Jewelry", + "salary": "Salary", + "other": "Other", + "select_category": "Select category", + "add_description": "Add description (no more than 50 characters)", + "no_description": "No description", + "entry_add_success": "Entry added successfully", + "entry_record_id": "Enter the record ID", + "enry_record_id_error": "There is no record with this ID", + "back_to_menu": "Back to menu", + "success": "Successfully", + "enter_username": "Enter username (3-20 characters)", + "already_registered": "You are already registered", + "enter_password": "Enter your password (8-32 characters / at least 1 number and 1 letter)", + "invalid_username": "Invalid username format or this username already exists!", + "enter_token": "Enter group token:", + "none_token": "(if you don't have one, enter \"None\")", + "invalid_password_format": "Invalid password format!", + "congratulations": "Congratulations on registering!", + "create_new_user_error": "Error creating a new user", + "group_is_full": "There is no group with this token or it is full. Contact the group members for more information, or create your own group!", + "invalid_token_format": "This is invalid token format", + "unrecognized_language": "We were unable to recognize this language", + "try_again": "Try again", + "support_information": "soon", + "total": "Total", + "username": "Username", + "transfer": "Transactions", + "category": "Category", + "datetime": "DateTime", + "description": "Description", + "table_is_empty": "Your records table is empty", + "csv_not_found_error": "Error. Try again later or report the problem to technical support.", + "owner": "owner", + "small_group_exception": "There is only 1 member in this group.", + "username_new_owner": "Write below the name of the user (from the list) you want to assign as the owner of the group", + "not_owner_exception": "Only the group owner can change the group owner.", + "current_owner_exception": "This is the current owner of the group.", + "owner_has_been_changed": "Group owner has been changed.", + "error_change_owner": "An error occurred while changing the group owner.", + "check_correct_username": "Check the correct spelling of the username.", + "confirmation_delete": "Are you sure you want to remove the account?", + "owner_try_delete_account": "You are the owner of the group: either transfer the rights to manage another participant, or delete the group.", + "parting": "We respect your choice, thanks to be with us!", + "account_is_deleted": "Your account is completely deleted!", + "stay_with_us": "We are glad that you stay with us!", + "unknown_message": "Your message is not clear to us, please, when choosing, use the buttons at the bottom of the screen.", + "exception_one_user_in_group": "There are no users in the group except you.", + "select_to_delete": "If you want to delete your account, select the appropriate item in the menu.", + "select_new_owner": "Below write the name of the user (from the list) you want to remove from the group:", + "owner_privileges": "Only the group owner can delete users.", + "user_removed": "The user has been successfully removed from the group.", + "error_user_delete": "An error occurred while deleting a user.", + "unknown_user_in_group": "There is no such username in the group.", + "are_you_sure": "Are you sure you want to delete the group?", + "delete_table": "(A table and all participants will be deleted)", + "not_deleted_by_owner": "The group can only be removed by its owner - contact the owner of the group, or delete the account.", + "remove_completed": "The group and users are completely deleted!", + "not_register": "You are not register.", + "file_size": "File size", + "hashsum": "Checksum", + "unsupported_language": "We're sorry, but this language is not supported. Select from those presented in the button menu.", + "charity": "Charity", + "invalid_category": "Incorrect category selected.", + "entry_add_error": "Error adding a new transaction.", + "start_after_change_language": "To change the language correctly, please restart the bot by clicking on the /start button.", + "data_is_safe": "Your data will not be harmed!" +} \ No newline at end of file diff --git a/app/localization/es.json b/app/localization/es.json new file mode 100644 index 0000000..04ada3e --- /dev/null +++ b/app/localization/es.json @@ -0,0 +1,122 @@ +{ + "misunderstanding": "No lo comprendo", + "greetings": "¡Hola", + "our_user": "Te reconocimos. ¡Bienvenido!", + "unknown_user": "No te reconocimos. ¿Quieres registrarte en el proyecto?", + "help": "Ayuda", + "change_language": "Cambia el idioma", + "great": "¡Excelente!", + "language_changed": "Idioma cambiado", + "premium": "de primera calidad", + "link_github": "Enlace a GitHub", + "click_need_button": "Haga clic en el botón que necesita", + "table_manage": "Gestión de mesa", + "group_settings": "Configuración de grupo", + "my": "Mi", + "get_my_token": "Obtener mi ficha", + "register": "Quiero registrarme", + "view_table": "Ver tabla", + "add_income": "Agregar ingresos", + "add_expense": "Agregar gasto", + "del_record": "Eliminar el registro", + "get_csv": "Obtener archivo CSV", + "back": "Atrás", + "group_users": "Usuarios del grupo", + "delete_account": "Borrar mi cuenta", + "delete_group": "Eliminar grupo", + "change_owner": "Cambio de propietario", + "delete_user": "Borrar usuario", + "your": "Tu", + "project_on_github": "Nuestro proyecto de código abierto en GitHub", + "choose_language": "Elige un idioma", + "invalid_value": "Valor no válido", + "invalid_date": "Formato de fecha no válido", + "group_token": "Tu ficha de grupo", + "unknown": "desconocido", + "YES": "SÍ", + "NO": "NO", + "error_change_language": "Se produjo un error al cambiar el idioma.", + "contact_support": "¡Por favor contacte al soporte!", + "enter_expense": "Ingrese el valor del gasto", + "enter_income": "Introduzca el valor de los ingresos", + "set_date": "Establecer la fecha", + "supermarkets": "supermercados", + "restaurants": "Restaurantes", + "clothes": "Ropa", + "medicine": "Medicamento", + "transport": "Transporte", + "devices": "Dispositivos", + "education": "Educación", + "services": "Servicios", + "travel": "Viajar", + "housing": "Alojamiento", + "investments": "Inversiones", + "hobby": "Pasatiempo", + "jewelry": "Joyas", + "salary": "Salario", + "other": "Otro", + "select_category": "Selecciona una categoría", + "add_description": "Agregar descripción (no más de 50 caracteres)", + "no_description": "Sin descripción", + "entry_add_success": "Entrada agregada exitosamente", + "entry_record_id": "Introduzca el ID del registro", + "enry_record_id_error": "No hay ningún registro con este ID", + "back_to_menu": "Volver al menú", + "success": "Exitosamente", + "enter_username": "Ingrese el nombre de usuario (3-20 caracteres)", + "already_registered": "Usted ya está registrado", + "enter_password": "Ingrese su contraseña (8-32 caracteres / al menos 1 número y 1 letra)", + "invalid_username": "¡Formato de nombre de usuario no válido o este nombre de usuario ya existe!", + "enter_token": "Ingrese el token de grupo:", + "none_token": "(si no tiene uno, ingrese \"None\")", + "invalid_password_format": "¡Formato de contraseña no válido!", + "congratulations": "¡Felicitaciones por registrarse!", + "create_new_user_error": "Error al crear un nuevo usuario", + "group_is_full": "No hay ningún grupo con este token o está lleno. ¡Póngase en contacto con los miembros del grupo para obtener más información o cree su propio grupo!", + "invalid_token_format": "Este es un formato de token no válido.", + "unrecognized_language": "No pudimos reconocer este idioma.", + "try_again": "Intentar otra vez", + "support_information": "pronto", + "total": "Total", + "username": "Nombre de usuario", + "transfer": "Transacción", + "category": "Categoría", + "datetime": "Fecha y hora", + "description": "Descripción", + "table_is_empty": "Tu tabla de registros está vacía", + "csv_not_found_error": "Error. Vuelva a intentarlo más tarde o informe el problema al soporte técnico.", + "owner": "dueño", + "small_group_exception": "Sólo hay 1 miembro en este grupo.", + "username_new_owner": "Escribe debajo el nombre del usuario (de la lista) que deseas asignar como propietario del grupo.", + "not_owner_exception": "Sólo el propietario del grupo puede cambiar el propietario del grupo.", + "current_owner_exception": "Este es el actual propietario del grupo.", + "owner_has_been_changed": "Se ha cambiado el propietario del grupo.", + "error_change_owner": "Se produjo un error al cambiar el propietario del grupo.", + "check_correct_username": "Verifique la ortografía correcta del nombre de usuario.", + "confirmation_delete": "¿Estás seguro de que deseas eliminar la cuenta?", + "owner_try_delete_account": "Usted es el propietario del grupo: transfiera los derechos para administrar a otro participante o elimine el grupo.", + "parting": "Respetamos tu elección, ¡gracias por estar con nosotros!", + "account_is_deleted": "¡Tu cuenta está completamente eliminada!", + "stay_with_us": "¡Nos alegra que te quedes con nosotros!", + "unknown_message": "Su mensaje no nos queda claro, por favor, al elegir, utilice los botones en la parte inferior de la pantalla.", + "exception_one_user_in_group": "No hay ningún usuario en el grupo excepto tú.", + "select_to_delete": "Si desea eliminar su cuenta, seleccione el elemento apropiado en el menú.", + "select_new_owner": "A continuación escribe el nombre del usuario (de la lista) que deseas eliminar del grupo:", + "owner_privileges": "Sólo el propietario del grupo puede eliminar usuarios.", + "user_removed": "El usuario ha sido eliminado exitosamente del grupo.", + "error_user_delete": "Se produjo un error al eliminar un usuario.", + "unknown_user_in_group": "No existe tal nombre de usuario en el grupo.", + "are_you_sure": "¿Estás seguro de que quieres eliminar el grupo?", + "delete_table": "(Se eliminará una mesa y todos los participantes)", + "not_deleted_by_owner": "El grupo solo puede ser eliminado por su propietario: comuníquese con el propietario del grupo o elimine la cuenta.", + "remove_completed": "¡El grupo y los usuarios están completamente eliminados!", + "not_register": "No estás registrado.", + "file_size": "Tamaño del archivo", + "hashsum": "Suma de comprobación", + "unsupported_language": "Lo sentimos, pero este idioma no es compatible. Seleccione entre los presentados en el menú de botones.", + "charity": "Caridad", + "invalid_category": "Categoría incorrecta seleccionada.", + "entry_add_error": "Error al agregar una nueva transacción.", + "start_after_change_language": "Para cambiar el idioma correctamente, reinicie el bot haciendo clic en el botón /start.", + "data_is_safe": "¡Tus datos no se verán perjudicados!" +} \ No newline at end of file diff --git a/app/localization/fr.json b/app/localization/fr.json new file mode 100644 index 0000000..9308160 --- /dev/null +++ b/app/localization/fr.json @@ -0,0 +1,122 @@ +{ + "misunderstanding": "Je ne te comprends pas", + "greetings": "Bonjour", + "our_user": "Nous vous avons reconnu. Accueillir!", + "unknown_user": "Nous ne vous avons pas reconnu. Vous souhaitez vous inscrire au projet?", + "help": "Aide", + "change_language": "Changer la langue", + "great": "Super!", + "language_changed": "Langue modifiée", + "premium": "prime", + "link_github": "Lien vers GitHub", + "click_need_button": "Cliquez sur le bouton dont vous avez besoin", + "table_manage": "Gestion des tables", + "group_settings": "Paramètres du groupe", + "my": "Mon / Ma", + "get_my_token": "Récupérer mon jeton", + "register": "Je veux m'inscrire", + "view_table": "Voir le tableau", + "add_income": "Ajouter un revenu", + "add_expense": "Ajouter une dépense", + "del_record": "Supprimer l'enregistrement", + "get_csv": "Obtenir un fichier CSV", + "back": "Dos", + "group_users": "Groupe d'utilisateurs", + "delete_account": "Supprimer mon compte", + "delete_group": "Supprimer le groupe", + "change_owner": "Changer de propriétaire", + "delete_user": "Supprimer l'utilisateur", + "your": "Ton", + "project_on_github": "Notre projet open source sur GitHub", + "choose_language": "Choisissez une langue", + "invalid_value": "valeur invalide", + "invalid_date": "Format de date invalide", + "group_token": "Votre jeton de groupe", + "unknown": "inconnu", + "YES": "OUI", + "NO": "NON", + "error_change_language": "Une erreur s'est produite lors du changement de langue", + "contact_support": "Veuillez contacter l'assistance!", + "enter_expense": "Entrez la valeur de la dépense", + "enter_income": "Entrez la valeur du revenu", + "set_date": "Définir la date", + "supermarkets": "Supermarchés", + "restaurants": "Restaurants", + "clothes": "Vêtements", + "medicine": "Médecine", + "transport": "Transport", + "devices": "Dispositifs", + "education": "Éducation", + "services": "Prestations de service", + "travel": "Voyage", + "housing": "Logement", + "investments": "Investissements", + "hobby": "Passe-temps", + "jewelry": "Bijoux", + "salary": "Salaire", + "other": "Autre", + "select_category": "Sélectionnez une catégorie", + "add_description": "Ajouter une description (pas plus de 50 caractères)", + "no_description": "Pas de description", + "entry_add_success": "Entrée ajoutée avec succès", + "entry_record_id": "Entrez l'ID de l'enregistrement", + "enry_record_id_error": "Il n'y a aucun enregistrement avec cet identifiant", + "back_to_menu": "Retour au menu", + "success": "Avec succès", + "enter_username": "Entrez le nom d'utilisateur (3 à 20 caractères)", + "already_registered": "Vous êtes déjà inscrit", + "enter_password": "Entrez votre mot de passe (8 à 32 caractères / au moins 1 chiffre et 1 lettre)", + "invalid_username": "Format de nom d'utilisateur invalide ou ce nom d'utilisateur existe déjà!", + "enter_token": "Entrez le jeton de groupe:", + "none_token": "(si vous n'en avez pas, saisissez \"None\")", + "invalid_password_format": "Format de mot de passe invalide!", + "congratulations": "Félicitations pour votre inscription!", + "create_new_user_error": "Erreur lors de la création d'un nouvel utilisateur", + "group_is_full": "Il n'y a aucun groupe avec ce jeton ou il est complet. Contactez les membres du groupe pour plus d'informations, ou créez votre propre groupe !", + "invalid_token_format": "Ce format de jeton n'est pas valide", + "unrecognized_language": "Nous n'avons pas pu reconnaître cette langue", + "try_again": "Essayer à nouveau", + "support_information": "bientôt", + "total": "Total", + "username": "Nom d'utilisateur", + "transfer": "Transactions", + "category": "Catégorie", + "datetime": "DateHeure", + "description": "Description", + "table_is_empty": "Votre table d'enregistrements est vide", + "csv_not_found_error": "Erreur. Réessayez plus tard ou signalez le problème au support technique.", + "owner": "propriétaire", + "small_group_exception": "Il n'y a qu'un seul membre dans ce groupe.", + "username_new_owner": "Écrivez ci-dessous le nom de l'utilisateur (dans la liste) que vous souhaitez désigner comme propriétaire du groupe", + "not_owner_exception": "Seul le propriétaire du groupe peut modifier le propriétaire du groupe.", + "current_owner_exception": "C'est l'actuel propriétaire du groupe.", + "owner_has_been_changed": "Le propriétaire du groupe a été modifié.", + "error_change_owner": "Une erreur s'est produite lors du changement de propriétaire du groupe.", + "check_correct_username": "Vérifiez l'orthographe correcte du nom d'utilisateur.", + "confirmation_delete": "Êtes-vous sûr de vouloir supprimer le compte?", + "owner_try_delete_account": "Vous êtes propriétaire du groupe : soit transférez les droits de gestion d'un autre participant, soit supprimez le groupe.", + "parting": "Nous respectons votre choix, merci d'être parmi nous !", + "account_is_deleted": "Votre compte est complètement supprimé !", + "stay_with_us": "Nous sommes heureux que vous restiez avec nous!", + "unknown_message": "Votre message ne nous apparaît pas clair, merci, lors de votre choix, d'utiliser les boutons en bas de l'écran.", + "exception_one_user_in_group": "Il n'y a aucun utilisateur dans le groupe à part vous.", + "select_to_delete": "Si vous souhaitez supprimer votre compte, sélectionnez l'élément approprié dans le menu.", + "select_new_owner": "Ci-dessous, écrivez le nom de l'utilisateur (de la liste) que vous souhaitez supprimer du groupe:", + "owner_privileges": "Seul le propriétaire du groupe peut supprimer des utilisateurs.", + "user_removed": "L'utilisateur a été supprimé avec succès du groupe.", + "error_user_delete": "Une erreur s'est produite lors de la suppression d'un utilisateur.", + "unknown_user_in_group": "Il n'existe pas de nom d'utilisateur de ce type dans le groupe.", + "are_you_sure": "Êtes-vous sûr de vouloir supprimer le groupe?", + "delete_table": "(Une table et tous les participants seront supprimés)", + "not_deleted_by_owner": "Le groupe ne peut être supprimé que par son propriétaire - contactez le propriétaire du groupe ou supprimez le compte.", + "remove_completed": "Le groupe et les utilisateurs sont complètement supprimés!", + "not_register": "Vous n'êtes pas inscrit.", + "file_size": "Taille du fichier", + "hashsum": "Somme de contrôle", + "unsupported_language": "Nous sommes désolés, mais cette langue n'est pas prise en charge. Sélectionnez parmi ceux présentés dans le menu des boutons.", + "charity": "Charité", + "invalid_category": "Mauvaise catégorie sélectionnée.", + "entry_add_error": "Erreur lors de l'ajout d'une nouvelle transaction.", + "start_after_change_language": "Pour changer correctement la langue, veuillez redémarrer le bot en cliquant sur le bouton /start.", + "data_is_safe": "Vos données ne seront pas endommagées!" +} \ No newline at end of file diff --git a/app/localization/is.json b/app/localization/is.json new file mode 100644 index 0000000..ce329a8 --- /dev/null +++ b/app/localization/is.json @@ -0,0 +1,122 @@ +{ + "misunderstanding": "Ég skil þig ekki", + "greetings": "Halló", + "our_user": "Við þekktum þig. Velkominn!", + "unknown_user": "Við þekktum þig ekki. Viltu skrá þig í verkefnið?", + "help": "Hjálp", + "change_language": "Breyttu tungumálinu", + "great": "Frábært!", + "language_changed": "Tungumál breytt", + "premium": "yfirverði", + "link_github": "Tengill á GitHub", + "click_need_button": "Smelltu á hnappinn sem þú þarft", + "table_manage": "Tafla stjórna", + "group_settings": "Hópstillingar", + "my": "Mín", + "get_my_token": "Fáðu táknið mitt", + "register": "Ég vil skrá mig", + "view_table": "Skoða borð", + "add_income": "Bættu við tekjum", + "add_expense": "Bæta við kostnaði", + "del_record": "Eyða skráningu", + "get_csv": "Sæktu CSV-skrá", + "back": "Til baka", + "group_users": "Hópur notendur", + "delete_account": "Eyða reikningnum mínum", + "delete_group": "Eyða hópi", + "change_owner": "Skipta um eiganda", + "delete_user": "Eyða notanda", + "your": "Þinn", + "project_on_github": "Opinn uppspretta verkefni okkar á GitHub", + "choose_language": "Veldu tungumál", + "invalid_value": "Ógilt gildi", + "invalid_date": "Ógilt dagsetningarsnið", + "group_token": "Hóptáknið þitt", + "unknown": "Óþekktur", + "YES": "JÁ", + "NO": "NEI", + "error_change_language": "Villa kom upp þegar skipt var um tungumál", + "contact_support": "Vinsamlegast hafðu samband við þjónustudeild!", + "enter_expense": "Sláðu inn verðmæti kostnaðar", + "enter_income": "Sláðu inn verðmæti tekna", + "set_date": "Stilltu dagsetninguna", + "supermarkets": "Stórmarkaðir", + "restaurants": "Veitingastaðir", + "clothes": "Föt", + "medicine": "Lyf", + "transport": "Flutningur", + "devices": "Tæki", + "education": "Menntun", + "services": "Þjónusta", + "travel": "Ferðalög", + "housing": "Húsnæði", + "investments": "Fjárfestingar", + "hobby": "Áhugamál", + "jewelry": "Skartgripir", + "salary": "Laun", + "other": "Annað", + "select_category": "Veldu flokk", + "add_description": "Bæta við lýsingu (ekki meira en 50 stafir)", + "no_description": "engin lýsing", + "entry_add_success": "Færslu bætt við", + "entry_record_id": "Sláðu inn skráningarauðkenni", + "enry_record_id_error": "Það er engin skrá með þessu auðkenni", + "back_to_menu": "Aftur í valmynd", + "success": "Með góðum árangri", + "enter_username": "Sláðu inn notandanafn (3-20 stafir)", + "already_registered": "Þú ert nú þegar skráður", + "enter_password": "Sláðu inn lykilorðið þitt (8-32 stafir / að minnsta kosti 1 tala og 1 stafur)", + "invalid_username": "Ógilt notendanafnssnið eða þetta notendanafn er þegar til!", + "enter_token": "Sláðu inn hóplykil:", + "none_token": "(ef þú ert ekki með einn, sláðu inn \"None\")", + "invalid_password_format": "Ógilt lykilorðssnið!", + "congratulations": "Til hamingju með skráninguna!", + "create_new_user_error": "Villa við að búa til nýjan notanda", + "group_is_full": "Það er enginn hópur með þennan tákn eða hann er fullur. Hafðu samband við hópmeðlimi til að fá frekari upplýsingar, eða búðu til þinn eigin hóp!", + "invalid_token_format": "Þetta er ógilt táknsnið", + "unrecognized_language": "Við gátum ekki þekkt þetta tungumál", + "try_again": "Reyndu aftur", + "support_information": "bráðum", + "total": "Samtals", + "username": "Notendanafn", + "transfer": "Viðskipti", + "category": "Flokkur", + "datetime": "DateTime", + "description": "Lýsing", + "table_is_empty": "Skráningartaflan þín er tóm", + "csv_not_found_error": "Villa. Reyndu aftur síðar eða tilkynntu vandamálið til tækniaðstoðar.", + "owner": "eiganda", + "small_group_exception": "Það er aðeins 1 meðlimur í þessum hópi.", + "username_new_owner": "Skrifaðu fyrir neðan nafn notandans (af listanum) sem þú vilt úthluta sem eiganda hópsins", + "not_owner_exception": "Aðeins eigandi hópsins getur skipt um eiganda hópsins.", + "current_owner_exception": "Þetta er núverandi eigandi hópsins.", + "owner_has_been_changed": "Skipt hefur verið um eiganda hópsins.", + "error_change_owner": "Villa kom upp þegar skipt var um eiganda hópsins.", + "check_correct_username": "Athugaðu rétta stafsetningu notandanafns.", + "confirmation_delete": "Ertu viss um að þú viljir fjarlægja reikninginn?", + "owner_try_delete_account": "Þú ert eigandi hópsins: annað hvort færðu réttindi til að stjórna öðrum þátttakanda eða eyddu hópnum.", + "parting": "Við virðum val þitt, takk fyrir að vera með okkur!", + "account_is_deleted": "Reikningnum þínum er algjörlega eytt!", + "stay_with_us": "Við erum ánægð með að þú gistir hjá okkur!", + "unknown_message": "Skilaboðin þín eru ekki skýr fyrir okkur, vinsamlegast, þegar þú velur, notaðu hnappana neðst á skjánum.", + "exception_one_user_in_group": "Það eru engir notendur í hópnum nema þú.", + "select_to_delete": "Ef þú vilt eyða reikningnum þínum skaltu velja viðeigandi atriði í valmyndinni.", + "select_new_owner": "Hér fyrir neðan skrifaðu nafn notandans (af listanum) sem þú vilt fjarlægja úr hópnum:", + "owner_privileges": "Aðeins eigandi hópsins getur eytt notendum.", + "user_removed": "Notandinn hefur verið fjarlægður úr hópnum.", + "error_user_delete": "Villa kom upp við að eyða notanda.", + "unknown_user_in_group": "Það er ekkert slíkt notendanafn í hópnum.", + "are_you_sure": "Ertu viss um að þú viljir eyða hópnum?", + "delete_table": "(Tafla og öllum þátttakendum verður eytt)", + "not_deleted_by_owner": "Einungis eigandi hans getur fjarlægt hópinn - hafðu samband við eiganda hópsins eða eyddu reikningnum.", + "remove_completed": "Hópnum og notendum er alveg eytt!", + "not_register": "Þú ert ekki skráður.", + "file_size": "Skjala stærð", + "hashsum": "Athugunarsumma", + "unsupported_language": "Því miður er þetta tungumál ekki stutt. Veldu úr þeim sem kynntar eru í hnappavalmyndinni.", + "charity": "Kærleikur", + "invalid_category": "Rangur flokkur valinn.", + "entry_add_error": "Villa við að bæta við nýrri færslu.", + "start_after_change_language": "Til að breyta tungumálinu rétt skaltu endurræsa vélina með því að smella á /start hnappinn.", + "data_is_safe": "Gögnin þín verða ekki fyrir skaða!" +} \ No newline at end of file diff --git a/app/localization/ru.json b/app/localization/ru.json new file mode 100644 index 0000000..2205d1c --- /dev/null +++ b/app/localization/ru.json @@ -0,0 +1,122 @@ +{ + "misunderstanding": "Я не понимаю тебя", + "greetings": "Привет", + "our_user": "Мы узнали вас. Добро пожаловать!", + "unknown_user": "Мы вас не узнали. Хотите зарегистрироваться в проекте?", + "help": "Помощь", + "change_language": "Изменить язык", + "great": "Отлично!", + "language_changed": "Язык изменен", + "premium": "Премиум", + "link_github": "Ссылка на GitHub", + "click_need_button": "Нажмите на нужную вам кнопку", + "table_manage": "Управление таблицей", + "group_settings": "Настройки группы", + "my": "Мой", + "get_my_token": "Получить мой токен", + "register": "Я хочу зарегистрироваться", + "view_table": "Посмотреть таблицу", + "add_income": "Добавить доход", + "add_expense": "Добавить расходы", + "del_record": "Удалить запись", + "get_csv": "Получить CSV-файл", + "back": "Назад", + "group_users": "Пользователи группы", + "delete_account": "Удалить мой аккаунт", + "delete_group": "Удалить группу", + "change_owner": "Сменить владельца", + "delete_user": "Удалить пользователя", + "your": "Ваш", + "project_on_github": "Наш проект с открытым исходным кодом на GitHub", + "choose_language": "Выберите язык", + "invalid_value": "Неверное значение", + "invalid_date": "Неверный формат даты", + "group_token": "Ваш групповой токен", + "unknown": "неизвестно", + "YES": "ДА", + "NO": "НЕТ", + "error_change_language": "Произошла ошибка при смене языка", + "contact_support": "Пожалуйста, свяжитесь со службой поддержки!", + "enter_expense": "Введите сумму расходов", + "enter_income": "Введите величину дохода", + "set_date": "Назначить дату", + "supermarkets": "Супермаркеты", + "restaurants": "Рестораны", + "clothes": "Одежда", + "medicine": "Лекарство", + "transport": "Транспорт", + "devices": "Устройства", + "education": "Образование", + "services": "Услуги", + "travel": "Путешествия", + "housing": "Жилье", + "investments": "Вложения", + "hobby": "Хобби", + "jewelry": "Ювелирные изделия", + "salary": "Зарплата", + "other": "Другое", + "select_category": "Выберите категорию:", + "add_description": "Добавить описание (не более 50 символов)", + "no_description": "без описания", + "entry_add_success": "Запись успешно добавлена", + "entry_record_id": "Введите идентификатор записи", + "enry_record_id_error": "Нет записей с этим идентификатором", + "back_to_menu": "Назад в меню", + "success": "Успешно", + "enter_username": "Введите имя пользователя (3-20 символов)", + "already_registered": "Вы уже зарегистрированы", + "enter_password": "Введите свой пароль (8-32 символа / минимум 1 цифра и 1 буква)", + "invalid_username": "Неверный формат имени пользователя или это имя пользователя уже существует!", + "enter_token": "Введите токен группы:", + "none_token": "(если у вас его нет, введите \"None\")", + "invalid_password_format": "Неверный формат пароля!", + "congratulations": "Поздравляем с регистрацией!", + "create_new_user_error": "Ошибка создания нового пользователя", + "group_is_full": "Группы с данным токеном не существует или она заполнена. Свяжитесь с участниками группы для получения дополнительной информации или создайте свою группу!", + "invalid_token_format": "Неверный формат токена.", + "unrecognized_language": "Мы не смогли распознать этот язык", + "try_again": "Попробуйте еще раз", + "support_information": "скоро", + "total": "Всего", + "username": "Имя пользователя", + "transfer": "Транзакция", + "category": "Категория", + "datetime": "ДатаВремя", + "description": "Описание", + "table_is_empty": "Ваша таблица записей пуста", + "csv_not_found_error": "Ошибка. Повторите попытку позже или сообщите о проблеме в службу технической поддержки.", + "owner": "владелец", + "small_group_exception": "В этой группе только 1 участник.", + "username_new_owner": "Ниже напишите имя пользователя (из списка), которого хотите назначить владельцем группы.", + "not_owner_exception": "Изменить владельца группы может только текущий владелец группы.", + "current_owner_exception": "Это текущий владелец группы.", + "owner_has_been_changed": "Владелец группы изменён.", + "error_change_owner": "Произошла ошибка при смене владельца группы.", + "check_correct_username": "Проверьте правильность написания имени пользователя.", + "confirmation_delete": "Вы уверены, что хотите удалить аккаунт?", + "owner_try_delete_account": "Вы являетесь владельцем группы: либо передайте права на управление другому участнику, либо удалите группу.", + "parting": "Мы уважаем ваш выбор, спасибо, что вы с нами!", + "account_is_deleted": "Ваш аккаунт полностью удален!", + "stay_with_us": "Мы рады, что вы остаетесь с нами!", + "unknown_message": "Нам непонятно Ваше сообщение, пожалуйста, при выборе используйте кнопки внизу экрана.", + "exception_one_user_in_group": "В группе кроме вас нет пользователей.", + "select_to_delete": "Если вы хотите удалить свою учетную запись, выберите соответствующий пункт в меню.", + "select_new_owner": "Ниже напишите имя пользователя (из списка), которого хотите удалить из группы:", + "owner_privileges": "Удалять пользователей может только владелец группы.", + "user_removed": "Пользователь успешно удален из группы.", + "error_user_delete": "Произошла ошибка при удалении пользователя.", + "unknown_user_in_group": "В группе нет пользователя с таким именем.", + "are_you_sure": "Вы уверены, что хотите удалить группу?", + "delete_table": "(Стол и все участники будут удалены)", + "not_deleted_by_owner": "Удалить группу может только ее владелец — обратитесь к владельцу группы или удалите аккаунт.", + "remove_completed": "Группа и пользователи полностью удалены!", + "not_register": "Вы не зарегистрированы.", + "file_size": "Размер файла", + "hashsum": "Хэш-сумма", + "unsupported_language": "Извините, но данный язык не поддерживается. Выбирайте из кнопок, представленных в нижнем меню", + "charity": "Благотворительность", + "invalid_category": "Выбрана некорректная категория", + "entry_add_error": "Ошибка добавления новой транзакции.", + "start_after_change_language": "Чтобы корректно изменить язык, перезапустите бота, нажав кнопку /start.", + "data_is_safe": "Ваши данные не пострадают!" +} \ No newline at end of file diff --git a/app/validation.py b/app/validation.py index 999080e..4a83c49 100644 --- a/app/validation.py +++ b/app/validation.py @@ -7,7 +7,7 @@ sys.path.append('../') from app.db_manager import DatabaseQueries, connect_db, close_db -from app.dictionary import Dictionary +from app.dictionary import receive_translation from app.time_checking import timeit @@ -171,23 +171,23 @@ def value_validation(value: str) -> int: @timeit def category_validation(lang: str, category: str) -> bool: categories: tuple = ( - f"{Dictionary.receive_translation(lang, "supermarkets")}", - f"{Dictionary.receive_translation(lang, "restaurants")}", - f"{Dictionary.receive_translation(lang, "clothes")}", - f"{Dictionary.receive_translation(lang, "medicine")}", - f"{Dictionary.receive_translation(lang, "transport")}", - f"{Dictionary.receive_translation(lang, "devices")}", - f"{Dictionary.receive_translation(lang, "education")}", - f"{Dictionary.receive_translation(lang, "services")}", - f"{Dictionary.receive_translation(lang, "travel")}", - f"{Dictionary.receive_translation(lang, "housing")}", - f"{Dictionary.receive_translation(lang, "transfer")}", - f"{Dictionary.receive_translation(lang, "investments")}", - f"{Dictionary.receive_translation(lang, "hobby")}", - f"{Dictionary.receive_translation(lang, "jewelry")}", - f"{Dictionary.receive_translation(lang, "salary")}", - f"{Dictionary.receive_translation(lang, "charity")}", - f"{Dictionary.receive_translation(lang, "other")}" + f"{receive_translation(lang, "supermarkets")}", + f"{receive_translation(lang, "restaurants")}", + f"{receive_translation(lang, "clothes")}", + f"{receive_translation(lang, "medicine")}", + f"{receive_translation(lang, "transport")}", + f"{receive_translation(lang, "devices")}", + f"{receive_translation(lang, "education")}", + f"{receive_translation(lang, "services")}", + f"{receive_translation(lang, "travel")}", + f"{receive_translation(lang, "housing")}", + f"{receive_translation(lang, "transfer")}", + f"{receive_translation(lang, "investments")}", + f"{receive_translation(lang, "hobby")}", + f"{receive_translation(lang, "jewelry")}", + f"{receive_translation(lang, "salary")}", + f"{receive_translation(lang, "charity")}", + f"{receive_translation(lang, "other")}" ) # TODO: make a faster algorithm, although this one works within 0.00001 sec. if category in categories: