Комментарии 5
Вот даже не знаю, с чего б я начал ревью. Допустим этот код хотим использовать в реальном серверном приложении (иначе зачем кэш на 100к разных ошибок?)
Текст ошибок потениально содержит пользовательские данные. Неконтролируемая отправка их в Google Translate - сторонний сервис в иностранной юрисдикции - грозит штрафами до 10 млн. рублей.
Приложение может быть развёрнуто в окружении, где файловая система - read only.
Чтение json-файла на 100к записей на каждую(!) ошибку - это очень медленно.
Цвета и прочий ascii art часто крайне мешают при интеграции с другими приложениями, такими как сборщики логов. Как и перевод, цвет лучше делать не силами приложеиня, а добавлять во всяких внешних графанах/sentry/...
Если 90% кода и ошибок написаны английскими словами, может быть стоит язык до уровня A2 подтянуть?
----
В целом хорошее упражнение для начала, но это именно упражнение. Использование в реальной работе этого гарантированно приведёт ко множеству возможностей набраться опыта.
Насчёт использования в продакшене — вы правы. В будущем попробую добавить локальный машинный перевод, чтобы все данные оставались в безопасности. Что касается ascii-арта и цвета — я сделал это для удобства, чтобы ошибка сразу бросалась в глаза, но проблему учту и добавлю возможность отключения заливки цветом. JSON заменю на SQLite для более быстрой обработки. Также предусмотрю обработку случаев с read-only хранилищем.
Проблема выдуманная, особенно про "опытных" разработчиков.
Столкнувшись с исключением, иногда не понимаешь: "divizion by zero" — что это?
Как это что? Дивизион нулей это, вот что! Если на русский переводить. То есть имя им легион, и все нули.

Создание Python-библиотеки для перевода исключений на русский язык