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.
3.9.0 - 2026-08-11
- Added support for using multiple glossaries in text and document translation
via the
glossary_idsoption (up to 5 glossary IDs) intranslateand document upload. - Added support for using a style rule in document translation via the
style_idoption (thestyle_ruleoption) in document upload. - Added support for using a translation memory in document translation via the
translation_memory_idoption (thetranslation_memoryandtranslation_memory_thresholdoptions) in document upload. - Added support for translation memory management via
DeepL.translation_memories:find(),segments(),destroy(),create_import(),upload_file(),create_export(),find_job(),wait_until_job_done(),download_export(), and the convenience methodsimport_from_filepath()andexport_to_filepath(). Every method taking a translation memory accepts a string ID or aTranslationMemoryobject.wait_until_job_done(),import_from_filepath()andexport_to_filepath()accept an optionaltimeout_sto stop waiting for a job that does not finish. Please refer to the README for usage instructions. - Added the
creation_timeandupdated_timeattributes toTranslationMemory.
- Reworked the test suite to run against the
deepl-mockserver with OpenAPI request and response validation enabled in CI, replacing recorded VCR cassettes. Added live integration and error-path specs across all endpoints, with resource-level unit specs for response field mapping.
- Dropped VCR cassette playback and the
vcrandwebmockdevelopment dependencies.
3.8.0 - 2026-05-27
- Added support for passing additional HTTP headers to
translate()andrephrase(). This can be used to send theX-DeepL-Reporting-Tagheader for usage reporting.
3.7.0 - 2026-05-14
- Added support for listing translation memories via
DeepL.translation_memories.list. - Added
translation_memoryandtranslation_memory_thresholdparameters totranslate()to use a translation memory during text translation. Thetranslation_memoryparameter accepts a string ID or aTranslationMemoryobject. - Added support for style rules CRUD operations via
DeepL.style_rules:create(),find(),update_name(),update_configured_rules(), anddestroy(). - Added support for style rule custom instruction CRUD operations via
DeepL.style_rules:create_custom_instruction(),find_custom_instruction(),update_custom_instruction(), anddestroy_custom_instruction(). Please refer to the README for usage instructions.
- Updated unit test to expect the
model_type_usedto now bequality_optimized - Set explicit
imageforgitlab releaseCI job to avoid missing$HOMEissues
3.6.1 - 2025-12-19
- Fixed broken 3.6.0 release
3.6.0 - 2025-12-10
- Added
tag_handling_versionparameter totranslate()to specify which version of the tag handling algorithm to use. Options arev1andv2.
extra_body_parameterswill no longer cast values to string, as this library sends JSON-encoded requests (allows e.g. sending booleans)
3.5.1 - 2025-12-19
- Fixed broken 3.5.0 release
3.5.0 - 2025-12-03
- Added
custom_instructionsparameter totranslate()to customize translation behavior with up to 10 instructions (max 300 characters each). Only supported for target languages:de,en,es,fr,it,ja,ko,zhand their variants. Note: using thecustom_instructionsparameter will use thequality_optimizedmodel type as the default. Requests combiningcustom_instructionsand thelatency_optimizedmodel type will be rejected.
3.4.1 - 2025-12-19
- Fixed broken 3.4.0 release
3.4.0 - 2025-11-17
- Added support for the
GET /v3/style_rulesendpoint in the client library, the implementation can be found in theStyleRuleApiclass. Please refer to the README for usage instructions - Added
style_idoption totranslate()which allows text translation with style rules.
- Send correct library version in user-agent. Expose library version in the module as a variable.
3.3.0 - 2025-11-04
- Added
extra_body_parametersoption to text and document translation methods to pass arbitrary parameters in the request body. This can be used to access beta features or override built-in parameters (such astarget_lang,source_lang, etc.). - Added
rephrasefunctionality to the top-levelDeepLmodule for convenience.
3.2.0 - 2025-01-15
- Added
rephrasefunctionality to get a new version of submitted text with various possible styles or tones applied - Added
DeepL::Constantsnamespace and associated constant values for options possibilities
3.1.0 - 2024-11-15
- Added
model_typeoption totranslate()to use models with higher translation quality (available for some language pairs), or better latency. Options are'quality_optimized','latency_optimized', and'prefer_quality_optimized' - Added the
model_type_usedfield to thetranslate()response, that indicates the translation model used when themodel_typeoption is specified.
3.0.2 - 2024-10-02
- Added doc example and tests for context parameter
- Fix metadata displayed on RubyGems.org for this library.
- Fixed library version sent in the
User-Agentstring.
3.0.1 - 2024-09-23
document.translate_documentrequired a filename, this is now optional. The example in the README now works.
3.0.0 - 2024-09-20
Beginning with version 3, deepl-rb is officially supported by DeepL, and maintained together with Daniel Herzog the developer of earlier versions of this library. The change in major version is only due to the change in maintainership, there is no migration necessary from v2 to v3.
- Added rubocop-rspec linting for rspec test files
- Added document translation to the ruby CL
- Added possibility to use one HTTP session for multiple calls
- Added platform and ruby version information to the user-agent string that is sent with API calls, along with an opt-out
- Added support for logging of HTTP requests
- Added support for using a proxy and a custom certificate file
- Added a gitlab CI pipeline
- HTTP requests to the DeepL API now use
application/json, rather thanapplication/www-form-unencoded - HTTP requests now automatically retry on transient failures, using exponential backoff
- Removed CircleCI and CodeCov upload
2.5.3 - 2022-09-26
- Make RequestEntityTooLarge error message more clear