Skip to content
Open
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
36 changes: 36 additions & 0 deletions .github/workflows/sync-language-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Sync language docs

on:
schedule:
- cron: "17 6 * * *"
workflow_dispatch:

permissions:
contents: write
pull-requests: write

concurrency:
group: sync-language-docs
cancel-in-progress: false

jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 22
- name: Regenerate language docs from /v3/languages
env:
DEEPL_API_KEY: ${{ secrets.DEEPL_API_KEY }}
# stderr goes to a file first (a `>(tee ...)` child is not awaited, the
# next step could read a partial file), then back into the step log
run: |
node scripts/update-language-docs.mjs "$DEEPL_API_KEY" 2> "$RUNNER_TEMP/warnings.txt" || { cat "$RUNNER_TEMP/warnings.txt" >&2; exit 1; }
cat "$RUNNER_TEMP/warnings.txt" >&2
- name: Open or update the sync PR
env:
GH_TOKEN: ${{ github.token }}
WARNINGS_FILE: ${{ runner.temp }}/warnings.txt
run: scripts/open-sync-pr.sh
21 changes: 21 additions & 0 deletions .github/workflows/test-scripts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Test scripts

on:
pull_request:
paths:
- "scripts/**"
push:
branches:
- main
paths:
- "scripts/**"

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 22
- run: node --test scripts/*.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,22 @@ audio provides the following functionality:
<td>
<p>The realtime audio stream you want to have translated can be in one of the following languages:</p>
<ul>
{/* BEGIN GENERATED voice-input-languages (run: node scripts/update-language-docs.mjs) */}
<li>`ar` (Arabic)</li>
<li>`bg` (Bulgarian)</li>
<li>`bn` (Bengali)</li>
<li>`cs` (Czech)</li>
<li>`da` (Danish)</li>
<li>`de` (German)</li>
<li>`el` (Greek)</li>
<li>`en` (British)</li>
<li>`en` (English)</li>
<li>`es` (Spanish)</li>
<li>`et` (Estonian)</li>
<li>`fi` (Finnish)</li>
<li>`fr` (French)</li>
<li>`ga` (Irish)</li>
<li>`he` (Hebrew)</li>
<li>`hi` (Hindi)</li>
<li>`hr` (Croatian)</li>
<li>`hu` (Hungarian)</li>
<li>`id` (Indonesian)</li>
Expand All @@ -55,8 +57,9 @@ audio provides the following functionality:
<li>`ko` (Korean)</li>
<li>`lt` (Lithuanian)</li>
<li>`lv` (Latvian)</li>
<li>`ms` (Malay)</li>
<li>`mt` (Maltese)</li>
<li>`nb` (Norwegian Bokmål)</li>
<li>`nb` (Norwegian (bokmål))</li>
<li>`nl` (Dutch)</li>
<li>`pl` (Polish)</li>
<li>`pt` (Portuguese)</li>
Expand All @@ -65,12 +68,14 @@ audio provides the following functionality:
<li>`sk` (Slovak)</li>
<li>`sl` (Slovenian)</li>
<li>`sv` (Swedish)</li>
<li>`ta` (Tamil)</li>
<li>`th` (Thai)</li>
<li>`tl` (Tagalog)</li>
<li>`tr` (Turkish)</li>
<li>`uk` (Ukrainian)</li>
<li>`vi` (Vietnamese)</li>
<li>`zh` (Chinese)</li>
{/* END GENERATED voice-input-languages */}
</ul>
</td>
</tr>
Expand All @@ -79,21 +84,24 @@ audio provides the following functionality:
<td>
<p>The language in which your translations are provided as text can be one of the following:</p>
<ul>
{/* BEGIN GENERATED voice-target-languages (run: node scripts/update-language-docs.mjs) */}
<li>`ar` (Arabic)</li>
<li>`bg` (Bulgarian)</li>
<li>`bn` (Bengali)</li>
<li>`cs` (Czech)</li>
<li>`da` (Danish)</li>
<li>`de` (German)</li>
<li>`el` (Greek)</li>
<li>`en-GB` (British English)</li>
<li>`en-US` (American-English)</li>
<li>`en` (English)</li>
<li>`en-GB` (English (British))</li>
<li>`en-US` (English (American))</li>
<li>`es` (Spanish)</li>
<li>`et` (Estonian)</li>
<li>`fi` (Finnish)</li>
<li>`fr` (French)</li>
<li>`ga` (Irish)</li>
<li>`he` (Hebrew)</li>
<li>`hi` (Hindi)</li>
<li>`hr` (Croatian)</li>
<li>`hu` (Hungarian)</li>
<li>`id` (Indonesian)</li>
Expand All @@ -102,26 +110,31 @@ audio provides the following functionality:
<li>`ko` (Korean)</li>
<li>`lt` (Lithuanian)</li>
<li>`lv` (Latvian)</li>
<li>`ms` (Malay)</li>
<li>`mt` (Maltese)</li>
<li>`nb` (Norwegian Bokmål)</li>
<li>`nb` (Norwegian (bokmål))</li>
<li>`nl` (Dutch)</li>
<li>`pl` (Polish)</li>
<li>`pt-BR` (Brazilian Portuguese)</li>
<li>`pt-PT` (Portuguese) (all Portuguese varieties excluding Brazilian Portuguese)</li>
<li>`pt` (Portuguese) (unspecified variant for backward compatibility; please select `pt-PT` or `pt-BR`</li>
<li>`pt` (Portuguese)</li>
<li>`pt-BR` (Portuguese (Brazilian))</li>
<li>`pt-PT` (Portuguese (European))</li>
<li>`ro` (Romanian)</li>
<li>`ru` (Russian)</li>
<li>`sk` (Slovak)</li>
<li>`sl` (Slovenian)</li>
<li>`sv` (Swedish)</li>
<li>`ta` (Tamil)</li>
<li>`th` (Thai)</li>
<li>`tl` (Tagalog)</li>
<li>`tr` (Turkish)</li>
<li>`uk` (Ukrainian)</li>
<li>`vi` (Vietnamese)</li>
<li>`zh` (Chinese)</li>
<li>`zh-Hans` (Chinese (simplified))</li>
<li>`zh-Hant` (Chinese (traditional))</li>
{/* END GENERATED voice-target-languages */}
</ul>
<p>`pt-PT` covers all Portuguese varieties excluding Brazilian Portuguese. `pt` is an unspecified variant kept for backward compatibility; prefer `pt-PT` or `pt-BR`.</p>
</td>
</tr>
</tbody>
Expand Down
6 changes: 5 additions & 1 deletion docs/getting-started/supported-languages.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,9 @@ import { LanguageTable } from "/snippets/language-table.jsx"
</Info>

<Info>
Style rules are supported for the following target languages: `de`, `en`, `es`, `fr`, `it`, `ja`, `ko`, and `zh`. For more details, see the [Style Rules API documentation](/docs/customize/using-style-rules). Writing style and tone availability for `/write/rephrase` can also be retrieved via [`GET /v3/languages?resource=write`](/docs/languages/using-the-languages-api).
{/* BEGIN GENERATED style-rules-languages (run: node scripts/update-language-docs.mjs) */}
Style rules are supported for the following target languages: `ar`, `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `et`, `fi`, `fr`, `he`, `hu`, `id`, `it`, `ja`, `ko`, `lt`, `lv`, `nb`, `nl`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `sv`, `th`, `tr`, `uk`, `vi`, and `zh`.
{/* END GENERATED style-rules-languages */}

For more details, see the [Style Rules API documentation](/docs/customize/using-style-rules). Writing style and tone availability for `/write/rephrase` can also be retrieved via [`GET /v3/languages?resource=write`](/docs/languages/using-the-languages-api).
</Info>
88 changes: 45 additions & 43 deletions docs/voice/supported-languages-formats-and-limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,51 @@ description: "Reference for DeepL Voice API language availability, supported aud
Translation is always provided by DeepL. For some languages, transcription and translated speech are provided by external service partners. All source languages can be translated into any target language.

<Card>
| **Language** | **Transcription** | **Translation** | <Badge color="green">closed beta</Badge><br/>Translated Speech |
| :------------------------------------- | :---------------: | :-------------: | :------------------------------------------------------------: |
| Arabic | ⎋ | ✓ | ⎋ |
| Bengali | ⎋ | ✓ | — |
| Bulgarian | ⎋ | ✓ | ⎋ |
| Chinese (Simplified/Traditional) | ✓ | ✓ | ✓ |
| Croatian | ⎋ | ✓ | — |
| Czech | ✓ | ✓ | ⎋ |
| Danish | ⎋ | ✓ | ⎋ |
| Dutch | ✓ | ✓ | ✓ |
| English (American/British) | ✓ | ✓ | ✓ |
| Estonian | ⎋ | ✓ | — |
| Finnish | ⎋ | ✓ | ⎋ |
| French | ✓ | ✓ | ✓ |
| German | ✓ | ✓ | ✓ |
| Greek | ⎋ | ✓ | ⎋ |
| Hebrew | ⎋ | ✓ | — |
| Hindi <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Hungarian | ⎋ | ✓ | ⎋ |
| Indonesian | ✓ | ✓ | ⎋ |
| Irish | ⎋ | ✓ | — |
| Italian | ✓ | ✓ | ✓ |
| Japanese | ✓ | ✓ | ✓ |
| Korean | ✓ | ✓ | ✓ |
| Latvian | ⎋ | ✓ | — |
| Lithuanian | ⎋ | ✓ | — |
| Malay <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Maltese | ⎋ | ✓ | — |
| Norwegian Bokmål | ⎋ | ✓ | ⎋ |
| Polish | ✓ | ✓ | ✓ |
| Portuguese (Brazil/Portugal) | ✓ | ✓ | ✓ |
| Romanian | ✓ | ✓ | ⎋ |
| Russian | ✓ | ✓ | ✓ |
| Slovak | ⎋ | ✓ | ⎋ |
| Slovenian | ⎋ | ✓ | — |
| Spanish | ✓ | ✓ | ✓ |
| Swedish | ✓ | ✓ | ✓ |
| Thai | ⎋ | ✓ | — |
| Tagalog | ⎋ | ✓ | — |
| Tamil <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Turkish | ✓ | ✓ | ✓ |
| Ukrainian | ✓ | ✓ | ⎋ |
| Vietnamese | ⎋ | ✓ | ⎋ |
{/* BEGIN GENERATED voice-language-matrix (run: node scripts/update-language-docs.mjs) */}
| **Language** | **Transcription** | **Translation** | <Badge color="green">closed beta</Badge><br/>Translated Speech |
| :--- | :---: | :---: | :---: |
| Arabic | ⎋ | ✓ | ⎋ |
| Bengali | ⎋ | ✓ | — |
| Bulgarian | ⎋ | ✓ | ⎋ |
| Chinese (Simplified/Traditional) | ✓ | ✓ | ✓ |
| Croatian | ⎋ | ✓ | — |
| Czech | ✓ | ✓ | ⎋ |
| Danish | ⎋ | ✓ | ⎋ |
| Dutch | ✓ | ✓ | ✓ |
| English (American/British) | ✓ | ✓ | ✓ |
| Estonian | ⎋ | ✓ | — |
| Finnish | ⎋ | ✓ | ⎋ |
| French | ✓ | ✓ | ✓ |
| German | ✓ | ✓ | ✓ |
| Greek | ⎋ | ✓ | ⎋ |
| Hebrew | ⎋ | ✓ | — |
| Hindi <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Hungarian | ⎋ | ✓ | ⎋ |
| Indonesian | ✓ | ✓ | ⎋ |
| Irish | ⎋ | ✓ | — |
| Italian | ✓ | ✓ | ✓ |
| Japanese | ✓ | ✓ | ✓ |
| Korean | ✓ | ✓ | ✓ |
| Latvian | ⎋ | ✓ | — |
| Lithuanian | ⎋ | ✓ | — |
| Malay <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Maltese | ⎋ | ✓ | — |
| Norwegian (bokmål) | ⎋ | ✓ | ⎋ |
| Polish | ✓ | ✓ | ✓ |
| Portuguese (Brazil/Portugal) | ✓ | ✓ | ✓ |
| Romanian | ✓ | ✓ | ⎋ |
| Russian | ✓ | ✓ | ✓ |
| Slovak | ⎋ | ✓ | ⎋ |
| Slovenian | ⎋ | ✓ | — |
| Spanish | ✓ | ✓ | ✓ |
| Swedish | ✓ | ✓ | ✓ |
| Tagalog | ⎋ | ✓ | — |
| Tamil <Badge color="blue">beta</Badge> | ⎋ | ✓ | ⎋ |
| Thai | ⎋ | ✓ | — |
| Turkish | ✓ | ✓ | ✓ |
| Ukrainian | ✓ | ✓ | ⎋ |
| Vietnamese | ⎋ | ✓ | ⎋ |
{/* END GENERATED voice-language-matrix */}

✓ provided by DeepL / ⎋ provided by an external service partner / — not available
</Card>
Expand Down
Loading