diff --git a/README.md b/README.md index 2296a02..2840a73 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Please refer to the linked documentation for instructions on how to get started ## Not Implemented - Support for the [(beta) document translation endpoint](https://www.deepl.com/docs-api/translating-documents/). -- Support for the [XML handling flags](https://www.deepl.com/docs-api/translating-text/) in the translation endpoint. +- Support for advanced parameters of [Handling XML](https://www.deepl.com/docs-api/handling-xml/) in the translation endpoint (outline_detection, splitting_tags, non_splitting_tags, ignore_tags). ## See Also diff --git a/deepl_api/__init__.py b/deepl_api/__init__.py index 7a7d08a..5655f56 100644 --- a/deepl_api/__init__.py +++ b/deepl_api/__init__.py @@ -171,6 +171,7 @@ def translate( split_sentences: SplitSentences = None, preserve_formatting: bool = None, formality: Formality = None, + handle_xml: bool = None, texts: list, ) -> list: """ @@ -208,6 +209,9 @@ def translate( if formality != None: payload["formality"] = formality.value + + if handle_xml: + payload["tag_handling"] = "xml" data = self._api_call("/translate", payload) diff --git a/deepl_api/cli.py b/deepl_api/cli.py index 358409e..ae23888 100644 --- a/deepl_api/cli.py +++ b/deepl_api/cli.py @@ -66,6 +66,7 @@ def languages(): @click.option("-p", "--preserve-formatting", default=None, is_flag=True) @click.option("-m", "--formality-more", default=None, is_flag=True) @click.option("-l", "--formality-less", default=None, is_flag=True) +@click.option("-x", "--handle-xml", default=None, is_flag=True) def translate( source_language, target_language, @@ -74,6 +75,7 @@ def translate( preserve_formatting, formality_more, formality_less, + handle_xml ): try: deepl = _get_instance() @@ -94,6 +96,7 @@ def translate( target_language=target_language, preserve_formatting=preserve_formatting, formality=formality, + handle_xml=handle_xml, texts=[text], ) diff --git a/tests/test_deepl_api.py b/tests/test_deepl_api.py index 81ffbed..fdcc1a5 100644 --- a/tests/test_deepl_api.py +++ b/tests/test_deepl_api.py @@ -102,6 +102,33 @@ def test_translate(): }, ], }, + { + "args": { + "source_language": "EN", + "target_language": "FR", + "handle_xml": True, + "texts": ["A delicious apple."], + }, + "result": [ + { + "detected_source_language": "EN", + "text": "Une pomme délicieuse.", + }, + ], + }, + { + "args": { + "source_language": "EN", + "target_language": "FR", + "texts": ["A delicious apple."], + }, + "result": [ + { + "detected_source_language": "EN", + "text": "Une délicieuse pomme.", + }, + ], + }, ] for test in tests: