Editing the Matrix
One provider, every language, one editable cell each — the service's job made visible.
Admin → Providers → provider → Matrix, or straight to /admin/providers/deepl_api/matrix.
One row per language, showing the code that provider would actually receive and where it came from.
Reading a row
| Column | What |
|---|---|
| Language | name and link to the language page |
| Our code | the canonical code — what you store |
| Sent to provider | the editable cell: what goes on the wire |
| Source | how it was reached — the same match the API returns |
The cell's border tells you its state at a glance:
- solid green — pinned. Someone configured this deliberately.
- dashed grey — derived. It already works; it just is not curated.
- amber — edited, not yet saved.
Editing
Type a code and click away. That is the whole interaction — the cell saves on blur, one request per edit, and the row repaints with the new match. Your scroll position and filters survive, which is the reason this is not a form submit.
Enter saves, Escape reverts.
Clear the field to unpin: the explicit row is deleted and the pair goes back to the fallback ladder.
✕ Unsupported records that the pair does not work. /v1/resolve then answers supported: false with code: null, and callers know not to attempt it.
↺ Unpin appears only on pinned rows.
It works without JavaScript
Every inline control has a plain form behind it on the language page. Nothing here is load-bearing on scripting.
Filters
Search matches name, canonical code and aliases. Show narrows to pinned, derived, or unsupported — derived is the useful one: it is the list of pairs nobody has checked.
Kind filters base versus regional. Base languages are almost never worth pinning; their own code is the answer.
When to pin
Pin when the provider wants something the ladder does not produce. Concretely:
- the provider uses a non-standard code set — Baidu wants
chtfor traditional Chinese, notzh - the provider distinguishes a variant the ladder collapses — DeepL accepts
EN-GBandEN-US, buten-GBderives toen - the provider wants unusual casing — some APIs want
PT-BR, notpt-BR
Do not pin a value identical to what the cell already shows. It adds a row to maintain and changes nothing.
Bulk operations
Copy mappings (on the provider settings page) clones every pinned code from another provider. Onboarding an engine that speaks the same code set as one already configured starts from its table instead of a hundred manual edits. Tick overwrite to replace codes already pinned on the target; leave it unticked to fill gaps only.
Copied rows are marked copied:<source> in their source field, so you can tell them from hand-checked ones later.
Verifying
The Tools page has a live tester on the same code path as the public endpoint. Or check the public API directly — an edit is visible on the next request:
curl "https://languages.service.custom.mt/v1/resolve?provider=deepl_api&language=zh-TW"
Next
- Pin a provider code — the same thing step by step
- Fallback Policies — what "derived" actually did