Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .mintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
reviews/*
api-reference/openapi.json
api-reference/voice/voice.asyncapi.json
data/*
scripts/*
34 changes: 34 additions & 0 deletions data/v3-languages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Vended `/v3/languages` responses

This directory holds verbatim JSON responses from the DeepL `/v3/languages` endpoints, fetched against `https://api.deepl.com`. Other tooling in this repo (e.g. generated docs and snippets) reads these files instead of calling the API directly.

## Files

| File | Endpoint |
|---|---|
| `resources.json` | `GET /v3/languages/resources` |
| `translate_text.json` | `GET /v3/languages?resource=translate_text&include=beta&include=external` |
| `translate_document.json` | `GET /v3/languages?resource=translate_document&include=beta&include=external` |
| `voice.json` | `GET /v3/languages?resource=voice&include=beta&include=external` |
| `write.json` | `GET /v3/languages?resource=write&include=beta&include=external` |
| `glossary.json` | `GET /v3/languages?resource=glossary&include=beta&include=external` |
| `style_rules.json` | `GET /v3/languages?resource=style_rules&include=beta&include=external` |

Each per-resource file requests `include=beta&include=external` so the vended data is the full superset. Consumers filter on the `status` and per-feature `external` fields when they want a narrower view.

## Refreshing

Set `DEEPL_AUTH_KEY` in your environment, then run:

```sh
python3 scripts/fetch_v3_languages.py
```

Flags:

- `--free` — hit `https://api-free.deepl.com` instead of the Pro endpoint.
- `--base-url <url>` — point at any other host (staging, mock, local server). Also configurable via the `DEEPL_API_BASE_URL` environment variable.

The script overwrites every file in this directory.

A scheduled GitHub Action refreshes these files automatically and opens a pull request when the responses change; manual runs are only needed for local testing.
258 changes: 258 additions & 0 deletions data/v3-languages/glossary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
[
{
"lang": "ar",
"name": "Arabic",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "bg",
"name": "Bulgarian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "cs",
"name": "Czech",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "da",
"name": "Danish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "de",
"name": "German",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "el",
"name": "Greek",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "en",
"name": "English",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "es",
"name": "Spanish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "et",
"name": "Estonian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "fi",
"name": "Finnish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "fr",
"name": "French",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "he",
"name": "Hebrew",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "hu",
"name": "Hungarian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "id",
"name": "Indonesian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "it",
"name": "Italian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "ja",
"name": "Japanese",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "ko",
"name": "Korean",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "lt",
"name": "Lithuanian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "lv",
"name": "Latvian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "nb",
"name": "Norwegian (bokmål)",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "nl",
"name": "Dutch",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "pl",
"name": "Polish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "pt",
"name": "Portuguese",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "ro",
"name": "Romanian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "ru",
"name": "Russian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "sk",
"name": "Slovak",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "sl",
"name": "Slovenian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "sv",
"name": "Swedish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "tr",
"name": "Turkish",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "uk",
"name": "Ukrainian",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "vi",
"name": "Vietnamese",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
},
{
"lang": "zh",
"name": "Chinese",
"status": "stable",
"usable_as_source": true,
"usable_as_target": true,
"features": {}
}
]
98 changes: 98 additions & 0 deletions data/v3-languages/resources.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
[
{
"name": "translate_text",
"features": [
{
"name": "auto_detection",
"needs_source_support": true
},
{
"name": "formality",
"needs_target_support": true
},
{
"name": "glossary",
"needs_source_support": true,
"needs_target_support": true
},
{
"name": "style_rules",
"needs_target_support": true
},
{
"name": "tag_handling",
"needs_source_support": true,
"needs_target_support": true
}
]
},
{
"name": "translate_document",
"features": [
{
"name": "auto_detection",
"needs_source_support": true
},
{
"name": "formality",
"needs_target_support": true
},
{
"name": "glossary",
"needs_source_support": true,
"needs_target_support": true
}
]
},
{
"name": "glossary",
"features": []
},
{
"name": "style_rules",
"features": []
},
{
"name": "voice",
"features": [
{
"name": "auto_detection",
"needs_source_support": true
},
{
"name": "formality",
"needs_target_support": true
},
{
"name": "glossary",
"needs_source_support": true,
"needs_target_support": true
},
{
"name": "transcription",
"needs_source_support": true
},
{
"name": "translated_speech",
"needs_target_support": true
}
]
},
{
"name": "write",
"features": [
{
"name": "auto_detection",
"needs_source_support": true
},
{
"name": "tone",
"needs_target_support": true
},
{
"name": "writing_style",
"needs_target_support": true
}
]
}
]
Loading