Редактирование матрицы
Один провайдер, все языки, по редактируемой ячейке на каждый — работа сервиса, сделанная видимой.
Admin → Providers → провайдер → Matrix, или сразу /admin/providers/deepl_api/matrix.
По строке на язык, с кодом, который этот провайдер действительно получит, и с тем, откуда этот код взялся.
Как читать строку
| Колонка | Что |
|---|---|
| Language | название и ссылка на страницу языка |
| Our code | канонический код — то, что вы храните |
| Sent to provider | редактируемая ячейка: что уйдёт в запрос |
| Source | как это получено — тот же match, что и в API |
Рамка ячейки сразу говорит о её состоянии:
- сплошная зелёная — закреплено. Кто-то настроил это осознанно.
- пунктирная серая — выведено. Оно уже работает, просто не курировано.
- янтарная — отредактировано, ещё не сохранено.
Редактирование
Введите код и кликните вне ячейки. Это всё взаимодействие — ячейка сохраняется на blur, один запрос на правку, строка перерисовывается с новым match. Позиция скролла и фильтры сохраняются, и именно поэтому это не сабмит формы.
Enter сохраняет, Escape откатывает.
Очистите поле, чтобы открепить: явная строка удаляется, и пара возвращается к лестнице фолбэка.
✕ Unsupported фиксирует, что пара не работает. Тогда /v1/resolve отвечает supported: false с code: null, и вызывающие знают, что пробовать не стоит.
↺ Unpin появляется только на закреплённых строках.
Работает без JavaScript
За каждым инлайн-контролом стоит обычная форма на странице языка. Ничто здесь критически не зависит от скриптов.
Фильтры
Search ищет по названию, каноническому коду и алиасам. Show сужает до закреплённых, выведенных или неподдерживаемых — полезен именно derived: это список пар, которые никто не проверял.
Kind фильтрует base против regional. Базовые языки почти никогда не стоит закреплять: их собственный код и есть ответ.
Когда закреплять
Закрепляйте, когда провайдер хочет то, чего лестница не даёт. Конкретно:
- у провайдера нестандартный набор кодов — Baidu хочет
chtдля традиционного китайского, а неzh - провайдер различает вариант, который лестница склеивает — DeepL принимает
EN-GBиEN-US, ноen-GBвыводится вen - провайдер хочет необычный регистр — некоторые API хотят
PT-BR, а неpt-BR
Не закрепляйте значение, идентичное уже показанному. Это добавляет строку для поддержки и ничего не меняет.
Массовые операции
Copy mappings (на странице настроек провайдера) клонирует все закреплённые коды из другого провайдера. Подключение движка, говорящего тем же набором кодов, что и уже настроенный, стартует с его таблицы вместо сотни ручных правок. Отметьте overwrite, чтобы заменить уже закреплённые коды на целевом; оставьте неотмеченным, чтобы заполнить только пробелы.
Скопированные строки помечаются как copied:<source> в поле источника, так что потом их видно отдельно от проверенных вручную.
Проверка
На странице Tools есть живой тестер на том же коде, что и публичный эндпоинт. Или проверьте публичный API напрямую — правка видна следующим запросом:
curl "https://languages.service.custom.mt/v1/resolve?provider=deepl_api&language=zh-TW"
Далее
- Закрепить код провайдера — то же самое пошагово
- Fallback Policies — что именно сделало «derived»