Repository navigation
Releases: mrf0rtuna4/Git-Markdown-AutoTranslator
Releases · mrf0rtuna4/Git-Markdown-AutoTranslator
Release list
Git-Markdown-AutoTranslator v2.3.1
v2.3.1
Changes
- Improved localization processing and translation workflow handling.
- Refactored core application components for better maintainability and reliability.
- Updated provider handling logic with minor fixes.
- Added project metadata and dependency management through
pyproject.toml. - Migrated dependency locking to
uv.lock. - Updated Docker configuration and Python version management.
- Removed legacy development requirements file.
- Updated documentation to reflect the latest project structure and usage changes.
This release contains internal improvements, refactoring, and maintenance updates without introducing breaking changes.
Full Changelog: v2.3.0...v2.3.1
Git-Markdown-AutoTranslator v2.3.0
v2.3.0
Highlights
- Added a new translation provider abstraction, making it easier to support multiple
deep-translatorengines in a consistent way. - Introduced support for
provider,source_language,provider_options, andvalidate_providerconfiguration options. - Added provider validation so you can test connectivity and credentials before processing markdown files.
- Expanded the action metadata and documentation to reflect the new configuration model.
- Improved argument parsing and error handling for invalid inputs and unsupported markdown files.
- Refactored localization, processing, logging, and filesystem handling for better structure and maintainability.
Improvements
- More robust localization workflow with cleaner separation of concerns.
- Better support for provider-specific credentials and environment variables.
- Updated Docker and GitHub Actions configuration.
- Expanded type stubs for
deep_translatorintegrations. - Added comprehensive tests for the localizator, processor, providers, and main entrypoint.
Testing
- New automated test coverage was added across core translation and localization components.
- The release includes fixtures for GitHub-flavored markdown translation scenarios.
Notes
- Existing workflows may need to be updated to use the new configuration options.
- The default provider remains
GoogleTranslator. - For providers that require credentials, make sure the corresponding environment variables are set.
PR's
- feat(MD_AST): Implement Markdown AST parsing by @mrf0rtuna4 in #4
Full Changelog: v2.2.1...v2.3.0
v2.2.1
🚀 Release v2.2.1
🐛 Fixed
- Fixed error in Dockerfile that led to the error "File N was not found in the directory ..."
Full Changelog: v2.2.0...v2.2.1
v2.2.0
🚀 Release v2.2.0
👍 Added
max_threadsinput inaction.ymlto control concurrent translation calls.- Call‑out block exclusion: lines beginning with
> [!…](e.g.> [!WARNING] …) are now automatically skipped (preserved verbatim) rather than run through the translator. - Regex‐cleanup step in
Processor.build_fileto strip stray spaces inside**bold**and__italic__markers after placeholder restoration.
🛠 Changed
-
Action metadata (
action.yml)- Switched fully to
inputs/withsyntax. - Added
max_threads(default: 5) alongside existingfiles,langs,debugandmax_line_length.
- Switched fully to
-
Dockerfile
- Pinned to
python:3.9.16‑slim. - Runs under a non‑root
appuser, copies the entirecore/tree, and invokescore/main.py.
- Pinned to
-
core/main.py- Now parses exactly five
sys.argvparameters (files,langs,debug,max_threads,max_line_length). - Dynamically adjusts logging level when
debug: 'true'.
- Now parses exactly five
-
Concurrency model
- Switched translation calls to use an
asyncio.Semaphore(max_threads)instead of default fully‐parallel gathers, preventing API‑quota bursts.
- Switched translation calls to use an
-
Placeholder handling (
processor.py)- Always store “original” text as a string (not tuple) to avoid the
TypeErrorin_restore_placeholders. - Introduced a new
_MD_BLOCK_NOTEplaceholder type for skipped call‑outs.
- Always store “original” text as a string (not tuple) to avoid the
🐛 Fixed
- Markdown‐element spacing: fixed bug where
**test**could become** test **after placeholder round‑trip. - Placeholder restore: corrected replacement logic so every placeholder is properly re‑inserted as its original string.
🚫 Removed
- CPU‐process pool sketch from v2.2.0 pre‑releases—decided to preserve the existing escape/placeholder stability rather than introduce a
max_processesfork.
v2.1.0
✨ v2.1.0 🎉
🔥 Major changes
- Saving empty lines:
- Now empty lines are no longer lost! 🛠️
- Blank lines are preserved as is to ensure that the structure of the original document remains unchanged. This ensures that Markdown markup is displayed correctly. ✅
- Improved splitting of long lines:
- Long lines are split more correctly. Now splitting does not break the content, keeping the words whole. ✂️
- Added logic to find space before break point. 📏
- Update of placeholder processing:
- Complete refactoring of the mechanism for replacing and restoring placeholders (
_BL0CK,_L1NK,_HTMLand others). 🔄 - Added detailed debug information for tracking placeholders. 🔍
- Protection against missed placeholders:
- The system now checks that all placeholders have been replaced. If there are any left, processing will not complete until they are fixed. 🛡️
⚡ String processing logic
- Added check for empty lines:
- Empty strings are automatically added to the translation without calling the API. This reduces the load on Google Translate. 🌱
- Automatically ignore placeholder-only lines:
- If a line consists only of placeholders, it is not sent for translation, but is saved in its original form. 💡
🐛 Bug Fixes
- 🛠 Fixed bug with NoneType in strings:
- Previously, the application crashed if
Noneappeared in the string list. Now such strings are replaced with empty ones (""). 🔧 - 🔗 Placeholders don't get lost:
- Fixed an issue where some placeholders were not restored when assembling translated content. Now everything is back in place! 🎯
- ✨ Correct handling of Markdown widgets:
- Fixed handling of special widgets such as links, code blocks and HTML tags.
📈 Optimization and performance
- 📉 Reduced API load:
- Improved logic for checking strings before calling the API. This saves time and money by eliminating unnecessary requests for empty strings or strings with placeholders. 💰
- ⚡ Fast processing of large files:
- Splitting and assembling strings is much faster thanks to optimization of algorithms. 🚀
💾 How to update?
- Make sure you already have our action.
- Update the
example.ymlfile:uses: mrf0rtuna4/Git-Markdown-AutoTranslator@v2.1.0
- Run the project with the new parameters to test the changes. 🚀
2024 (c) mrf0rtuna4
v2.0.0
v2.0.0 Release
🎉 New Features
1. Support for Multiple Files
- The tool now supports translation between multiple files, making it even more versatile for global teams. You can specify the target files directly in the configuration file.
2. Enhanced Markdown Parsing
- Improved parsing of Markdown files to ensure that complex structures, such as nested lists and tables, are handled accurately during translation.
🚀 Improvements
1. Performance Optimization
- Significant performance improvements have been made, especially for large Markdown files. Translation times are now faster, and the tool consumes less memory.
2. Better Error Handling
- Enhanced error handling and logging to provide more informative error messages. This makes it easier to diagnose and resolve issues during the translation process.
3. Configuration File Updates
- The configuration file format has been updated to be more intuitive and flexible. It now supports additional options for fine-tuning the translation process.
🐛 Bug Fixes
1. Fixed Markdown Formatting Issues
- Resolved several issues related to Markdown formatting, ensuring that translated content retains the original structure and style.
2. Corrected Language Detection Errors
- Fixed bugs where the tool incorrectly detected the source language, leading to inaccurate translations.
3. Improved Stability
- Addressed stability issues that caused the tool to crash under certain conditions, making it more reliable for everyday use.
Full Changelog: v1.3.1...v2.0.0
v1.3.1
v1.3.1
- Improved Markdown README file handling, including correct handling of "widgets" and complex links such as
[], preventing data loss during translation. Fixed a bug that caused broken placeholders in the final README version. - Added a new placeholder for Markdown widgets _MD_WDGT to prevent data loss during parsing and rebuilding.
- Refactoring of placeholder replacement methods, improved code structure.
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Release v1.3.0
What's Changed
-
Enhancements for Large README Processing:
- Improved handling of large README files to ensure efficient processing and translation.
- Introduced chunking mechanism to divide large README content into manageable sections for translation.
- Enhanced placeholder management to accurately handle and restore placeholders in the translated content.
- Optimized logging to provide clear and concise information about the translation process.
-
Refactored Placeholder Replacement Method:
- Completely rewritten method for placeholder replacement to ensure accuracy and prevent translation issues.
- Improved detection and handling of code blocks, links, and HTML tags within the README content.
- Added robust post-translation checks to ensure all placeholders are correctly restored.
- Implemented a detailed logging system to track placeholder processing steps and errors.
-
Improved Project Structure:
- Restructured project files to enhance modularity and maintainability.
- Introduced separate modules for different components such as localization manager, logger, and markdown processor.
- Added
__init__.pyfiles to enable proper module imports and prevent import errors.
Full Changelog: v1.2.0...v1.3.0
v1.2.0
V1.2.0
Added
- Implemented smarter handling of code blocks, links, and HTML tags during translation.
- Added more informative and formatted print statements for better logging and understanding of the translation process.
Changed
- Updated the structure of the translation process to use async functions for improved efficiency and handling of tasks.
- Refactored and improved the readability of the code.
Fixed
- Fixed issues with preserving code blocks, links, and HTML tags during translation, ensuring that they are correctly replaced in the translated content.
Removed
- Removed redundant or unnecessary code that was no longer needed after the refactor.
Full Changelog: GitHub
v1.1.1
Version 1.1.1 Release Notes
Bug Fixes:
- Fixed an issue where translation would fail for texts containing HTML tags and links by removing these elements before translation and reinserting them after translation.
- Implemented character limit control to ensure that translated texts do not exceed 5000 characters, as required by the translation service.
Improvements:
- Enhanced the translation process to handle large files more efficiently, ensuring better performance and reliability.
- Updated documentation to reflect the new features and improvements in this release.
Other Changes:
- Refactored code for better readability and maintainability.
- Updated dependencies to the latest versions to ensure compatibility and security.
Full Changelog: GitHub Compare View