Skip to content

Commit

Permalink
new bot localization algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
MothScientist committed Apr 4, 2024
1 parent 969987d commit cef6ee7
Show file tree
Hide file tree
Showing 9 changed files with 772 additions and 864 deletions.
10 changes: 3 additions & 7 deletions app/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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'])
Expand Down
857 changes: 18 additions & 839 deletions app/dictionary.py

Large diffs are not rendered by default.

122 changes: 122 additions & 0 deletions app/localization/de.json
Original file line number Diff line number Diff line change
@@ -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!"
}
123 changes: 123 additions & 0 deletions app/localization/en.json
Original file line number Diff line number Diff line change
@@ -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!"
}
Loading

0 comments on commit cef6ee7

Please sign in to comment.