Skip to content

Latest commit

 

History

History
64 lines (41 loc) · 4.53 KB

ARCHITECTURE.md

File metadata and controls

64 lines (41 loc) · 4.53 KB

Архитектура проекта ultimate-translate


Мои модули

  • main.py - точка входа в программу

    • Получение аргументов командной строки
    • Валидация файлов и их обработка
  • tui.py - функции для работы с красивым выводом в терминале

    • Активация вывода отладочных сообщений по ключу --debug
    • Отображение цветного текста
    • Префиксы к сообщениям: DEBUG, INFO, WARN, ERROR
    • Осуществляется с помощью rich, colorama
  • args.py - чтение и проверка аргументов командной строки

    • Получает все аргументы командной строки
    • Выставляет значения по умолчанию для --destination-language и --source-language, если не указаны
    • Проверяет входные файлы на корректность
  • arg_values.py - хранение аргументов командной строки

    • Единственный класс для хранения аргументов
    • Единственный экземпляр вышеописанного класса
  • files.py - Чтение и запись файлов

    • Главная функция модуля - manipulate_input_files(), в ней содержатся все вызовы функций модуля перевода - translate.py
  • parse_yaml.py - работа с YAML и вложенными словарями

    • Также в данном модуле находится функция для получения максимально вложенных ключей из YAML-файла с помощью библиотеки yaml_keygen_utf_8
    • И другие функции для работы со вложенными системами, состоящих из пар ключ:значение
  • translate.py - перевод значений, выбор пользователем сервиса перевода

    • translate_value() - функция для перевода единственного значения с помощью одного сервиса перевода; хорошо работает в связке с циклами for
    • interactive_choices() - функция для получения значений из:
      • prompt_for_trans_services(),
      • prompt_for_yaml_tags(),
      • prompt_for_translation_variants()
    • Функции prompt_for_* предназначены для запроса у пользователя определенного значения, связанного с выбором конечного перевода

Сторонние библиотеки с внесенными изменениями

  • yaml_keygen_utf_8

    • Модуль для получения ключей с максимальной вложенностью из YAML-файла, т. е. ключи, которым соответствует единственное значение, и оно не является ключом
    • Оригинальный модуль с единственным изменением: теперь он читает только UTF-8
    • Ссылка на оригинальный модуль - yaml_keygen
  • translators_fix

    • Модуль перевода текста или html в 36 различных сервисах
    • Перевод в Yandex.Translate не работал, поэтому было принято решение сделать копию модуля и вернуть эту возможность (на данный момент поправить перевод пока не удалось)
    • Ссылка на оригинальный модуль - translators