Skip to content

v0.1.3

Latest

Choose a tag to compare

@Taczer Taczer released this 25 May 18:40
· 10 commits to main since this release
78130dc

What's Changed

🌐 Internationalization (EN / PL)

Full two-language support across the entire CLI β€” menus, live screen, manual mode, status, recommendations, warnings, problems, advice and normalizer errors. Default language is English; Polish can be selected in Settings and is saved to %APPDATA%\ValoPicker\settings.json.

All visible strings are managed through a central i18n.py module with a t(language, key, **params) helper and a guaranteed fallback chain (lang β†’ en β†’ key), so the app never crashes on a missing translation.

πŸ—οΈ Code Quality

  • Extracted all recommendation scoring weights into named constants at the top of recommender.py with a comment clarifying their nature as heuristic ranking weights, not probabilities. Previously every magic number (e.g. the controller bonus, the third-duelist penalty) was scattered inline with no explanation.
  • Pre-compute base role and utility counters once per recommend() call instead of rebuilding them from scratch for every agent candidate (~20 iterations). _team_score_after now receives the pre-built counters and copies them rather than re-iterating the team.
  • Added an explanatory comment next to ssl._create_unverified_context() clarifying that Riot's local client uses a self-signed certificate and that the context is intentionally scoped to local lockfile-derived endpoints only.
  • Fixed settings file read to use utf-8-sig encoding, preventing JSON parse errors caused by a BOM on Windows.
  • Added requirements.txt documenting that the application has no runtime dependencies beyond the standard library.

βœ… Tests

Added tests/test_i18n.py with 6 tests:

  • EN and PL dictionaries have an identical set of keys (checked symmetrically in both directions)
  • All translation values are non-empty strings
  • normalize_language() correctly falls back to en for unknown or None input
  • t() correctly formats parametrised messages in both languages

Total test count: 72 tests, all passing.


Full Changelog: https://github.com/Taczer/valorant-picker/commits/main