Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.3.6] - 2026-01-10¶
Fixed¶
- Fixed JSON parsing when LLM adds preamble text before the JSON array (e.g., "Here is the translation:")
[0.3.5] - 2026-01-10¶
Fixed¶
- Fixed JSON parsing errors when LLM models return responses wrapped in markdown code blocks (e.g., ```json ... ```)
[0.3.4] - 2026-01-10¶
Changed¶
- Updated PyPI homepage link to point to GitHub repository
- Updated documentation link to use translatebot.dev/docs/
- Updated changelog link to point to GitHub CHANGELOG.md
- Added documentation link to top of README
[0.3.3] - 2026-01-10¶
Changed¶
- Updated PyPI links to use docs subdomain
[0.3.2] - 2026-01-10¶
Changed¶
- Improved README documentation
- Added Documentation link to PyPI page
[0.3.1] - 2026-01-10¶
Changed¶
- Updated litellm from 1.80.12 to 1.80.13
- Improved README documentation
[0.3.0] - 2026-01-09¶
Changed¶
- Dropped Python 3.9 support to fix filelock security vulnerability
- Simplified README and added links to documentation at translatebot.dev/docs
- Updated litellm from 1.80.11 to 1.80.12
- Updated ruff from 0.14.10 to 0.14.11
Security¶
- Updated filelock to 3.20.1+ to fix Time-of-Check-Time-of-Use (TOCTOU) race condition vulnerability that allowed local attackers to corrupt or truncate arbitrary user files through symlink attacks
Infrastructure¶
- Bumped actions/checkout from 4 to 6
- Bumped actions/setup-python from 5 to 6
[0.2.2] - 2026-01-06¶
Changed¶
- Updated Django 5.2.9 to 5.2.10
- Updated Django 6.0 to 6.0.1
[0.2.1] - 2026-01-04¶
Changed¶
- Updated author metadata formatting in package configuration
[0.2.0] - 2026-01-03¶
Added¶
- Added proper error handling for authentication failures with helpful error messages
- Added support for translating django-modeltranslation model fields with
--modelsflag - Added intelligent batching for large translation jobs to handle token limits
Changed¶
TRANSLATEBOT_MODELsetting now defaults togpt-4o-miniwhen not configured (previously required)- Improved token limit handling for model field translations with intelligent batching
- Updated README to use
uv addinstead ofpip installfor installation instructions - Removed unused
source_langparameter fromModeltranslationBackend - Improved CLI output for dry-run mode to be cleaner and more informative
- Enhanced dry-run output to show accurate counts of entries that would be translated
- Improved modeltranslation integration to properly detect source content in language-specific fields
Fixed¶
- Fixed
--dry-runflag to properly skip LLM API calls instead of contacting the provider - Fixed dry-run mode showing incorrect entry counts (was always showing 0)
- Fixed dry-run mode for model field translation showing 0 fields when records exist
- Fixed dry-run output showing excessive separator lines when no translations needed
- Fixed incorrect model names in README (updated to current Claude 4.5, Gemini 2.5/3, etc.)
- Corrected misleading README claims about source language auto-detection
- Added missing link to django-modeltranslation project in README features
- Fixed queryset filtering to check language-specific fields instead of base field
- Fixed source text extraction to use populated language fields instead of relying on fallback
Infrastructure¶
- Achieved 100% test coverage across entire codebase
- Added comprehensive test suite for authentication error handling
- Added tests for dry-run mode edge cases
- Added tests for batching logic with large datasets
[0.1.4] - 2025-12-31¶
Changed¶
- Improved CLI output with emojis to match the landing page demo
[0.1.3] - 2025-12-29¶
Changed¶
- Added PyPI badge to README
- Grouped badges in README
[0.1.2] - 2025-12-28¶
Added¶
- Added Changelog and a link to it on the PyPI page
[0.1.1] - 2025-12-28¶
Changed¶
- Added project URLs to PyPI page (Homepage, Repository, Issues)
- Added Poetry installation instructions to README
Infrastructure¶
- Added Codecov integration for test coverage reporting
[0.1.0] - 2025-12-28¶
Added¶
- Initial release
- Django management command
translatebotfor translating .po files - Support for OpenAI-compatible LLM providers via LiteLLM
- Automatic detection of untranslated and fuzzy entries
- Preserves existing translations by default
- Configurable via Django settings or command-line arguments
- Support for Django 4.2, 5.0, 5.1, 5.2, and 6.0
- Support for Python 3.9 through 3.14