From 4944ed5d4b3c0654bf174c7b514f040ae404ee6f Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 11:52:10 +0200 Subject: [PATCH 01/10] New translations dleapi.xliff (German) [ci skip] --- upload/devcraft/locales/de_DE/dleapi.xliff | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 upload/devcraft/locales/de_DE/dleapi.xliff diff --git a/upload/devcraft/locales/de_DE/dleapi.xliff b/upload/devcraft/locales/de_DE/dleapi.xliff new file mode 100644 index 00000000..1fcf3fbb --- /dev/null +++ b/upload/devcraft/locales/de_DE/dleapi.xliff @@ -0,0 +1,19 @@ + + + + + + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + API-ключи + API-ключи + + + OAuth-клиенты + OAuth-клиенты + + + + From c003f5081ddddbc9d8f5c0c2f844fee88f09e936 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 11:52:11 +0200 Subject: [PATCH 02/10] New translations dleapi.xliff (Ukrainian) [ci skip] --- upload/devcraft/locales/uk_UA/dleapi.xliff | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 upload/devcraft/locales/uk_UA/dleapi.xliff diff --git a/upload/devcraft/locales/uk_UA/dleapi.xliff b/upload/devcraft/locales/uk_UA/dleapi.xliff new file mode 100644 index 00000000..53ed6b17 --- /dev/null +++ b/upload/devcraft/locales/uk_UA/dleapi.xliff @@ -0,0 +1,19 @@ + + + + + + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + API-ключи + API-ключи + + + OAuth-клиенты + OAuth-клиенты + + + + From 9f25b4b11a92edfacf8ff42d2dcf96707147be63 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 11:52:12 +0200 Subject: [PATCH 03/10] New translations dleapi.xliff (English) [ci skip] --- upload/devcraft/locales/en_US/dleapi.xliff | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 upload/devcraft/locales/en_US/dleapi.xliff diff --git a/upload/devcraft/locales/en_US/dleapi.xliff b/upload/devcraft/locales/en_US/dleapi.xliff new file mode 100644 index 00000000..7ca7123e --- /dev/null +++ b/upload/devcraft/locales/en_US/dleapi.xliff @@ -0,0 +1,19 @@ + + + + + + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + API-ключи + API-ключи + + + OAuth-клиенты + OAuth-клиенты + + + + From 030d78daa4605a0cace59b83349baaee54ca4385 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 15:43:41 +0200 Subject: [PATCH 04/10] New translations dleapi.xliff (German) [ci skip] --- upload/devcraft/locales/de_DE/dleapi.xliff | 1182 +++++++++++++++++++- 1 file changed, 1175 insertions(+), 7 deletions(-) diff --git a/upload/devcraft/locales/de_DE/dleapi.xliff b/upload/devcraft/locales/de_DE/dleapi.xliff index 1fcf3fbb..8b6c33bf 100644 --- a/upload/devcraft/locales/de_DE/dleapi.xliff +++ b/upload/devcraft/locales/de_DE/dleapi.xliff @@ -1,19 +1,1187 @@ - + - + - - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + API-ключ + API-ключ - + + Новый + Новый + + + Загрузка… + Загрузка… + + + Ключ + Ключ + + + Копировать + Копировать + + + Когда + Когда + + + Истекает + Истекает + + + Уровень + Уровень + + + Запросить ключ + Запросить ключ + + + Одобрить + Одобрить + + + Отказать + Отказать + + + Метод не разрешён + Метод не разрешён + + + Допустимо + Допустимо + + + Маршрут не найден + Маршрут не найден + + + Неверный или неактивный API-ключ + Неверный или неактивный API-ключ + + + Неверный логин или пароль + Неверный логин или пароль + + + Нет API-ключа пользователя и гостевого ключа + Нет API-ключа пользователя и гостевого ключа + + + Неверный client_id или client_secret + Неверный client_id или client_secret + + + Клиент не разрешает grant_type=client_credentials + Клиент не разрешает grant_type=client_credentials + + + API-ключ клиента неактивен + API-ключ клиента неактивен + + + Нужны оба: client_id и client_secret + Нужны оба: client_id и client_secret + + + Клиент не разрешает grant_type=password + Клиент не разрешает grant_type=password + + + Неверный client + Неверный client + + + Клиент не разрешает grant_type=authorization_code + Клиент не разрешает grant_type=authorization_code + + + Код недействителен + Код недействителен + + + redirect_uri не совпадает + redirect_uri не совпадает + + + Ошибка проверки PKCE + Ошибка проверки PKCE + + + API-ключ неактивен + API-ключ неактивен + + + Refresh token недействителен + Refresh token недействителен + + + Связанный access token не найден + Связанный access token не найден + + + Клиент или ключ неактивен + Клиент или ключ неактивен + + + Клиент не разрешает grant_type=refresh_token + Клиент не разрешает grant_type=refresh_token + + + Неизвестный или неактивный client_id + Неизвестный или неактивный client_id + + + У клиента не задан redirect_uri + У клиента не задан redirect_uri + + + redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri не совпадает с зарегистрированным у клиента + + + Попытка взлома! + Попытка взлома! + + + Неподдерживаемый credential_type + Неподдерживаемый credential_type + + + Укажите credential_type или grant_type + Укажите credential_type или grant_type + + + Нужны client_id и redirect_uri + Нужны client_id и redirect_uri + + + Авторизация пройдена, но сброшена в демо-режиме + Авторизация пройдена, но сброшена в демо-режиме + + + Неизвестная таблица + Неизвестная таблица + + + Запись не найдена + Запись не найдена + + + Нужен fields{} или name+value + Нужен fields{} или name+value + + + Поле не найдено + Поле не найдено + + + Нужен multipart field file + Нужен multipart field file + + + Новость не найдена + Новость не найдена + + + Метод требует значение + Метод требует значение + + + Нельзя выполнить операцию: не задан первичный ключ. + Нельзя выполнить операцию: не задан первичный ключ. + + + Неизвестная колонка «{column}» для таблицы {table} + Неизвестная колонка «{column}» для таблицы {table} + + + Нет права «{action}» на таблицу «{table}» + Нет права «{action}» на таблицу «{table}» + + + Неизвестный метод + Неизвестный метод + + + Безопасность + Безопасность + + + Алгоритм HMAC + Алгоритм HMAC + + + Алгоритм для генерации API-ключей. + Алгоритм для генерации API-ключей. + + + Секрет + Секрет + + + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + + + Длина ключа + Длина ключа + + + Длина генерируемого API-ключа. + Длина генерируемого API-ключа. + + + Маскировать чувствительные поля + Маскировать чувствительные поля + + + Задано DEMO_MODE в .env — маскирование принудительно включено. + Задано DEMO_MODE в .env — маскирование принудительно включено. + + + Скрывать пароли, IP и хеши в ответах API (CRUD). + Скрывать пароли, IP и хеши в ответах API (CRUD). + + + OAuth2 + OAuth2 + + + TTL access token (сек) + TTL access token (сек) + + + Время жизни access token в секундах. + Время жизни access token в секундах. + + + Уровни доступа + Уровни доступа + + + Уровень доступа по умолчанию + Уровень доступа по умолчанию + + + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + + + Профиль пользователя + Профиль пользователя + + + Показывать блок API-ключа в профиле + Показывать блок API-ключа в профиле + + + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + + + Разрешить пользователям генерировать ключ + Разрешить пользователям генерировать ключ + + + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + + + Уведомления о заявках + Уведомления о заявках + + + Уведомлять по почте при заявке на ключ + Уведомлять по почте при заявке на ключ + + + ЛС на сайте при заявке на ключ + ЛС на сайте при заявке на ключ + + + Группы DLE + Группы DLE + + + Получатели уведомлений о заявках. + Получатели уведомлений о заявках. + + + Пользователи + Пользователи + + + Дополнительные получатели уведомлений о заявках (по user_id). + Дополнительные получатели уведомлений о заявках (по user_id). + + + PM: тема заявки + PM: тема заявки + + + Тема личного сообщения для администраторов о новой заявке на API-ключ. + Тема личного сообщения для администраторов о новой заявке на API-ключ. + + + Плейсхолдеры заявки (PM) + Плейсхолдеры заявки (PM) + + + Заявка на API-ключ + Заявка на API-ключ + + + PM: текст заявки + PM: текст заявки + + + Текст личного сообщения администраторам о новой заявке на API-ключ. + Текст личного сообщения администраторам о новой заявке на API-ключ. + + + Уведомления о решении + Уведомления о решении + + + Уведомлять по почте об одобрении / отказе + Уведомлять по почте об одобрении / отказе + + + ЛС об одобрении / отказе + ЛС об одобрении / отказе + + + PM: тема одобрения + PM: тема одобрения + + + Тема личного сообщения пользователю при одобрении API-ключа. + Тема личного сообщения пользователю при одобрении API-ключа. + + + Плейсхолдеры одобрения (PM) + Плейсхолдеры одобрения (PM) + + + API-ключ одобрен + API-ключ одобрен + + + PM: текст одобрения + PM: текст одобрения + + + Текст личного сообщения пользователю при одобрении API-ключа. + Текст личного сообщения пользователю при одобрении API-ключа. + + + PM: тема отказа + PM: тема отказа + + + Тема личного сообщения пользователю при отказе в API-ключе. + Тема личного сообщения пользователю при отказе в API-ключе. + + + Плейсхолдеры отказа (PM) + Плейсхолдеры отказа (PM) + + + API-ключ отклонён + API-ключ отклонён + + + PM: текст отказа + PM: текст отказа + + + Текст личного сообщения пользователю при отказе в API-ключе. + Текст личного сообщения пользователю при отказе в API-ключе. + + + Ваша заявка на API-ключ отклонена. + Ваша заявка на API-ключ отклонена. + + + Email-шаблоны + Email-шаблоны + + + Email: тема заявки + Email: тема заявки + + + Тема письма администраторам о новой заявке на API-ключ. + Тема письма администраторам о новой заявке на API-ключ. + + + Плейсхолдеры заявки (email) + Плейсхолдеры заявки (email) + + + Email: тело заявки + Email: тело заявки + + + HTML или текст письма администраторам о новой заявке на API-ключ. + HTML или текст письма администраторам о новой заявке на API-ключ. + + + Email: тема одобрения + Email: тема одобрения + + + Тема письма пользователю при одобрении API-ключа. + Тема письма пользователю при одобрении API-ключа. + + + Плейсхолдеры решения (email) + Плейсхолдеры решения (email) + + + Email: тема отказа + Email: тема отказа + + + Тема письма пользователю при отказе в API-ключе. + Тема письма пользователю при отказе в API-ключе. + + + Email: тело решения + Email: тело решения + + + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + + + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + Главная + Главная + + API-ключи API-ключи - + + Синхронизация с группами + Синхронизация с группами + + + Заявки на ключ + Заявки на ключ + + OAuth-клиенты OAuth-клиенты + + Настройки + Настройки + + + Журнал изменений + Журнал изменений + + + Список API-ключей + Список API-ключей + + + Активен + Активен + + + Пользователь + Пользователь + + + Действия + Действия + + + Да + Да + + + Права + Права + + + Отключить + Отключить + + + Удалить + Удалить + + + Ключей пока нет + Ключей пока нет + + + Создать ключ + Создать ключ + + + Показать форму + Показать форму + + + Скрыть форму + Скрыть форму + + + Уровень доступа + Уровень доступа + + + — вручную / без уровня — + — вручную / без уровня — + + + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + + + Создать + Создать + + + Сохранить + Сохранить + + + Отмена + Отмена + + + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + + + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + + + Таблица + Таблица + + + Чтение + Чтение + + + Включить все + Включить все + + + Запись + Запись + + + Правка + Правка + + + Удаление + Удаление + + + Список таблиц SchemaRegistry пуст + Список таблиц SchemaRegistry пуст + + + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + + + Группа DLE → уровень доступа + Группа DLE → уровень доступа + + + Группа + Группа + + + — не задано — + — не задано — + + + Группы не найдены + Группы не найдены + + + Эндпоинты Authorization Server + Эндпоинты Authorization Server + + + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + + + Сохраните client_secret сейчас + Сохраните client_secret сейчас + + + он показывается один раз и больше не будет доступен. + он показывается один раз и больше не будет доступен. + + + Скрыть + Скрыть + + + Имя + Имя + + + Изменить + Изменить + + + Клиентов пока нет + Клиентов пока нет + + + Создать клиент + Создать клиент + + + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + + + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + + + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + + + Пересоздать client_secret + Пересоздать client_secret + + + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + + + Название + Название + + + Напр. Mobile app, CI, Postman + Напр. Mobile app, CI, Postman + + + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + + + — выберите — + — выберите — + + + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + + + Redirect URI + Redirect URI + + + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + + + Grant types + Grant types + + + сервер-сервер без пользователя + сервер-сервер без пользователя + + + логин/пароль пользователя DLE + логин/пароль пользователя DLE + + + браузерный OAuth-код (нужен Redirect URI) + браузерный OAuth-код (нужен Redirect URI) + + + обновление access_token + обновление access_token + + + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + + + Неактивный клиент не сможет получать новые токены. + Неактивный клиент не сможет получать новые токены. + + + Заявки на API-ключ + Заявки на API-ключ + + + Статус + Статус + + + Дата + Дата + + + Отклонить + Отклонить + + + Заявок нет + Заявок нет + + + Сорт. + Сорт. + + + Премод. + Премод. + + + Уровней пока нет + Уровней пока нет + + + Создать уровень + Создать уровень + + + Сортировка + Сортировка + + + Премодерация заявок на ключ + Премодерация заявок на ключ + + + Только свои записи + Только свои записи + + + Полный доступ (cheater) + Полный доступ (cheater) + + + Маскировать IP + Маскировать IP + + + Маскировать пароли/хеши + Маскировать пароли/хеши + + + Маскировать лишние ПДн + Маскировать лишние ПДн + + + Scopes уровня (read / write / edit / delete) + Scopes уровня (read / write / edit / delete) + + + API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) на CycleORM из DevCraft Admin. + + + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + + + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + + + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + + + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + + + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + + + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + + + Каталог Schema таблиц DLE в api/includes/Schemas. + Каталог Schema таблиц DLE в api/includes/Schemas. + + + OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) и документация OAD в mhdocs. + + + Загрузка файлов через штатный пайплайн DLE. + Загрузка файлов через штатный пайплайн DLE. + + + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + + + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + + + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + + + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + + + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + + + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + + + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + + + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + + + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + + + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + + + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + + + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + + + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + + + Приём сырого API-ключа как Bearer на ресурсах /table. + Приём сырого API-ключа как Bearer на ресурсах /table. + + + Оптимизация кода под PHP 8.2 + Оптимизация кода под PHP 8.2 + + + Минимально поддерживаемая версия DLE - 16.0 + Минимально поддерживаемая версия DLE - 16.0 + + + Изменён список алгоритмов на hash_hmac_algos + Изменён список алгоритмов на hash_hmac_algos + + + Убрана процедура проверки атрибута в таблице + Убрана процедура проверки атрибута в таблице + + + Оптимизирован код + Оптимизирован код + + + Генерация ключа привязана к времени + Генерация ключа привязана к времени + + + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + + + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + + + Обновлены данные для таблиц базы данных + Обновлены данные для таблиц базы данных + + + Обновлена документация API + Обновлена документация API + + + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + + + Безопасный вывод данных (IP, пароли и хэш суммы) + Безопасный вывод данных (IP, пароли и хэш суммы) + + + Добавлена функция вывода только принадлежащих API-ключу записей + Добавлена функция вывода только принадлежащих API-ключу записей + + + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + + + Для удаления новостей была использована функция движка + Для удаления новостей была использована функция движка + + + Для удаления комментариев была использована функция движка + Для удаления комментариев была использована функция движка + + + Изменил нумерование версий + Изменил нумерование версий + + + composer настроил под версию PHP 5.6 + composer настроил под версию PHP 5.6 + + + Были исправлены несколько багов, спасибо @jyarali + Были исправлены несколько багов, спасибо @jyarali + + + Исправлена проверка ключей в базе данных + Исправлена проверка ключей в базе данных + + + Добавлена проверка по длине значения для типа "string" + Добавлена проверка по длине значения для типа "string" + + + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + + + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + + + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + + + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + + + При регистрации и авторизации возвращается массив данных об этом пользователе + При регистрации и авторизации возвращается массив данных об этом пользователе + + + Первая стандартная версия + Первая стандартная версия + + + гость + гость + + + DLE API + DLE API + + + Генерация ключа запрещена + Генерация ключа запрещена + + + У вас уже есть активный API-ключ + У вас уже есть активный API-ключ + + + Не задан уровень доступа по умолчанию + Не задан уровень доступа по умолчанию + + + Заявка уже ожидает рассмотрения + Заявка уже ожидает рассмотрения + + + Заявка отправлена на модерацию + Заявка отправлена на модерацию + + + Ошибка + Ошибка + + + Некорректный идентификатор + Некорректный идентификатор + + + Заявка не найдена + Заявка не найдена + + + Заявка уже обработана + Заявка уже обработана + + + Одобрено + Одобрено + + + Отклонено + Отклонено + + + Ключ создан + Ключ создан + + + Redirect URI должен быть ссылкой http(s) + Redirect URI должен быть ссылкой http(s) + + + Выберите хотя бы один grant_type + Выберите хотя бы один grant_type + + + Укажите действующий API-ключ + Укажите действующий API-ключ + + + Клиент не найден + Клиент не найден + + + Клиент сохранён + Клиент сохранён + + + Синхронизация сохранена + Синхронизация сохранена + + + Ключ не найден + Ключ не найден + + + Схема настроек недоступна + Схема настроек недоступна + + + Файл конфигурации недоступен для записи + Файл конфигурации недоступен для записи + + + Каталог конфигурации недоступен для записи + Каталог конфигурации недоступен для записи + + + Все поля недействительны + Все поля недействительны + + + Внимание + Внимание + + + Частичное сохранение с ошибками + Частичное сохранение с ошибками + + + Сохранено + Сохранено + + + Ключ сохранён + Ключ сохранён + + + Ключ удалён + Ключ удалён + + + client_secret пересоздан + client_secret пересоздан + + + Ключ включён + Ключ включён + + + Ключ отключён + Ключ отключён + + + Удалено + Удалено + + + Требуется авторизация + Требуется авторизация + + + Недостаточно прав + Недостаточно прав + + + Нельзя запрашивать ключ за другого пользователя + Нельзя запрашивать ключ за другого пользователя + + + Не удалось + Не удалось + + + Недостаточно прав для модерации + Недостаточно прав для модерации + + + Заявка не найдена или уже обработана + Заявка не найдена или уже обработана + + + Уровень не найден + Уровень не найден + + + Укажите название уровня + Укажите название уровня + + + OAuth-клиент создан + OAuth-клиент создан + + + Клиент удалён + Клиент удалён + + + История изменений + История изменений + From 0df6fb39d8cdc2fdb48e5d4d1e77659c33e3a967 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 15:43:43 +0200 Subject: [PATCH 05/10] New translations dleapi.xliff (Ukrainian) [ci skip] --- upload/devcraft/locales/uk_UA/dleapi.xliff | 1182 +++++++++++++++++++- 1 file changed, 1175 insertions(+), 7 deletions(-) diff --git a/upload/devcraft/locales/uk_UA/dleapi.xliff b/upload/devcraft/locales/uk_UA/dleapi.xliff index 53ed6b17..608c31dc 100644 --- a/upload/devcraft/locales/uk_UA/dleapi.xliff +++ b/upload/devcraft/locales/uk_UA/dleapi.xliff @@ -1,19 +1,1187 @@ - + - + - - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + API-ключ + API-ключ - + + Новый + Новый + + + Загрузка… + Загрузка… + + + Ключ + Ключ + + + Копировать + Копировать + + + Когда + Когда + + + Истекает + Истекает + + + Уровень + Уровень + + + Запросить ключ + Запросить ключ + + + Одобрить + Одобрить + + + Отказать + Отказать + + + Метод не разрешён + Метод не разрешён + + + Допустимо + Допустимо + + + Маршрут не найден + Маршрут не найден + + + Неверный или неактивный API-ключ + Неверный или неактивный API-ключ + + + Неверный логин или пароль + Неверный логин или пароль + + + Нет API-ключа пользователя и гостевого ключа + Нет API-ключа пользователя и гостевого ключа + + + Неверный client_id или client_secret + Неверный client_id или client_secret + + + Клиент не разрешает grant_type=client_credentials + Клиент не разрешает grant_type=client_credentials + + + API-ключ клиента неактивен + API-ключ клиента неактивен + + + Нужны оба: client_id и client_secret + Нужны оба: client_id и client_secret + + + Клиент не разрешает grant_type=password + Клиент не разрешает grant_type=password + + + Неверный client + Неверный client + + + Клиент не разрешает grant_type=authorization_code + Клиент не разрешает grant_type=authorization_code + + + Код недействителен + Код недействителен + + + redirect_uri не совпадает + redirect_uri не совпадает + + + Ошибка проверки PKCE + Ошибка проверки PKCE + + + API-ключ неактивен + API-ключ неактивен + + + Refresh token недействителен + Refresh token недействителен + + + Связанный access token не найден + Связанный access token не найден + + + Клиент или ключ неактивен + Клиент или ключ неактивен + + + Клиент не разрешает grant_type=refresh_token + Клиент не разрешает grant_type=refresh_token + + + Неизвестный или неактивный client_id + Неизвестный или неактивный client_id + + + У клиента не задан redirect_uri + У клиента не задан redirect_uri + + + redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri не совпадает с зарегистрированным у клиента + + + Попытка взлома! + Попытка взлома! + + + Неподдерживаемый credential_type + Неподдерживаемый credential_type + + + Укажите credential_type или grant_type + Укажите credential_type или grant_type + + + Нужны client_id и redirect_uri + Нужны client_id и redirect_uri + + + Авторизация пройдена, но сброшена в демо-режиме + Авторизация пройдена, но сброшена в демо-режиме + + + Неизвестная таблица + Неизвестная таблица + + + Запись не найдена + Запись не найдена + + + Нужен fields{} или name+value + Нужен fields{} или name+value + + + Поле не найдено + Поле не найдено + + + Нужен multipart field file + Нужен multipart field file + + + Новость не найдена + Новость не найдена + + + Метод требует значение + Метод требует значение + + + Нельзя выполнить операцию: не задан первичный ключ. + Нельзя выполнить операцию: не задан первичный ключ. + + + Неизвестная колонка «{column}» для таблицы {table} + Неизвестная колонка «{column}» для таблицы {table} + + + Нет права «{action}» на таблицу «{table}» + Нет права «{action}» на таблицу «{table}» + + + Неизвестный метод + Неизвестный метод + + + Безопасность + Безопасность + + + Алгоритм HMAC + Алгоритм HMAC + + + Алгоритм для генерации API-ключей. + Алгоритм для генерации API-ключей. + + + Секрет + Секрет + + + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + + + Длина ключа + Длина ключа + + + Длина генерируемого API-ключа. + Длина генерируемого API-ключа. + + + Маскировать чувствительные поля + Маскировать чувствительные поля + + + Задано DEMO_MODE в .env — маскирование принудительно включено. + Задано DEMO_MODE в .env — маскирование принудительно включено. + + + Скрывать пароли, IP и хеши в ответах API (CRUD). + Скрывать пароли, IP и хеши в ответах API (CRUD). + + + OAuth2 + OAuth2 + + + TTL access token (сек) + TTL access token (сек) + + + Время жизни access token в секундах. + Время жизни access token в секундах. + + + Уровни доступа + Уровни доступа + + + Уровень доступа по умолчанию + Уровень доступа по умолчанию + + + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + + + Профиль пользователя + Профиль пользователя + + + Показывать блок API-ключа в профиле + Показывать блок API-ключа в профиле + + + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + + + Разрешить пользователям генерировать ключ + Разрешить пользователям генерировать ключ + + + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + + + Уведомления о заявках + Уведомления о заявках + + + Уведомлять по почте при заявке на ключ + Уведомлять по почте при заявке на ключ + + + ЛС на сайте при заявке на ключ + ЛС на сайте при заявке на ключ + + + Группы DLE + Группы DLE + + + Получатели уведомлений о заявках. + Получатели уведомлений о заявках. + + + Пользователи + Пользователи + + + Дополнительные получатели уведомлений о заявках (по user_id). + Дополнительные получатели уведомлений о заявках (по user_id). + + + PM: тема заявки + PM: тема заявки + + + Тема личного сообщения для администраторов о новой заявке на API-ключ. + Тема личного сообщения для администраторов о новой заявке на API-ключ. + + + Плейсхолдеры заявки (PM) + Плейсхолдеры заявки (PM) + + + Заявка на API-ключ + Заявка на API-ключ + + + PM: текст заявки + PM: текст заявки + + + Текст личного сообщения администраторам о новой заявке на API-ключ. + Текст личного сообщения администраторам о новой заявке на API-ключ. + + + Уведомления о решении + Уведомления о решении + + + Уведомлять по почте об одобрении / отказе + Уведомлять по почте об одобрении / отказе + + + ЛС об одобрении / отказе + ЛС об одобрении / отказе + + + PM: тема одобрения + PM: тема одобрения + + + Тема личного сообщения пользователю при одобрении API-ключа. + Тема личного сообщения пользователю при одобрении API-ключа. + + + Плейсхолдеры одобрения (PM) + Плейсхолдеры одобрения (PM) + + + API-ключ одобрен + API-ключ одобрен + + + PM: текст одобрения + PM: текст одобрения + + + Текст личного сообщения пользователю при одобрении API-ключа. + Текст личного сообщения пользователю при одобрении API-ключа. + + + PM: тема отказа + PM: тема отказа + + + Тема личного сообщения пользователю при отказе в API-ключе. + Тема личного сообщения пользователю при отказе в API-ключе. + + + Плейсхолдеры отказа (PM) + Плейсхолдеры отказа (PM) + + + API-ключ отклонён + API-ключ отклонён + + + PM: текст отказа + PM: текст отказа + + + Текст личного сообщения пользователю при отказе в API-ключе. + Текст личного сообщения пользователю при отказе в API-ключе. + + + Ваша заявка на API-ключ отклонена. + Ваша заявка на API-ключ отклонена. + + + Email-шаблоны + Email-шаблоны + + + Email: тема заявки + Email: тема заявки + + + Тема письма администраторам о новой заявке на API-ключ. + Тема письма администраторам о новой заявке на API-ключ. + + + Плейсхолдеры заявки (email) + Плейсхолдеры заявки (email) + + + Email: тело заявки + Email: тело заявки + + + HTML или текст письма администраторам о новой заявке на API-ключ. + HTML или текст письма администраторам о новой заявке на API-ключ. + + + Email: тема одобрения + Email: тема одобрения + + + Тема письма пользователю при одобрении API-ключа. + Тема письма пользователю при одобрении API-ключа. + + + Плейсхолдеры решения (email) + Плейсхолдеры решения (email) + + + Email: тема отказа + Email: тема отказа + + + Тема письма пользователю при отказе в API-ключе. + Тема письма пользователю при отказе в API-ключе. + + + Email: тело решения + Email: тело решения + + + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + + + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + Главная + Главная + + API-ключи API-ключи - + + Синхронизация с группами + Синхронизация с группами + + + Заявки на ключ + Заявки на ключ + + OAuth-клиенты OAuth-клиенты + + Настройки + Настройки + + + Журнал изменений + Журнал изменений + + + Список API-ключей + Список API-ключей + + + Активен + Активен + + + Пользователь + Пользователь + + + Действия + Действия + + + Да + Да + + + Права + Права + + + Отключить + Отключить + + + Удалить + Удалить + + + Ключей пока нет + Ключей пока нет + + + Создать ключ + Создать ключ + + + Показать форму + Показать форму + + + Скрыть форму + Скрыть форму + + + Уровень доступа + Уровень доступа + + + — вручную / без уровня — + — вручную / без уровня — + + + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + + + Создать + Создать + + + Сохранить + Сохранить + + + Отмена + Отмена + + + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + + + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + + + Таблица + Таблица + + + Чтение + Чтение + + + Включить все + Включить все + + + Запись + Запись + + + Правка + Правка + + + Удаление + Удаление + + + Список таблиц SchemaRegistry пуст + Список таблиц SchemaRegistry пуст + + + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + + + Группа DLE → уровень доступа + Группа DLE → уровень доступа + + + Группа + Группа + + + — не задано — + — не задано — + + + Группы не найдены + Группы не найдены + + + Эндпоинты Authorization Server + Эндпоинты Authorization Server + + + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + + + Сохраните client_secret сейчас + Сохраните client_secret сейчас + + + он показывается один раз и больше не будет доступен. + он показывается один раз и больше не будет доступен. + + + Скрыть + Скрыть + + + Имя + Имя + + + Изменить + Изменить + + + Клиентов пока нет + Клиентов пока нет + + + Создать клиент + Создать клиент + + + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + + + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + + + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + + + Пересоздать client_secret + Пересоздать client_secret + + + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + + + Название + Название + + + Напр. Mobile app, CI, Postman + Напр. Mobile app, CI, Postman + + + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + + + — выберите — + — выберите — + + + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + + + Redirect URI + Redirect URI + + + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + + + Grant types + Grant types + + + сервер-сервер без пользователя + сервер-сервер без пользователя + + + логин/пароль пользователя DLE + логин/пароль пользователя DLE + + + браузерный OAuth-код (нужен Redirect URI) + браузерный OAuth-код (нужен Redirect URI) + + + обновление access_token + обновление access_token + + + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + + + Неактивный клиент не сможет получать новые токены. + Неактивный клиент не сможет получать новые токены. + + + Заявки на API-ключ + Заявки на API-ключ + + + Статус + Статус + + + Дата + Дата + + + Отклонить + Отклонить + + + Заявок нет + Заявок нет + + + Сорт. + Сорт. + + + Премод. + Премод. + + + Уровней пока нет + Уровней пока нет + + + Создать уровень + Создать уровень + + + Сортировка + Сортировка + + + Премодерация заявок на ключ + Премодерация заявок на ключ + + + Только свои записи + Только свои записи + + + Полный доступ (cheater) + Полный доступ (cheater) + + + Маскировать IP + Маскировать IP + + + Маскировать пароли/хеши + Маскировать пароли/хеши + + + Маскировать лишние ПДн + Маскировать лишние ПДн + + + Scopes уровня (read / write / edit / delete) + Scopes уровня (read / write / edit / delete) + + + API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) на CycleORM из DevCraft Admin. + + + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + + + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + + + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + + + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + + + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + + + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + + + Каталог Schema таблиц DLE в api/includes/Schemas. + Каталог Schema таблиц DLE в api/includes/Schemas. + + + OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) и документация OAD в mhdocs. + + + Загрузка файлов через штатный пайплайн DLE. + Загрузка файлов через штатный пайплайн DLE. + + + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + + + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + + + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + + + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + + + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + + + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + + + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + + + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + + + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + + + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + + + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + + + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + + + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + + + Приём сырого API-ключа как Bearer на ресурсах /table. + Приём сырого API-ключа как Bearer на ресурсах /table. + + + Оптимизация кода под PHP 8.2 + Оптимизация кода под PHP 8.2 + + + Минимально поддерживаемая версия DLE - 16.0 + Минимально поддерживаемая версия DLE - 16.0 + + + Изменён список алгоритмов на hash_hmac_algos + Изменён список алгоритмов на hash_hmac_algos + + + Убрана процедура проверки атрибута в таблице + Убрана процедура проверки атрибута в таблице + + + Оптимизирован код + Оптимизирован код + + + Генерация ключа привязана к времени + Генерация ключа привязана к времени + + + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + + + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + + + Обновлены данные для таблиц базы данных + Обновлены данные для таблиц базы данных + + + Обновлена документация API + Обновлена документация API + + + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + + + Безопасный вывод данных (IP, пароли и хэш суммы) + Безопасный вывод данных (IP, пароли и хэш суммы) + + + Добавлена функция вывода только принадлежащих API-ключу записей + Добавлена функция вывода только принадлежащих API-ключу записей + + + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + + + Для удаления новостей была использована функция движка + Для удаления новостей была использована функция движка + + + Для удаления комментариев была использована функция движка + Для удаления комментариев была использована функция движка + + + Изменил нумерование версий + Изменил нумерование версий + + + composer настроил под версию PHP 5.6 + composer настроил под версию PHP 5.6 + + + Были исправлены несколько багов, спасибо @jyarali + Были исправлены несколько багов, спасибо @jyarali + + + Исправлена проверка ключей в базе данных + Исправлена проверка ключей в базе данных + + + Добавлена проверка по длине значения для типа "string" + Добавлена проверка по длине значения для типа "string" + + + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + + + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + + + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + + + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + + + При регистрации и авторизации возвращается массив данных об этом пользователе + При регистрации и авторизации возвращается массив данных об этом пользователе + + + Первая стандартная версия + Первая стандартная версия + + + гость + гость + + + DLE API + DLE API + + + Генерация ключа запрещена + Генерация ключа запрещена + + + У вас уже есть активный API-ключ + У вас уже есть активный API-ключ + + + Не задан уровень доступа по умолчанию + Не задан уровень доступа по умолчанию + + + Заявка уже ожидает рассмотрения + Заявка уже ожидает рассмотрения + + + Заявка отправлена на модерацию + Заявка отправлена на модерацию + + + Ошибка + Ошибка + + + Некорректный идентификатор + Некорректный идентификатор + + + Заявка не найдена + Заявка не найдена + + + Заявка уже обработана + Заявка уже обработана + + + Одобрено + Одобрено + + + Отклонено + Отклонено + + + Ключ создан + Ключ создан + + + Redirect URI должен быть ссылкой http(s) + Redirect URI должен быть ссылкой http(s) + + + Выберите хотя бы один grant_type + Выберите хотя бы один grant_type + + + Укажите действующий API-ключ + Укажите действующий API-ключ + + + Клиент не найден + Клиент не найден + + + Клиент сохранён + Клиент сохранён + + + Синхронизация сохранена + Синхронизация сохранена + + + Ключ не найден + Ключ не найден + + + Схема настроек недоступна + Схема настроек недоступна + + + Файл конфигурации недоступен для записи + Файл конфигурации недоступен для записи + + + Каталог конфигурации недоступен для записи + Каталог конфигурации недоступен для записи + + + Все поля недействительны + Все поля недействительны + + + Внимание + Внимание + + + Частичное сохранение с ошибками + Частичное сохранение с ошибками + + + Сохранено + Сохранено + + + Ключ сохранён + Ключ сохранён + + + Ключ удалён + Ключ удалён + + + client_secret пересоздан + client_secret пересоздан + + + Ключ включён + Ключ включён + + + Ключ отключён + Ключ отключён + + + Удалено + Удалено + + + Требуется авторизация + Требуется авторизация + + + Недостаточно прав + Недостаточно прав + + + Нельзя запрашивать ключ за другого пользователя + Нельзя запрашивать ключ за другого пользователя + + + Не удалось + Не удалось + + + Недостаточно прав для модерации + Недостаточно прав для модерации + + + Заявка не найдена или уже обработана + Заявка не найдена или уже обработана + + + Уровень не найден + Уровень не найден + + + Укажите название уровня + Укажите название уровня + + + OAuth-клиент создан + OAuth-клиент создан + + + Клиент удалён + Клиент удалён + + + История изменений + История изменений + From 04f94ba34663d63944f154fb18de6942beeb2393 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 15:43:44 +0200 Subject: [PATCH 06/10] New translations dleapi.xliff (English) [ci skip] --- upload/devcraft/locales/en_US/dleapi.xliff | 1182 +++++++++++++++++++- 1 file changed, 1175 insertions(+), 7 deletions(-) diff --git a/upload/devcraft/locales/en_US/dleapi.xliff b/upload/devcraft/locales/en_US/dleapi.xliff index 7ca7123e..2b59c5b7 100644 --- a/upload/devcraft/locales/en_US/dleapi.xliff +++ b/upload/devcraft/locales/en_US/dleapi.xliff @@ -1,19 +1,1187 @@ - + - + - - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 + + API-ключ + API-ключ - + + Новый + Новый + + + Загрузка… + Загрузка… + + + Ключ + Ключ + + + Копировать + Копировать + + + Когда + Когда + + + Истекает + Истекает + + + Уровень + Уровень + + + Запросить ключ + Запросить ключ + + + Одобрить + Одобрить + + + Отказать + Отказать + + + Метод не разрешён + Метод не разрешён + + + Допустимо + Допустимо + + + Маршрут не найден + Маршрут не найден + + + Неверный или неактивный API-ключ + Неверный или неактивный API-ключ + + + Неверный логин или пароль + Неверный логин или пароль + + + Нет API-ключа пользователя и гостевого ключа + Нет API-ключа пользователя и гостевого ключа + + + Неверный client_id или client_secret + Неверный client_id или client_secret + + + Клиент не разрешает grant_type=client_credentials + Клиент не разрешает grant_type=client_credentials + + + API-ключ клиента неактивен + API-ключ клиента неактивен + + + Нужны оба: client_id и client_secret + Нужны оба: client_id и client_secret + + + Клиент не разрешает grant_type=password + Клиент не разрешает grant_type=password + + + Неверный client + Неверный client + + + Клиент не разрешает grant_type=authorization_code + Клиент не разрешает grant_type=authorization_code + + + Код недействителен + Код недействителен + + + redirect_uri не совпадает + redirect_uri не совпадает + + + Ошибка проверки PKCE + Ошибка проверки PKCE + + + API-ключ неактивен + API-ключ неактивен + + + Refresh token недействителен + Refresh token недействителен + + + Связанный access token не найден + Связанный access token не найден + + + Клиент или ключ неактивен + Клиент или ключ неактивен + + + Клиент не разрешает grant_type=refresh_token + Клиент не разрешает grant_type=refresh_token + + + Неизвестный или неактивный client_id + Неизвестный или неактивный client_id + + + У клиента не задан redirect_uri + У клиента не задан redirect_uri + + + redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri не совпадает с зарегистрированным у клиента + + + Попытка взлома! + Попытка взлома! + + + Неподдерживаемый credential_type + Неподдерживаемый credential_type + + + Укажите credential_type или grant_type + Укажите credential_type или grant_type + + + Нужны client_id и redirect_uri + Нужны client_id и redirect_uri + + + Авторизация пройдена, но сброшена в демо-режиме + Авторизация пройдена, но сброшена в демо-режиме + + + Неизвестная таблица + Неизвестная таблица + + + Запись не найдена + Запись не найдена + + + Нужен fields{} или name+value + Нужен fields{} или name+value + + + Поле не найдено + Поле не найдено + + + Нужен multipart field file + Нужен multipart field file + + + Новость не найдена + Новость не найдена + + + Метод требует значение + Метод требует значение + + + Нельзя выполнить операцию: не задан первичный ключ. + Нельзя выполнить операцию: не задан первичный ключ. + + + Неизвестная колонка «{column}» для таблицы {table} + Неизвестная колонка «{column}» для таблицы {table} + + + Нет права «{action}» на таблицу «{table}» + Нет права «{action}» на таблицу «{table}» + + + Неизвестный метод + Неизвестный метод + + + Безопасность + Безопасность + + + Алгоритм HMAC + Алгоритм HMAC + + + Алгоритм для генерации API-ключей. + Алгоритм для генерации API-ключей. + + + Секрет + Секрет + + + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + + + Длина ключа + Длина ключа + + + Длина генерируемого API-ключа. + Длина генерируемого API-ключа. + + + Маскировать чувствительные поля + Маскировать чувствительные поля + + + Задано DEMO_MODE в .env — маскирование принудительно включено. + Задано DEMO_MODE в .env — маскирование принудительно включено. + + + Скрывать пароли, IP и хеши в ответах API (CRUD). + Скрывать пароли, IP и хеши в ответах API (CRUD). + + + OAuth2 + OAuth2 + + + TTL access token (сек) + TTL access token (сек) + + + Время жизни access token в секундах. + Время жизни access token в секундах. + + + Уровни доступа + Уровни доступа + + + Уровень доступа по умолчанию + Уровень доступа по умолчанию + + + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + + + Профиль пользователя + Профиль пользователя + + + Показывать блок API-ключа в профиле + Показывать блок API-ключа в профиле + + + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + + + Разрешить пользователям генерировать ключ + Разрешить пользователям генерировать ключ + + + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + + + Уведомления о заявках + Уведомления о заявках + + + Уведомлять по почте при заявке на ключ + Уведомлять по почте при заявке на ключ + + + ЛС на сайте при заявке на ключ + ЛС на сайте при заявке на ключ + + + Группы DLE + Группы DLE + + + Получатели уведомлений о заявках. + Получатели уведомлений о заявках. + + + Пользователи + Пользователи + + + Дополнительные получатели уведомлений о заявках (по user_id). + Дополнительные получатели уведомлений о заявках (по user_id). + + + PM: тема заявки + PM: тема заявки + + + Тема личного сообщения для администраторов о новой заявке на API-ключ. + Тема личного сообщения для администраторов о новой заявке на API-ключ. + + + Плейсхолдеры заявки (PM) + Плейсхолдеры заявки (PM) + + + Заявка на API-ключ + Заявка на API-ключ + + + PM: текст заявки + PM: текст заявки + + + Текст личного сообщения администраторам о новой заявке на API-ключ. + Текст личного сообщения администраторам о новой заявке на API-ключ. + + + Уведомления о решении + Уведомления о решении + + + Уведомлять по почте об одобрении / отказе + Уведомлять по почте об одобрении / отказе + + + ЛС об одобрении / отказе + ЛС об одобрении / отказе + + + PM: тема одобрения + PM: тема одобрения + + + Тема личного сообщения пользователю при одобрении API-ключа. + Тема личного сообщения пользователю при одобрении API-ключа. + + + Плейсхолдеры одобрения (PM) + Плейсхолдеры одобрения (PM) + + + API-ключ одобрен + API-ключ одобрен + + + PM: текст одобрения + PM: текст одобрения + + + Текст личного сообщения пользователю при одобрении API-ключа. + Текст личного сообщения пользователю при одобрении API-ключа. + + + PM: тема отказа + PM: тема отказа + + + Тема личного сообщения пользователю при отказе в API-ключе. + Тема личного сообщения пользователю при отказе в API-ключе. + + + Плейсхолдеры отказа (PM) + Плейсхолдеры отказа (PM) + + + API-ключ отклонён + API-ключ отклонён + + + PM: текст отказа + PM: текст отказа + + + Текст личного сообщения пользователю при отказе в API-ключе. + Текст личного сообщения пользователю при отказе в API-ключе. + + + Ваша заявка на API-ключ отклонена. + Ваша заявка на API-ключ отклонена. + + + Email-шаблоны + Email-шаблоны + + + Email: тема заявки + Email: тема заявки + + + Тема письма администраторам о новой заявке на API-ключ. + Тема письма администраторам о новой заявке на API-ключ. + + + Плейсхолдеры заявки (email) + Плейсхолдеры заявки (email) + + + Email: тело заявки + Email: тело заявки + + + HTML или текст письма администраторам о новой заявке на API-ключ. + HTML или текст письма администраторам о новой заявке на API-ключ. + + + Email: тема одобрения + Email: тема одобрения + + + Тема письма пользователю при одобрении API-ключа. + Тема письма пользователю при одобрении API-ключа. + + + Плейсхолдеры решения (email) + Плейсхолдеры решения (email) + + + Email: тема отказа + Email: тема отказа + + + Тема письма пользователю при отказе в API-ключе. + Тема письма пользователю при отказе в API-ключе. + + + Email: тело решения + Email: тело решения + + + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + + + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + + + Главная + Главная + + API-ключи API-ключи - + + Синхронизация с группами + Синхронизация с группами + + + Заявки на ключ + Заявки на ключ + + OAuth-клиенты OAuth-клиенты + + Настройки + Настройки + + + Журнал изменений + Журнал изменений + + + Список API-ключей + Список API-ключей + + + Активен + Активен + + + Пользователь + Пользователь + + + Действия + Действия + + + Да + Да + + + Права + Права + + + Отключить + Отключить + + + Удалить + Удалить + + + Ключей пока нет + Ключей пока нет + + + Создать ключ + Создать ключ + + + Показать форму + Показать форму + + + Скрыть форму + Скрыть форму + + + Уровень доступа + Уровень доступа + + + — вручную / без уровня — + — вручную / без уровня — + + + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + + + Создать + Создать + + + Сохранить + Сохранить + + + Отмена + Отмена + + + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Права доступа к таблицам (если уровень не задан или для legacy-ключей) + + + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + + + Таблица + Таблица + + + Чтение + Чтение + + + Включить все + Включить все + + + Запись + Запись + + + Правка + Правка + + + Удаление + Удаление + + + Список таблиц SchemaRegistry пуст + Список таблиц SchemaRegistry пуст + + + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + + + Группа DLE → уровень доступа + Группа DLE → уровень доступа + + + Группа + Группа + + + — не задано — + — не задано — + + + Группы не найдены + Группы не найдены + + + Эндпоинты Authorization Server + Эндпоинты Authorization Server + + + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + + + Сохраните client_secret сейчас + Сохраните client_secret сейчас + + + он показывается один раз и больше не будет доступен. + он показывается один раз и больше не будет доступен. + + + Скрыть + Скрыть + + + Имя + Имя + + + Изменить + Изменить + + + Клиентов пока нет + Клиентов пока нет + + + Создать клиент + Создать клиент + + + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + + + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + + + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + + + Пересоздать client_secret + Пересоздать client_secret + + + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + + + Название + Название + + + Напр. Mobile app, CI, Postman + Напр. Mobile app, CI, Postman + + + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + + + — выберите — + — выберите — + + + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + + + Redirect URI + Redirect URI + + + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + + + Grant types + Grant types + + + сервер-сервер без пользователя + сервер-сервер без пользователя + + + логин/пароль пользователя DLE + логин/пароль пользователя DLE + + + браузерный OAuth-код (нужен Redirect URI) + браузерный OAuth-код (нужен Redirect URI) + + + обновление access_token + обновление access_token + + + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + + + Неактивный клиент не сможет получать новые токены. + Неактивный клиент не сможет получать новые токены. + + + Заявки на API-ключ + Заявки на API-ключ + + + Статус + Статус + + + Дата + Дата + + + Отклонить + Отклонить + + + Заявок нет + Заявок нет + + + Сорт. + Сорт. + + + Премод. + Премод. + + + Уровней пока нет + Уровней пока нет + + + Создать уровень + Создать уровень + + + Сортировка + Сортировка + + + Премодерация заявок на ключ + Премодерация заявок на ключ + + + Только свои записи + Только свои записи + + + Полный доступ (cheater) + Полный доступ (cheater) + + + Маскировать IP + Маскировать IP + + + Маскировать пароли/хеши + Маскировать пароли/хеши + + + Маскировать лишние ПДн + Маскировать лишние ПДн + + + Scopes уровня (read / write / edit / delete) + Scopes уровня (read / write / edit / delete) + + + API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) на CycleORM из DevCraft Admin. + + + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + + + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + + + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + + + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + + + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + + + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + + + Каталог Schema таблиц DLE в api/includes/Schemas. + Каталог Schema таблиц DLE в api/includes/Schemas. + + + OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) и документация OAD в mhdocs. + + + Загрузка файлов через штатный пайплайн DLE. + Загрузка файлов через штатный пайплайн DLE. + + + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + + + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + + + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + + + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + + + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + + + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + + + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + + + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + + + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + + + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + + + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + + + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + + + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + + + Приём сырого API-ключа как Bearer на ресурсах /table. + Приём сырого API-ключа как Bearer на ресурсах /table. + + + Оптимизация кода под PHP 8.2 + Оптимизация кода под PHP 8.2 + + + Минимально поддерживаемая версия DLE - 16.0 + Минимально поддерживаемая версия DLE - 16.0 + + + Изменён список алгоритмов на hash_hmac_algos + Изменён список алгоритмов на hash_hmac_algos + + + Убрана процедура проверки атрибута в таблице + Убрана процедура проверки атрибута в таблице + + + Оптимизирован код + Оптимизирован код + + + Генерация ключа привязана к времени + Генерация ключа привязана к времени + + + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + + + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + + + Обновлены данные для таблиц базы данных + Обновлены данные для таблиц базы данных + + + Обновлена документация API + Обновлена документация API + + + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + + + Безопасный вывод данных (IP, пароли и хэш суммы) + Безопасный вывод данных (IP, пароли и хэш суммы) + + + Добавлена функция вывода только принадлежащих API-ключу записей + Добавлена функция вывода только принадлежащих API-ключу записей + + + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + + + Для удаления новостей была использована функция движка + Для удаления новостей была использована функция движка + + + Для удаления комментариев была использована функция движка + Для удаления комментариев была использована функция движка + + + Изменил нумерование версий + Изменил нумерование версий + + + composer настроил под версию PHP 5.6 + composer настроил под версию PHP 5.6 + + + Были исправлены несколько багов, спасибо @jyarali + Были исправлены несколько багов, спасибо @jyarali + + + Исправлена проверка ключей в базе данных + Исправлена проверка ключей в базе данных + + + Добавлена проверка по длине значения для типа "string" + Добавлена проверка по длине значения для типа "string" + + + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + + + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + + + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + + + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + + + При регистрации и авторизации возвращается массив данных об этом пользователе + При регистрации и авторизации возвращается массив данных об этом пользователе + + + Первая стандартная версия + Первая стандартная версия + + + гость + гость + + + DLE API + DLE API + + + Генерация ключа запрещена + Генерация ключа запрещена + + + У вас уже есть активный API-ключ + У вас уже есть активный API-ключ + + + Не задан уровень доступа по умолчанию + Не задан уровень доступа по умолчанию + + + Заявка уже ожидает рассмотрения + Заявка уже ожидает рассмотрения + + + Заявка отправлена на модерацию + Заявка отправлена на модерацию + + + Ошибка + Ошибка + + + Некорректный идентификатор + Некорректный идентификатор + + + Заявка не найдена + Заявка не найдена + + + Заявка уже обработана + Заявка уже обработана + + + Одобрено + Одобрено + + + Отклонено + Отклонено + + + Ключ создан + Ключ создан + + + Redirect URI должен быть ссылкой http(s) + Redirect URI должен быть ссылкой http(s) + + + Выберите хотя бы один grant_type + Выберите хотя бы один grant_type + + + Укажите действующий API-ключ + Укажите действующий API-ключ + + + Клиент не найден + Клиент не найден + + + Клиент сохранён + Клиент сохранён + + + Синхронизация сохранена + Синхронизация сохранена + + + Ключ не найден + Ключ не найден + + + Схема настроек недоступна + Схема настроек недоступна + + + Файл конфигурации недоступен для записи + Файл конфигурации недоступен для записи + + + Каталог конфигурации недоступен для записи + Каталог конфигурации недоступен для записи + + + Все поля недействительны + Все поля недействительны + + + Внимание + Внимание + + + Частичное сохранение с ошибками + Частичное сохранение с ошибками + + + Сохранено + Сохранено + + + Ключ сохранён + Ключ сохранён + + + Ключ удалён + Ключ удалён + + + client_secret пересоздан + client_secret пересоздан + + + Ключ включён + Ключ включён + + + Ключ отключён + Ключ отключён + + + Удалено + Удалено + + + Требуется авторизация + Требуется авторизация + + + Недостаточно прав + Недостаточно прав + + + Нельзя запрашивать ключ за другого пользователя + Нельзя запрашивать ключ за другого пользователя + + + Не удалось + Не удалось + + + Недостаточно прав для модерации + Недостаточно прав для модерации + + + Заявка не найдена или уже обработана + Заявка не найдена или уже обработана + + + Уровень не найден + Уровень не найден + + + Укажите название уровня + Укажите название уровня + + + OAuth-клиент создан + OAuth-клиент создан + + + Клиент удалён + Клиент удалён + + + История изменений + История изменений + From ba6923e5b41cc5c84805f91fa802d0c8a13b22e3 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 17:09:56 +0200 Subject: [PATCH 07/10] Update source file dleapi.xliff [ci skip] --- upload/devcraft/locales/ru_RU/dleapi.xliff | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/upload/devcraft/locales/ru_RU/dleapi.xliff b/upload/devcraft/locales/ru_RU/dleapi.xliff index 23d4a37c..bd1c8b58 100644 --- a/upload/devcraft/locales/ru_RU/dleapi.xliff +++ b/upload/devcraft/locales/ru_RU/dleapi.xliff @@ -1,19 +1,2 @@ - - - - - - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST API для DLE: ключи, OAuth2 Bearer, /api/v2 - - - API-ключи - API-ключи - - - OAuth-клиенты - OAuth-клиенты - - - - + +API-ключAPI-ключНовыйНовыйЗагрузка…Загрузка…КлючКлючКопироватьКопироватьКогдаКогдаИстекаетИстекаетУровеньУровеньЗапросить ключЗапросить ключОдобритьОдобритьОтказатьОтказатьМетод не разрешёнМетод не разрешёнДопустимоДопустимоМаршрут не найденМаршрут не найденНеверный или неактивный API-ключНеверный или неактивный API-ключНеверный логин или парольНеверный логин или парольНет API-ключа пользователя и гостевого ключаНет API-ключа пользователя и гостевого ключаНеверный client_id или client_secretНеверный client_id или client_secretКлиент не разрешает grant_type=client_credentialsКлиент не разрешает grant_type=client_credentialsAPI-ключ клиента неактивенAPI-ключ клиента неактивенНужны оба: client_id и client_secretНужны оба: client_id и client_secretКлиент не разрешает grant_type=passwordКлиент не разрешает grant_type=passwordНеверный clientНеверный clientКлиент не разрешает grant_type=authorization_codeКлиент не разрешает grant_type=authorization_codeКод недействителенКод недействителенredirect_uri не совпадаетredirect_uri не совпадаетОшибка проверки PKCEОшибка проверки PKCEAPI-ключ неактивенAPI-ключ неактивенRefresh token недействителенRefresh token недействителенСвязанный access token не найденСвязанный access token не найденКлиент или ключ неактивенКлиент или ключ неактивенКлиент не разрешает grant_type=refresh_tokenКлиент не разрешает grant_type=refresh_tokenНеизвестный или неактивный client_idНеизвестный или неактивный client_idУ клиента не задан redirect_uriУ клиента не задан redirect_uriredirect_uri не совпадает с зарегистрированным у клиентаredirect_uri не совпадает с зарегистрированным у клиентаПопытка взлома!Попытка взлома!Неподдерживаемый credential_typeНеподдерживаемый credential_typeУкажите credential_type или grant_typeУкажите credential_type или grant_typeНужны client_id и redirect_uriНужны client_id и redirect_uriАвторизация пройдена, но сброшена в демо-режимеАвторизация пройдена, но сброшена в демо-режимеНеизвестная таблицаНеизвестная таблицаЗапись не найденаЗапись не найденаНужен fields{} или name+valueНужен fields{} или name+valueПоле не найденоПоле не найденоНужен multipart field fileНужен multipart field fileНовость не найденаНовость не найденаМетод требует значениеМетод требует значениеНельзя выполнить операцию: не задан первичный ключ.Нельзя выполнить операцию: не задан первичный ключ.Неизвестная колонка «{column}» для таблицы {table}Неизвестная колонка «{column}» для таблицы {table}Нет права «{action}» на таблицу «{table}»Нет права «{action}» на таблицу «{table}»Неизвестный методНеизвестный методБезопасностьБезопасностьАлгоритм HMACАлгоритм HMACАлгоритм для генерации API-ключей.Алгоритм для генерации API-ключей.СекретСекретСекретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.Длина ключаДлина ключаДлина генерируемого API-ключа.Длина генерируемого API-ключа.Маскировать чувствительные поляМаскировать чувствительные поляЗадано DEMO_MODE в .env — маскирование принудительно включено.Задано DEMO_MODE в .env — маскирование принудительно включено.Скрывать пароли, IP и хеши в ответах API (CRUD).Скрывать пароли, IP и хеши в ответах API (CRUD).OAuth2OAuth2TTL access token (сек)TTL access token (сек)Время жизни access token в секундах.Время жизни access token в секундах.Уровни доступаУровни доступаУровень доступа по умолчаниюУровень доступа по умолчаниюИспользуется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.Профиль пользователяПрофиль пользователяПоказывать блок API-ключа в профилеПоказывать блок API-ключа в профилеЕсли выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.Разрешить пользователям генерировать ключРазрешить пользователям генерировать ключЕсли выключено — кнопка запроса не показывается; ключ выдаёт администратор.Если выключено — кнопка запроса не показывается; ключ выдаёт администратор.Уведомления о заявкахУведомления о заявкахУведомлять по почте при заявке на ключУведомлять по почте при заявке на ключЛС на сайте при заявке на ключЛС на сайте при заявке на ключГруппы DLEГруппы DLEПолучатели уведомлений о заявках.Получатели уведомлений о заявках.ПользователиПользователиДополнительные получатели уведомлений о заявках (по user_id).Дополнительные получатели уведомлений о заявках (по user_id).PM: тема заявкиPM: тема заявкиТема личного сообщения для администраторов о новой заявке на API-ключ.Тема личного сообщения для администраторов о новой заявке на API-ключ.Плейсхолдеры заявки (PM)Плейсхолдеры заявки (PM)Заявка на API-ключЗаявка на API-ключPM: текст заявкиPM: текст заявкиТекст личного сообщения администраторам о новой заявке на API-ключ.Текст личного сообщения администраторам о новой заявке на API-ключ.Уведомления о решенииУведомления о решенииУведомлять по почте об одобрении / отказеУведомлять по почте об одобрении / отказеЛС об одобрении / отказеЛС об одобрении / отказеPM: тема одобренияPM: тема одобренияТема личного сообщения пользователю при одобрении API-ключа.Тема личного сообщения пользователю при одобрении API-ключа.Плейсхолдеры одобрения (PM)Плейсхолдеры одобрения (PM)API-ключ одобренAPI-ключ одобренPM: текст одобренияPM: текст одобренияТекст личного сообщения пользователю при одобрении API-ключа.Текст личного сообщения пользователю при одобрении API-ключа.PM: тема отказаPM: тема отказаТема личного сообщения пользователю при отказе в API-ключе.Тема личного сообщения пользователю при отказе в API-ключе.Плейсхолдеры отказа (PM)Плейсхолдеры отказа (PM)API-ключ отклонёнAPI-ключ отклонёнPM: текст отказаPM: текст отказаТекст личного сообщения пользователю при отказе в API-ключе.Текст личного сообщения пользователю при отказе в API-ключе.Ваша заявка на API-ключ отклонена.Ваша заявка на API-ключ отклонена.Email-шаблоныEmail-шаблоныEmail: тема заявкиEmail: тема заявкиТема письма администраторам о новой заявке на API-ключ.Тема письма администраторам о новой заявке на API-ключ.Плейсхолдеры заявки (email)Плейсхолдеры заявки (email)Email: тело заявкиEmail: тело заявкиHTML или текст письма администраторам о новой заявке на API-ключ.HTML или текст письма администраторам о новой заявке на API-ключ.Email: тема одобренияEmail: тема одобренияТема письма пользователю при одобрении API-ключа.Тема письма пользователю при одобрении API-ключа.Плейсхолдеры решения (email)Плейсхолдеры решения (email)Email: тема отказаEmail: тема отказаТема письма пользователю при отказе в API-ключе.Тема письма пользователю при отказе в API-ключе.Email: тело решенияEmail: тело решенияHTML или текст письма пользователю при одобрении либо отказе в API-ключе.HTML или текст письма пользователю при одобрении либо отказе в API-ключе.Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2ГлавнаяГлавнаяAPI-ключиAPI-ключиСинхронизация с группамиСинхронизация с группамиЗаявки на ключЗаявки на ключOAuth-клиентыOAuth-клиентыНастройкиНастройкиЖурнал измененийЖурнал измененийСписок API-ключейСписок API-ключейАктивенАктивенПользовательПользовательДействияДействияДаДаПраваПраваОтключитьОтключитьУдалитьУдалитьКлючей пока нетКлючей пока нетСоздать ключСоздать ключПоказать формуПоказать формуСкрыть формуСкрыть формуУровень доступаУровень доступа— вручную / без уровня —— вручную / без уровня —При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.СоздатьСоздатьСохранитьСохранитьОтменаОтменаПрава доступа к таблицам (если уровень не задан или для legacy-ключей)Права доступа к таблицам (если уровень не задан или для legacy-ключей)Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.ТаблицаТаблицаЧтениеЧтениеВключить всеВключить всеЗаписьЗаписьПравкаПравкаУдалениеУдалениеСписок таблиц SchemaRegistry пустСписок таблиц SchemaRegistry пустЕсли группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.Группа DLE → уровень доступаГруппа DLE → уровень доступаГруппаГруппа— не задано —— не задано —Группы не найденыГруппы не найденыЭндпоинты Authorization ServerЭндпоинты Authorization ServerСкопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).Сохраните client_secret сейчасСохраните client_secret сейчасон показывается один раз и больше не будет доступен.он показывается один раз и больше не будет доступен.СкрытьСкрытьИмяИмяИзменитьИзменитьКлиентов пока нетКлиентов пока нетСоздать клиентСоздать клиентOAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.Пересоздать client_secretПересоздать client_secretНовый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.НазваниеНазваниеНапр. Mobile app, CI, PostmanНапр. Mobile app, CI, PostmanТолько для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.— выберите —— выберите —Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».Redirect URIRedirect URIСсылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.Grant typesGrant typesсервер-сервер без пользователясервер-сервер без пользователялогин/пароль пользователя DLEлогин/пароль пользователя DLEбраузерный OAuth-код (нужен Redirect URI)браузерный OAuth-код (нужен Redirect URI)обновление access_tokenобновление access_tokenКакие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.Неактивный клиент не сможет получать новые токены.Неактивный клиент не сможет получать новые токены.Заявки на API-ключЗаявки на API-ключСтатусСтатусДатаДатаОтклонитьОтклонитьЗаявок нетЗаявок нетСорт.Сорт.Премод.Премод.Уровней пока нетУровней пока нетСоздать уровеньСоздать уровеньСортировкаСортировкаПремодерация заявок на ключПремодерация заявок на ключТолько свои записиТолько свои записиПолный доступ (cheater)Полный доступ (cheater)Маскировать IPМаскировать IPМаскировать пароли/хешиМаскировать пароли/хешиМаскировать лишние ПДнМаскировать лишние ПДнScopes уровня (read / write / edit / delete)Scopes уровня (read / write / edit / delete)API v2 (/api/v2) на CycleORM из DevCraft Admin.API v2 (/api/v2) на CycleORM из DevCraft Admin.OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).Каталог Schema таблиц DLE в api/includes/Schemas.Каталог Schema таблиц DLE в api/includes/Schemas.OpenAPI (swagger-php) и документация OAD в mhdocs.OpenAPI (swagger-php) и документация OAD в mhdocs.Загрузка файлов через штатный пайплайн DLE.Загрузка файлов через штатный пайплайн DLE.Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).GET-кэш TableQuery через CacheControl (dle_api_query, TTL).GET-кэш TableQuery через CacheControl (dle_api_query, TTL).Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).Совместимость с DLE 20.0 (xfields.json, dual category, conversations).Совместимость с DLE 20.0 (xfields.json, dual category, conversations).Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.Приём сырого API-ключа как Bearer на ресурсах /table.Приём сырого API-ключа как Bearer на ресурсах /table.Оптимизация кода под PHP 8.2Оптимизация кода под PHP 8.2Минимально поддерживаемая версия DLE - 16.0Минимально поддерживаемая версия DLE - 16.0Изменён список алгоритмов на hash_hmac_algosИзменён список алгоритмов на hash_hmac_algosУбрана процедура проверки атрибута в таблицеУбрана процедура проверки атрибута в таблицеОптимизирован кодОптимизирован кодГенерация ключа привязана к времениГенерация ключа привязана к времениДобавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документациюДобавлена возможность генерировать свои рутеры на основе базы данных => читайте документациюОбновлены данные для таблиц базы данныхОбновлены данные для таблиц базы данныхОбновлена документация APIОбновлена документация APIМинимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.хМинимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.хБезопасный вывод данных (IP, пароли и хэш суммы)Безопасный вывод данных (IP, пароли и хэш суммы)Добавлена функция вывода только принадлежащих API-ключу записейДобавлена функция вывода только принадлежащих API-ключу записейДобавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)Для удаления новостей была использована функция движкаДля удаления новостей была использована функция движкаДля удаления комментариев была использована функция движкаДля удаления комментариев была использована функция движкаИзменил нумерование версийИзменил нумерование версийcomposer настроил под версию PHP 5.6composer настроил под версию PHP 5.6Были исправлены несколько багов, спасибо @jyaraliБыли исправлены несколько багов, спасибо @jyaraliИсправлена проверка ключей в базе данныхИсправлена проверка ключей в базе данныхДобавлена проверка по длине значения для типа "string"Добавлена проверка по длине значения для типа "string"Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователейДля пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователейДля авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.При регистрации и авторизации возвращается массив данных об этом пользователеПри регистрации и авторизации возвращается массив данных об этом пользователеПервая стандартная версияПервая стандартная версиягостьгостьDLE APIDLE APIГенерация ключа запрещенаГенерация ключа запрещенаУ вас уже есть активный API-ключУ вас уже есть активный API-ключНе задан уровень доступа по умолчаниюНе задан уровень доступа по умолчаниюЗаявка уже ожидает рассмотренияЗаявка уже ожидает рассмотренияЗаявка отправлена на модерациюЗаявка отправлена на модерациюОшибкаОшибкаНекорректный идентификаторНекорректный идентификаторЗаявка не найденаЗаявка не найденаЗаявка уже обработанаЗаявка уже обработанаОдобреноОдобреноОтклоненоОтклоненоКлюч созданКлюч созданRedirect URI должен быть ссылкой http(s)Redirect URI должен быть ссылкой http(s)Выберите хотя бы один grant_typeВыберите хотя бы один grant_typeУкажите действующий API-ключУкажите действующий API-ключКлиент не найденКлиент не найденКлиент сохранёнКлиент сохранёнСинхронизация сохраненаСинхронизация сохраненаКлюч не найденКлюч не найденСхема настроек недоступнаСхема настроек недоступнаФайл конфигурации недоступен для записиФайл конфигурации недоступен для записиКаталог конфигурации недоступен для записиКаталог конфигурации недоступен для записиВсе поля недействительныВсе поля недействительныВниманиеВниманиеЧастичное сохранение с ошибкамиЧастичное сохранение с ошибкамиСохраненоСохраненоКлюч сохранёнКлюч сохранёнКлюч удалёнКлюч удалёнclient_secret пересозданclient_secret пересозданКлюч включёнКлюч включёнКлюч отключёнКлюч отключёнУдаленоУдаленоТребуется авторизацияТребуется авторизацияНедостаточно правНедостаточно правНельзя запрашивать ключ за другого пользователяНельзя запрашивать ключ за другого пользователяНе удалосьНе удалосьНедостаточно прав для модерацииНедостаточно прав для модерацииЗаявка не найдена или уже обработанаЗаявка не найдена или уже обработанаУровень не найденУровень не найденУкажите название уровняУкажите название уровняOAuth-клиент созданOAuth-клиент созданКлиент удалёнКлиент удалёнИстория измененийИстория изменений From 5af59b823f707d9abad84dd4b56fad501d9d27f9 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 17:09:58 +0200 Subject: [PATCH 08/10] New translations dleapi.xliff (German) [ci skip] --- upload/devcraft/locales/de_DE/dleapi.xliff | 590 ++++++++++----------- 1 file changed, 295 insertions(+), 295 deletions(-) diff --git a/upload/devcraft/locales/de_DE/dleapi.xliff b/upload/devcraft/locales/de_DE/dleapi.xliff index 8b6c33bf..f6786ecb 100644 --- a/upload/devcraft/locales/de_DE/dleapi.xliff +++ b/upload/devcraft/locales/de_DE/dleapi.xliff @@ -4,1183 +4,1183 @@ API-ключ - API-ключ + API-Schlüssel Новый - Новый + Neu Загрузка… - Загрузка… + Wird geladen… Ключ - Ключ + Schlüssel Копировать - Копировать + Kopieren Когда - Когда + Wann Истекает - Истекает + Läuft ab Уровень - Уровень + Berechtigungsstufe Запросить ключ - Запросить ключ + Schlüssel anfordern Одобрить - Одобрить + Genehmigen Отказать - Отказать + Ablehnen Метод не разрешён - Метод не разрешён + Methode nicht erlaubt Допустимо - Допустимо + Zulässig Маршрут не найден - Маршрут не найден + Ressource nicht gefunden Неверный или неактивный API-ключ - Неверный или неактивный API-ключ + Ungültiger oder inaktiver API-Schlüssel Неверный логин или пароль - Неверный логин или пароль + Ungültiger Benutzername oder Passwort Нет API-ключа пользователя и гостевого ключа - Нет API-ключа пользователя и гостевого ключа + Kein API-Schlüssel oder Gastschlüssel vorhanden Неверный client_id или client_secret - Неверный client_id или client_secret + Ungültige client_id oder client_secret Клиент не разрешает grant_type=client_credentials - Клиент не разрешает grant_type=client_credentials + Client erlaubt grant_type=client_credentials nicht API-ключ клиента неактивен - API-ключ клиента неактивен + API-Schlüssel des Clients ist inaktiv Нужны оба: client_id и client_secret - Нужны оба: client_id и client_secret + Es werden beide benötigt: client_id und client_secret Клиент не разрешает grant_type=password - Клиент не разрешает grant_type=password + Client erlaubt grant_type=password nicht Неверный client - Неверный client + Ungültiger Client Клиент не разрешает grant_type=authorization_code - Клиент не разрешает grant_type=authorization_code + Client erlaubt grant_type=authorization_code nicht Код недействителен - Код недействителен + Code ungültig redirect_uri не совпадает - redirect_uri не совпадает + redirect_uri stimmt nicht überein Ошибка проверки PKCE - Ошибка проверки PKCE + PKCE-Prüfungsfehler API-ключ неактивен - API-ключ неактивен + API-Schlüssel ist inaktiv Refresh token недействителен - Refresh token недействителен + Refresh-Token ungültig Связанный access token не найден - Связанный access token не найден + Zugehöriger Access-Token nicht gefunden Клиент или ключ неактивен - Клиент или ключ неактивен + Client oder Schlüssel ist inaktiv Клиент не разрешает grant_type=refresh_token - Клиент не разрешает grant_type=refresh_token + Client erlaubt grant_type=refresh_token nicht Неизвестный или неактивный client_id - Неизвестный или неактивный client_id + Unbekannte oder inaktive client_id У клиента не задан redirect_uri - У клиента не задан redirect_uri + Client hat kein redirect_uri festgelegt redirect_uri не совпадает с зарегистрированным у клиента - redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri stimmt nicht mit dem beim Client registrierten überein Попытка взлома! - Попытка взлома! + Verdächtige Aktivität! Неподдерживаемый credential_type - Неподдерживаемый credential_type + Nicht unterstützter credential_type Укажите credential_type или grant_type - Укажите credential_type или grant_type + Geben Sie credential_type oder grant_type an Нужны client_id и redirect_uri - Нужны client_id и redirect_uri + Es werden client_id und redirect_uri benötigt Авторизация пройдена, но сброшена в демо-режиме - Авторизация пройдена, но сброшена в демо-режиме + Authentifizierung erfolgreich, aber im Demo-Modus zurückgesetzt Неизвестная таблица - Неизвестная таблица + Unbekannte Tabelle Запись не найдена - Запись не найдена + Eintrag nicht gefunden Нужен fields{} или name+value - Нужен fields{} или name+value + Es werden fields{} oder name+value benötigt Поле не найдено - Поле не найдено + Feld nicht gefunden Нужен multipart field file - Нужен multipart field file + Multipart-Feld file erforderlich Новость не найдена - Новость не найдена + Nachricht nicht gefunden Метод требует значение - Метод требует значение + Methode erfordert einen Wert Нельзя выполнить операцию: не задан первичный ключ. - Нельзя выполнить операцию: не задан первичный ключ. + Vorgang kann nicht durchgeführt werden: Primärschlüssel nicht angegeben. Неизвестная колонка «{column}» для таблицы {table} - Неизвестная колонка «{column}» для таблицы {table} + Unbekannte Spalte «{column}» für Tabelle {table} Нет права «{action}» на таблицу «{table}» - Нет права «{action}» на таблицу «{table}» + Keine Berechtigung «{action}» für Tabelle «{table}» Неизвестный метод - Неизвестный метод + Unbekannte Methode Безопасность - Безопасность + Sicherheit Алгоритм HMAC - Алгоритм HMAC + HMAC-Algorithmus Алгоритм для генерации API-ключей. - Алгоритм для генерации API-ключей. + Algorithmus zur Generierung von API-Schlüsseln. Секрет - Секрет + Geheimnis Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. - Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + Geheimer String für HMAC. Lassen Sie das Feld leer, um es bei der Speicherung automatisch zu generieren. Длина ключа - Длина ключа + Schlüssellänge Длина генерируемого API-ключа. - Длина генерируемого API-ключа. + Länge des generierten API-Schlüssels. Маскировать чувствительные поля - Маскировать чувствительные поля + Sensible Felder maskieren Задано DEMO_MODE в .env — маскирование принудительно включено. - Задано DEMO_MODE в .env — маскирование принудительно включено. + DEMO_MODE in .env festgelegt — Maskierung ist erzwungen aktiviert. Скрывать пароли, IP и хеши в ответах API (CRUD). - Скрывать пароли, IP и хеши в ответах API (CRUD). + Passwörter, IP-Adressen und Hashes in API-Antworten (CRUD) ausblenden. OAuth2 - OAuth2 + OAuth2 TTL access token (сек) - TTL access token (сек) + TTL Access-Token (Sek.) Время жизни access token в секундах. - Время жизни access token в секундах. + Lebensdauer des Access-Tokens in Sekunden. Уровни доступа - Уровни доступа + Berechtigungsstufen Уровень доступа по умолчанию - Уровень доступа по умолчанию + Standard-Berechtigungsstufe Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. - Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Wird bei Selbstgenerierung des Schlüssels verwendet und wenn die DLE-Gruppe nicht auf der Synchronisierungsseite verknüpft ist. Профиль пользователя - Профиль пользователя + Benutzerprofil Показывать блок API-ключа в профиле - Показывать блок API-ключа в профиле + API-Schlüssel-Block im Profil anzeigen Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. - Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + Wenn deaktiviert, ist der Block nur bei aktivierter Selbstgenerierung/Anfrage sichtbar. Der Schlüssel wird aus der Tabelle api_keys entnommen. Разрешить пользователям генерировать ключ - Разрешить пользователям генерировать ключ + Benutzern erlauben, Schlüssel zu generieren Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. - Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + Wenn deaktiviert, wird die Anfrage-Schaltfläche nicht angezeigt; der Schlüssel wird vom Administrator ausgegeben. Уведомления о заявках - Уведомления о заявках + Benachrichtigungen zu Anfragen Уведомлять по почте при заявке на ключ - Уведомлять по почте при заявке на ключ + Per E-Mail über neue Schlüsselanfragen benachrichtigen ЛС на сайте при заявке на ключ - ЛС на сайте при заявке на ключ + PN auf der Website bei neuen Schlüsselanfragen Группы DLE - Группы DLE + DLE-Gruppen Получатели уведомлений о заявках. - Получатели уведомлений о заявках. + Empfänger von Benachrichtigungen zu Schlüsselanfragen. Пользователи - Пользователи + Benutzer Дополнительные получатели уведомлений о заявках (по user_id). - Дополнительные получатели уведомлений о заявках (по user_id). + Zusätzliche Empfänger von Benachrichtigungen zu Schlüsselanfragen (nach user_id). PM: тема заявки - PM: тема заявки + PN: Thema der Anfrage Тема личного сообщения для администраторов о новой заявке на API-ключ. - Тема личного сообщения для администраторов о новой заявке на API-ключ. + Betreff der privaten Nachricht an Administratoren über eine neue API-Schlüsselanfrage. Плейсхолдеры заявки (PM) - Плейсхолдеры заявки (PM) + Platzhalter der Anfrage (PN) Заявка на API-ключ - Заявка на API-ключ + API-Schlüsselanfrage PM: текст заявки - PM: текст заявки + PN: Text der Anfrage Текст личного сообщения администраторам о новой заявке на API-ключ. - Текст личного сообщения администраторам о новой заявке на API-ключ. + Text der privaten Nachricht an Administratoren über eine neue API-Schlüsselanfrage. Уведомления о решении - Уведомления о решении + Benachrichtigungen zu Entscheidungen Уведомлять по почте об одобрении / отказе - Уведомлять по почте об одобрении / отказе + Per E-Mail über Genehmigungen/Ablehnungen benachrichtigen ЛС об одобрении / отказе - ЛС об одобрении / отказе + PN zu Genehmigungen/Ablehnungen PM: тема одобрения - PM: тема одобрения + PN: Thema der Genehmigung Тема личного сообщения пользователю при одобрении API-ключа. - Тема личного сообщения пользователю при одобрении API-ключа. + Betreff der privaten Nachricht an den Benutzer bei Genehmigung des API-Schlüssels. Плейсхолдеры одобрения (PM) - Плейсхолдеры одобрения (PM) + Platzhalter der Genehmigung (PN) API-ключ одобрен - API-ключ одобрен + API-Schlüssel genehmigt PM: текст одобрения - PM: текст одобрения + PN: Text der Genehmigung Текст личного сообщения пользователю при одобрении API-ключа. - Текст личного сообщения пользователю при одобрении API-ключа. + Text der privaten Nachricht an den Benutzer bei Genehmigung des API-Schlüssels. PM: тема отказа - PM: тема отказа + PN: Thema der Ablehnung Тема личного сообщения пользователю при отказе в API-ключе. - Тема личного сообщения пользователю при отказе в API-ключе. + Betreff der privaten Nachricht an den Benutzer bei Ablehnung des API-Schlüssels. Плейсхолдеры отказа (PM) - Плейсхолдеры отказа (PM) + Platzhalter der Ablehnung (PN) API-ключ отклонён - API-ключ отклонён + API-Schlüssel abgelehnt PM: текст отказа - PM: текст отказа + PN: Text der Ablehnung Текст личного сообщения пользователю при отказе в API-ключе. - Текст личного сообщения пользователю при отказе в API-ключе. + Text der privaten Nachricht an den Benutzer bei Ablehnung des API-Schlüssels. Ваша заявка на API-ключ отклонена. - Ваша заявка на API-ключ отклонена. + Ihre Anfrage auf einen API-Schlüssel wurde abgelehnt. Email-шаблоны - Email-шаблоны + E-Mail-Vorlagen Email: тема заявки - Email: тема заявки + E-Mail: Thema der Anfrage Тема письма администраторам о новой заявке на API-ключ. - Тема письма администраторам о новой заявке на API-ключ. + Betreff der E-Mail an Administratoren über eine neue API-Schlüsselanfrage. Плейсхолдеры заявки (email) - Плейсхолдеры заявки (email) + Platzhalter der Anfrage (E-Mail) Email: тело заявки - Email: тело заявки + E-Mail: Text der Anfrage HTML или текст письма администраторам о новой заявке на API-ключ. - HTML или текст письма администраторам о новой заявке на API-ключ. + HTML- oder Text-E-Mail an Administratoren über eine neue API-Schlüsselanfrage. Email: тема одобрения - Email: тема одобрения + E-Mail: Thema der Genehmigung Тема письма пользователю при одобрении API-ключа. - Тема письма пользователю при одобрении API-ключа. + Betreff der E-Mail an den Benutzer bei Genehmigung des API-Schlüssels. Плейсхолдеры решения (email) - Плейсхолдеры решения (email) + Platzhalter der Entscheidung (E-Mail) Email: тема отказа - Email: тема отказа + E-Mail: Thema der Ablehnung Тема письма пользователю при отказе в API-ключе. - Тема письма пользователю при отказе в API-ключе. + Betreff der E-Mail an den Benutzer bei Ablehnung des API-Schlüssels. Email: тело решения - Email: тело решения + E-Mail: Text der Entscheidung HTML или текст письма пользователю при одобрении либо отказе в API-ключе. - HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML- oder Text-E-Mail an den Benutzer bei Genehmigung oder Ablehnung des API-Schlüssels. Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Inoffizielle REST/SDK-API für DLE: Schlüssel, OAuth2 Bearer, /api/v2 Главная - Главная + Startseite API-ключи - API-ключи + API-Schlüssel Синхронизация с группами - Синхронизация с группами + Synchronisierung mit Gruppen Заявки на ключ - Заявки на ключ + Schlüsselanfragen OAuth-клиенты - OAuth-клиенты + OAuth-Clients Настройки - Настройки + Einstellungen Журнал изменений - Журнал изменений + Änderungsprotokoll Список API-ключей - Список API-ключей + Liste der API-Schlüssel Активен - Активен + Aktiv Пользователь - Пользователь + Benutzer Действия - Действия + Aktionen Да - Да + Ja Права - Права + Berechtigungen Отключить - Отключить + Deaktivieren Sie Удалить - Удалить + Löschen Ключей пока нет - Ключей пока нет + Es gibt noch keine Schlüssel Создать ключ - Создать ключ + Schlüssel erstellen Показать форму - Показать форму + Formular anzeigen Скрыть форму - Скрыть форму + Formular ausblenden Уровень доступа - Уровень доступа + Berechtigungsstufe — вручную / без уровня — - — вручную / без уровня — + — manuell / ohne Stufe — При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. - При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + Bei Auswahl der Stufe werden die Flags own_only/cheater aus der Stufe übernommen. Ohne Stufe gilt die untenstehende Scopes-Matrix. Создать - Создать + Erstellen Сохранить - Сохранить + Speichern Отмена - Отмена + Abbrechen Права доступа к таблицам (если уровень не задан или для legacy-ключей) - Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Berechtigungen für Tabellen (wenn keine Stufe festgelegt ist oder für Legacy-Schlüssel) Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. - Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Lesen — Anzeigen; Schreiben — Erstellen; Bearbeiten — Ändern; Löschen — Löschen. Bei einer Stufe mit cheater wird die Matrix ignoriert. Таблица - Таблица + Tabelle Чтение - Чтение + Lesen Включить все - Включить все + Alle aktivieren Запись - Запись + Schreiben Правка - Правка + Bearbeiten Удаление - Удаление + Löschen Список таблиц SchemaRegistry пуст - Список таблиц SchemaRegistry пуст + Die Liste der Tabellen in SchemaRegistry ist leer Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. - Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + Wenn die Gruppe nicht verknüpft ist, wird bei der Selbstgenerierung die Standardstufe aus den Einstellungen verwendet; bei den Schlüsseln wird die Stufe manuell festgelegt. Группа DLE → уровень доступа - Группа DLE → уровень доступа + DLE-Gruppe → Berechtigungsstufe Группа - Группа + Gruppe — не задано — - — не задано — + — nicht festgelegt — Группы не найдены - Группы не найдены + Gruppen nicht gefunden Эндпоинты Authorization Server - Эндпоинты Authorization Server + Endpunkte des Authorization Servers Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). - Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Kopieren Sie die URL zur Integration externer OAuth-Clients (DLE = IdP). Сохраните client_secret сейчас - Сохраните client_secret сейчас + Speichern Sie jetzt das client_secret он показывается один раз и больше не будет доступен. - он показывается один раз и больше не будет доступен. + es wird nur einmal angezeigt und ist danach nicht mehr verfügbar. Скрыть - Скрыть + Ausblenden Имя - Имя + Name Изменить - Изменить + Bearbeiten Клиентов пока нет - Клиентов пока нет + Es gibt noch keine Clients Создать клиент - Создать клиент + Client erstellen OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. - OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth-Client gibt Access-Token für Aufrufe von /api/v2 aus. Die Anforderungsrechte werden aus dem ausgewählten API-Schlüssel (Scopes) entnommen. Speichern Sie nach der Erstellung client_id und client_secret — das Geheimnis wird danach nicht mehr angezeigt. Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». - Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Bearbeiten: Name, API-Schlüssel, Redirect-URI, Grant-Typen und Aktivität. client_id kann nicht geändert werden; Geheimnis nur über «client_secret neu erstellen». Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. - Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Die Client-ID kann nicht geändert werden. Das Geheimnis kann über die Schaltfläche unten neu generiert werden — der alte Schlüssel wird sofort ungültig. Пересоздать client_secret - Пересоздать client_secret + client_secret neu erstellen Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. - Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + Das neue Geheimnis wird einmalig über der Tabelle angezeigt. Aktualisieren Sie es in allen Anwendungen, die diesen Client verwenden. Название - Название + Name Напр. Mobile app, CI, Postman - Напр. Mobile app, CI, Postman + Z. B. Mobile App, CI, Postman Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. - Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Nur für die Liste in der Admin-Oberfläche. Beeinflusst die Token-Ausgabe nicht. Wenn leer, wird client_id verwendet. — выберите — - — выберите — + — auswählen — Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». - Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Pflichtfeld. Legt fest, auf welche Tabellen und mit welchen Rechten (Lesen/Schreiben/Löschen) der Bearer-Token dieses Clients zugreifen kann. Der Schlüssel wird auf der Registerkarte „Schlüssel“ erstellt. Redirect URI - Redirect URI + Redirect-URI Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. - Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + HTTP(s)-Link. Wird für den Grant authorization_code benötigt. Muss genau mit redirect_uri bei /oauth/authorize und beim Token-Austausch übereinstimmen. Für password / client_credentials kann er leer bleiben. Grant types - Grant types + Grant-Typen сервер-сервер без пользователя - сервер-сервер без пользователя + Server-zu-Server ohne Benutzer логин/пароль пользователя DLE - логин/пароль пользователя DLE + Benutzername/Passwort des DLE-Benutzers браузерный OAuth-код (нужен Redirect URI) - браузерный OAuth-код (нужен Redirect URI) + Browser-OAuth-Code (benötigt Redirect-URI) обновление access_token - обновление access_token + Aktualisierung des Access-Tokens Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. - Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Welche Methoden zur Token-Generierung für diesen Client erlaubt sind. Mindestens eine ist erforderlich. Неактивный клиент не сможет получать новые токены. - Неактивный клиент не сможет получать новые токены. + Ein inaktiver Client kann keine neuen Tokens erhalten. Заявки на API-ключ - Заявки на API-ключ + API-Schlüsselanfragen Статус - Статус + Status Дата - Дата + Datum Отклонить - Отклонить + Ablehnen Заявок нет - Заявок нет + Keine Anfragen vorhanden Сорт. - Сорт. + Sort. Премод. - Премод. + Vormoderation. Уровней пока нет - Уровней пока нет + Es gibt noch keine Stufen Создать уровень - Создать уровень + Stufe erstellen Сортировка - Сортировка + Sortierung Премодерация заявок на ключ - Премодерация заявок на ключ + Vormoderation von Schlüsselanfragen Только свои записи - Только свои записи + Nur eigene Einträge Полный доступ (cheater) - Полный доступ (cheater) + Vollzugriff (Cheater) Маскировать IP - Маскировать IP + IP-Adressen maskieren Маскировать пароли/хеши - Маскировать пароли/хеши + Passwörter/Hashes maskieren Маскировать лишние ПДн - Маскировать лишние ПДн + Zusätzliche personenbezogene Daten maskieren Scopes уровня (read / write / edit / delete) - Scopes уровня (read / write / edit / delete) + Scopes der Stufe (Lesen / Schreiben / Bearbeiten / Löschen) API v2 (/api/v2) на CycleORM из DevCraft Admin. - API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) auf CycleORM aus DevCraft Admin. OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. - OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; Zugriff nur über Bearer. credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. - credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; Ressourcen nur AuthToken; GET /me und /oauth/userinfo. OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. - OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS Discovery, Autorisierung über DLE-Sitzung, kopierbare Endpunkt-URLs. Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). - Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Berechtigungsstufen, Synchronisierung mit Gruppen, Schlüsselanfragen, Profil (öffentliche AJAX). DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. - DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE aus .env; E-Mail-Vorlagen über install.xml. Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). - Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent-Builder prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (In-Process und HTTP-SDK). Каталог Schema таблиц DLE в api/includes/Schemas. - Каталог Schema таблиц DLE в api/includes/Schemas. + Schema-Katalog der DLE-Tabellen in api/includes/Schemas. OpenAPI (swagger-php) и документация OAD в mhdocs. - OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) und OAD-Dokumentation in mhdocs. Загрузка файлов через штатный пайплайн DLE. - Загрузка файлов через штатный пайплайн DLE. + Datei-Uploads über die native DLE-Pipeline. Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). - Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Filterung von Beiträgen nach einer Kategorie bei mehreren (FIND_IN_SET / Issue #12). Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). - Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Admin-Modul DleApi für DevCraft Admin ≥ 200.4.0 (nur Konfiguration). HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. - HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: Tabellen-Introspektion außerhalb von SchemaRegistry + TableScopeGuard. SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). - SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK-Fassaden: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). - Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD auf AbstractTableSchema (with / create / save / delete / filter / fromArray). GET-кэш TableQuery через CacheControl (dle_api_query, TTL). - GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET-Cache von TableQuery über CacheControl (dle_api_query, TTL). Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. - Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Admin: Mehrfachempfänger für Benachrichtigungen, WYSIWYG für PN; panel-title über caption. Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). - Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Admin: Formularbereich für Schlüssel/Stufen/OAuth auf schmalen Bildschirmen ausgeblendet (Metro d-none / d-block-md). Совместимость с DLE 20.0 (xfields.json, dual category, conversations). - Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Kompatibilität mit DLE 20.0 (xfields.json, Dual-Kategorie, Konversationen). Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. - Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Tabellen api_keys / api_scope / OAuth werden über Cycle-Migrationen von DevCraft erstellt (Models + AbstractEntity), nicht über DDL in install.xml. Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. - Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: Spalte Bearbeiten; own_only/cheater auf Stufe; abschließender Schrägstrich auf allen v2-Routen. OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. - OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: Beschreibung von ApiError ohne PHPDoc {@see}; Schema ohne Hinweis in install.php. API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. - API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) vollständig entfernt. Приём сырого API-ключа как Bearer на ресурсах /table. - Приём сырого API-ключа как Bearer на ресурсах /table. + Akzeptieren eines rohen API-Schlüssels als Bearer für Ressourcen /table. Оптимизация кода под PHP 8.2 - Оптимизация кода под PHP 8.2 + Optimierung des Codes für PHP 8.2 Минимально поддерживаемая версия DLE - 16.0 - Минимально поддерживаемая версия DLE - 16.0 + Minimale unterstützte DLE-Version: 16.0 Изменён список алгоритмов на hash_hmac_algos - Изменён список алгоритмов на hash_hmac_algos + Liste der Algorithmen auf hash_hmac_algos geändert Убрана процедура проверки атрибута в таблице - Убрана процедура проверки атрибута в таблице + Überprüfung des Tabellenattributs entfernt Оптимизирован код - Оптимизирован код + Code optimiert Генерация ключа привязана к времени - Генерация ключа привязана к времени + Schlüsselgenerierung ist an die Zeit gebunden Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" - Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Es wurde die Möglichkeit hinzugefügt, Schlüssel unabhängig vom Benutzer zu erstellen => Wählen Sie im Benutzermenü „Gast / Nicht autorisiert". Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию - Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Es wurde die Möglichkeit hinzugefügt, eigene Router basierend auf der Datenbank zu generieren => Lesen Sie die Dokumentation. Обновлены данные для таблиц базы данных - Обновлены данные для таблиц базы данных + Datenbanktabellen aktualisiert Обновлена документация API - Обновлена документация API + API-Dokumentation aktualisiert Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х - Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Die Serveranforderungen wurden auf die von DLE-News angehobene Mindestversion angehoben → 7.4. Möglicherweise funktioniert es nicht auf Versionen unter 15.x. Безопасный вывод данных (IP, пароли и хэш суммы) - Безопасный вывод данных (IP, пароли и хэш суммы) + Sichere Datenausgabe (IP, Passwörter und Hash-Summen) Добавлена функция вывода только принадлежащих API-ключу записей - Добавлена функция вывода только принадлежащих API-ключу записей + Funktion hinzugefügt, um nur dem API-Schlüssel gehörende Einträge anzuzeigen Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) - Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Funktion für Massenaktionen hinzugefügt (Löschen, (De-)Aktivierung, Einschränkungen aufheben/hinzufügen, Admin-Einschränkungen aufheben/löschen) Для удаления новостей была использована функция движка - Для удаления новостей была использована функция движка + Zum Löschen von Nachrichten wurde die Engine-Funktion verwendet Для удаления комментариев была использована функция движка - Для удаления комментариев была использована функция движка + Zum Löschen von Kommentaren wurde die Engine-Funktion verwendet Изменил нумерование версий - Изменил нумерование версий + Versionsnummern geändert composer настроил под версию PHP 5.6 - composer настроил под версию PHP 5.6 + Composer wurde für PHP 5.6 konfiguriert. Были исправлены несколько багов, спасибо @jyarali - Были исправлены несколько багов, спасибо @jyarali + Mehrere Fehler wurden behoben, danke an @jyarali Исправлена проверка ключей в базе данных - Исправлена проверка ключей в базе данных + Überprüfung der Schlüssel in der Datenbank korrigiert Добавлена проверка по длине значения для типа "string" - Добавлена проверка по длине значения для типа "string" + Überprüfung der Länge für den Typ „string“ hinzugefügt Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) - Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Tabellen-Arrays wurden auf Werte von DLE 14.1 aktualisiert (für frühere DLE-Versionen hat dies keine Auswirkungen). Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей - Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Für Benutzer wurde die native DLE-API-Klasse verwendet, um Benutzer zu autorisieren und zu registrieren Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. - Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + Um Benutzer zu autorisieren, müssen Sie mit der POST-Methode die folgende URL aufrufen: api/v1/users/auth. Im Header müssen der Benutzername und das Passwort im Klartext angegeben werden. Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. - Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + Um einen Benutzer zu registrieren, müssen Sie mit der POST-Methode die folgende URL aufrufen: api/v1/users/register. Im Header müssen der Benutzername, das Passwort, die E-Mail-Adresse und die Gruppen-ID angegeben werden. При регистрации и авторизации возвращается массив данных об этом пользователе - При регистрации и авторизации возвращается массив данных об этом пользователе + Bei der Registrierung und Autorisierung wird ein Datenarray über diesen Benutzer zurückgegeben Первая стандартная версия - Первая стандартная версия + Erste Standardversion гость - гость + Gast DLE API - DLE API + DLE API Генерация ключа запрещена - Генерация ключа запрещена + Schlüsselgenerierung ist deaktiviert У вас уже есть активный API-ключ - У вас уже есть активный API-ключ + Sie haben bereits einen aktiven API-Schlüssel Не задан уровень доступа по умолчанию - Не задан уровень доступа по умолчанию + Standard-Berechtigungsstufe nicht festgelegt Заявка уже ожидает рассмотрения - Заявка уже ожидает рассмотрения + Anfrage wird bereits bearbeitet Заявка отправлена на модерацию - Заявка отправлена на модерацию + Anfrage zur Moderation gesendet Ошибка - Ошибка + Fehler Некорректный идентификатор - Некорректный идентификатор + Ungültige ID Заявка не найдена - Заявка не найдена + Anfrage nicht gefunden Заявка уже обработана - Заявка уже обработана + Anfrage bereits bearbeitet Одобрено - Одобрено + Genehmigt Отклонено - Отклонено + Abgelehnt Ключ создан - Ключ создан + Schlüssel erstellt Redirect URI должен быть ссылкой http(s) - Redirect URI должен быть ссылкой http(s) + Redirect-URI muss ein http(s)-Link sein Выберите хотя бы один grant_type - Выберите хотя бы один grant_type + Wählen Sie mindestens einen grant_type aus Укажите действующий API-ключ - Укажите действующий API-ключ + Geben Sie einen gültigen API-Schlüssel an Клиент не найден - Клиент не найден + Client nicht gefunden Клиент сохранён - Клиент сохранён + Client gespeichert Синхронизация сохранена - Синхронизация сохранена + Synchronisierung gespeichert Ключ не найден - Ключ не найден + Schlüssel nicht gefunden Схема настроек недоступна - Схема настроек недоступна + Einstellungsschema nicht verfügbar Файл конфигурации недоступен для записи - Файл конфигурации недоступен для записи + Konfigurationsdatei ist nicht beschreibbar Каталог конфигурации недоступен для записи - Каталог конфигурации недоступен для записи + Konfigurationsverzeichnis ist nicht beschreibbar Все поля недействительны - Все поля недействительны + Alle Felder sind ungültig Внимание - Внимание + Achtung Частичное сохранение с ошибками - Частичное сохранение с ошибками + Teilweises Speichern mit Fehlern Сохранено - Сохранено + Gespeichert Ключ сохранён - Ключ сохранён + Schlüssel gespeichert Ключ удалён - Ключ удалён + Schlüssel gelöscht client_secret пересоздан - client_secret пересоздан + client_secret neu erstellt Ключ включён - Ключ включён + Schlüssel aktiviert Ключ отключён - Ключ отключён + Schlüssel deaktiviert Удалено - Удалено + Entfernt Требуется авторизация - Требуется авторизация + Authentifizierung erforderlich Недостаточно прав - Недостаточно прав + Nicht genügend Berechtigungen Нельзя запрашивать ключ за другого пользователя - Нельзя запрашивать ключ за другого пользователя + Sie können keinen Schlüssel für einen anderen Benutzer anfordern Не удалось - Не удалось + Fehlgeschlagen Недостаточно прав для модерации - Недостаточно прав для модерации + Nicht genügend Berechtigungen für die Moderation Заявка не найдена или уже обработана - Заявка не найдена или уже обработана + Anfrage nicht gefunden oder bereits bearbeitet Уровень не найден - Уровень не найден + Stufe nicht gefunden Укажите название уровня - Укажите название уровня + Geben Sie den Namen der Stufe an OAuth-клиент создан - OAuth-клиент создан + OAuth-Client erstellt Клиент удалён - Клиент удалён + Client gelöscht История изменений - История изменений + Änderungshistorie From 1e0913724d267f0959cda4e3892f5796e6d3c8f2 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 17:10:00 +0200 Subject: [PATCH 09/10] New translations dleapi.xliff (Ukrainian) [ci skip] --- upload/devcraft/locales/uk_UA/dleapi.xliff | 590 ++++++++++----------- 1 file changed, 295 insertions(+), 295 deletions(-) diff --git a/upload/devcraft/locales/uk_UA/dleapi.xliff b/upload/devcraft/locales/uk_UA/dleapi.xliff index 608c31dc..4a6d2ce6 100644 --- a/upload/devcraft/locales/uk_UA/dleapi.xliff +++ b/upload/devcraft/locales/uk_UA/dleapi.xliff @@ -4,1183 +4,1183 @@ API-ключ - API-ключ + API-ключ Новый - Новый + Новий Загрузка… - Загрузка… + Завантаження… Ключ - Ключ + Ключ Копировать - Копировать + Копіювати Когда - Когда + Коли Истекает - Истекает + Закінчується Уровень - Уровень + Рівень доступу Запросить ключ - Запросить ключ + Запитати ключ Одобрить - Одобрить + Схвалити Отказать - Отказать + Відхилити Метод не разрешён - Метод не разрешён + Метод не дозволено Допустимо - Допустимо + Допустимо Маршрут не найден - Маршрут не найден + Маршрут не знайдено Неверный или неактивный API-ключ - Неверный или неактивный API-ключ + Невірний або неактивний API-ключ Неверный логин или пароль - Неверный логин или пароль + Невірний логін або пароль Нет API-ключа пользователя и гостевого ключа - Нет API-ключа пользователя и гостевого ключа + Немає API-ключа користувача та гостьового ключа Неверный client_id или client_secret - Неверный client_id или client_secret + Невірний client_id або client_secret Клиент не разрешает grant_type=client_credentials - Клиент не разрешает grant_type=client_credentials + Клієнт не дозволяє grant_type=client_credentials API-ключ клиента неактивен - API-ключ клиента неактивен + API-ключ клієнта неактивний Нужны оба: client_id и client_secret - Нужны оба: client_id и client_secret + Потрібні обидва: client_id та client_secret Клиент не разрешает grant_type=password - Клиент не разрешает grant_type=password + Клієнт не дозволяє grant_type=password Неверный client - Неверный client + Невірний client Клиент не разрешает grant_type=authorization_code - Клиент не разрешает grant_type=authorization_code + Клієнт не дозволяє grant_type=authorization_code Код недействителен - Код недействителен + Код недійсний redirect_uri не совпадает - redirect_uri не совпадает + redirect_uri не збігається Ошибка проверки PKCE - Ошибка проверки PKCE + Помилка перевірки PKCE API-ключ неактивен - API-ключ неактивен + API-ключ неактивний Refresh token недействителен - Refresh token недействителен + Refresh token недійсний Связанный access token не найден - Связанный access token не найден + Пов’язаний access token не знайдено Клиент или ключ неактивен - Клиент или ключ неактивен + Клієнт або ключ неактивний Клиент не разрешает grant_type=refresh_token - Клиент не разрешает grant_type=refresh_token + Клієнт не дозволяє grant_type=refresh_token Неизвестный или неактивный client_id - Неизвестный или неактивный client_id + Невідомий або неактивний client_id У клиента не задан redirect_uri - У клиента не задан redirect_uri + У клієнта не задано redirect_uri redirect_uri не совпадает с зарегистрированным у клиента - redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri не збігається із зареєстрованим у клієнта Попытка взлома! - Попытка взлома! + Спроба зламу! Неподдерживаемый credential_type - Неподдерживаемый credential_type + Непідтримуваний credential_type Укажите credential_type или grant_type - Укажите credential_type или grant_type + Вкажіть credential_type або grant_type Нужны client_id и redirect_uri - Нужны client_id и redirect_uri + Потрібні client_id та redirect_uri Авторизация пройдена, но сброшена в демо-режиме - Авторизация пройдена, но сброшена в демо-режиме + Авторизацію пройдено, але скинуто в демо-режимі Неизвестная таблица - Неизвестная таблица + Невідома таблиця Запись не найдена - Запись не найдена + Запис не знайдено Нужен fields{} или name+value - Нужен fields{} или name+value + Потрібні fields{} або name+value Поле не найдено - Поле не найдено + Поле не знайдено Нужен multipart field file - Нужен multipart field file + Потрібен multipart field file Новость не найдена - Новость не найдена + Новину не знайдено Метод требует значение - Метод требует значение + Метод потребує значення Нельзя выполнить операцию: не задан первичный ключ. - Нельзя выполнить операцию: не задан первичный ключ. + Неможливо виконати операцію: не задано первинний ключ. Неизвестная колонка «{column}» для таблицы {table} - Неизвестная колонка «{column}» для таблицы {table} + Невідома колонка «{column}» для таблиці {table} Нет права «{action}» на таблицу «{table}» - Нет права «{action}» на таблицу «{table}» + Немає права «{action}» на таблицю «{table}» Неизвестный метод - Неизвестный метод + Невідомий метод Безопасность - Безопасность + Безпека Алгоритм HMAC - Алгоритм HMAC + Алгоритм HMAC Алгоритм для генерации API-ключей. - Алгоритм для генерации API-ключей. + Алгоритм для генерації API-ключів. Секрет - Секрет + Секрет Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. - Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + Секретний рядок для HMAC. Залиште порожнім для автогенерації під час збереження. Длина ключа - Длина ключа + Довжина ключа Длина генерируемого API-ключа. - Длина генерируемого API-ключа. + Довжина генерованого API-ключа. Маскировать чувствительные поля - Маскировать чувствительные поля + Маскувати чутливі поля Задано DEMO_MODE в .env — маскирование принудительно включено. - Задано DEMO_MODE в .env — маскирование принудительно включено. + Задано DEMO_MODE у .env — маскування примусово увімкнено. Скрывать пароли, IP и хеши в ответах API (CRUD). - Скрывать пароли, IP и хеши в ответах API (CRUD). + Приховувати паролі, IP та хеші у відповідях API (CRUD). OAuth2 - OAuth2 + OAuth2 TTL access token (сек) - TTL access token (сек) + TTL access token (сек) Время жизни access token в секундах. - Время жизни access token в секундах. + Час життя access token у секундах. Уровни доступа - Уровни доступа + Рівні доступу Уровень доступа по умолчанию - Уровень доступа по умолчанию + Рівень доступу за замовчуванням Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. - Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Використовується під час самогенерації ключа та якщо група DLE не прив’язана на сторінці синхронізації. Профиль пользователя - Профиль пользователя + Профіль користувача Показывать блок API-ключа в профиле - Показывать блок API-ключа в профиле + Показувати блок API-ключа у профілі Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. - Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + Якщо вимкнено — блок видно лише за увімкненої самогенерації / заявки. Ключ береться з таблиці api_keys. Разрешить пользователям генерировать ключ - Разрешить пользователям генерировать ключ + Дозволити користувачам генерувати ключ Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. - Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + Якщо вимкнено — кнопка запиту не показується; ключ видає адміністратор. Уведомления о заявках - Уведомления о заявках + Сповіщення про заявки Уведомлять по почте при заявке на ключ - Уведомлять по почте при заявке на ключ + Сповіщати електронною поштою про заявку на ключ ЛС на сайте при заявке на ключ - ЛС на сайте при заявке на ключ + ЛС на сайті при заявці на ключ Группы DLE - Группы DLE + Групи DLE Получатели уведомлений о заявках. - Получатели уведомлений о заявках. + Отримувачі сповіщень про заявки. Пользователи - Пользователи + Користувачі Дополнительные получатели уведомлений о заявках (по user_id). - Дополнительные получатели уведомлений о заявках (по user_id). + Додаткові отримувачі сповіщень про заявки (за user_id). PM: тема заявки - PM: тема заявки + ЛС: тема заявки Тема личного сообщения для администраторов о новой заявке на API-ключ. - Тема личного сообщения для администраторов о новой заявке на API-ключ. + Тема особистого повідомлення для адміністраторів про нову заявку на API-ключ. Плейсхолдеры заявки (PM) - Плейсхолдеры заявки (PM) + Плейсхолдери заявки (ЛС) Заявка на API-ключ - Заявка на API-ключ + Заявка на API-ключ PM: текст заявки - PM: текст заявки + ЛС: текст заявки Текст личного сообщения администраторам о новой заявке на API-ключ. - Текст личного сообщения администраторам о новой заявке на API-ключ. + Текст особистого повідомлення адміністраторам про нову заявку на API-ключ. Уведомления о решении - Уведомления о решении + Сповіщення про рішення Уведомлять по почте об одобрении / отказе - Уведомлять по почте об одобрении / отказе + Сповіщати електронною поштою про схвалення / відхилення ЛС об одобрении / отказе - ЛС об одобрении / отказе + ЛС про схвалення / відхилення PM: тема одобрения - PM: тема одобрения + ЛС: тема схвалення Тема личного сообщения пользователю при одобрении API-ключа. - Тема личного сообщения пользователю при одобрении API-ключа. + Тема особистого повідомлення користувачу при схваленні API-ключа. Плейсхолдеры одобрения (PM) - Плейсхолдеры одобрения (PM) + Плейсхолдери схвалення (ЛС) API-ключ одобрен - API-ключ одобрен + API-ключ схвалено PM: текст одобрения - PM: текст одобрения + ЛС: текст схвалення Текст личного сообщения пользователю при одобрении API-ключа. - Текст личного сообщения пользователю при одобрении API-ключа. + Текст особистого повідомлення користувачу при схваленні API-ключа. PM: тема отказа - PM: тема отказа + ЛС: тема відхилення Тема личного сообщения пользователю при отказе в API-ключе. - Тема личного сообщения пользователю при отказе в API-ключе. + Тема особистого повідомлення користувачу при відмові в API-ключі. Плейсхолдеры отказа (PM) - Плейсхолдеры отказа (PM) + Плейсхолдери відхилення (ЛС) API-ключ отклонён - API-ключ отклонён + API-ключ відхилено PM: текст отказа - PM: текст отказа + ЛС: текст відхилення Текст личного сообщения пользователю при отказе в API-ключе. - Текст личного сообщения пользователю при отказе в API-ключе. + Текст особистого повідомлення користувачу при відмові в API-ключі. Ваша заявка на API-ключ отклонена. - Ваша заявка на API-ключ отклонена. + Вашу заявку на API-ключ відхилено. Email-шаблоны - Email-шаблоны + Email-шаблони Email: тема заявки - Email: тема заявки + Email: тема заявки Тема письма администраторам о новой заявке на API-ключ. - Тема письма администраторам о новой заявке на API-ключ. + Тема листа адміністраторам про нову заявку на API-ключ. Плейсхолдеры заявки (email) - Плейсхолдеры заявки (email) + Плейсхолдери заявки (email) Email: тело заявки - Email: тело заявки + Email: тіло заявки HTML или текст письма администраторам о новой заявке на API-ключ. - HTML или текст письма администраторам о новой заявке на API-ключ. + HTML або текст листа адміністраторам про нову заявку на API-ключ. Email: тема одобрения - Email: тема одобрения + Email: тема схвалення Тема письма пользователю при одобрении API-ключа. - Тема письма пользователю при одобрении API-ключа. + Тема листа користувачу при схваленні API-ключа. Плейсхолдеры решения (email) - Плейсхолдеры решения (email) + Плейсхолдери рішення (email) Email: тема отказа - Email: тема отказа + Email: тема відхилення Тема письма пользователю при отказе в API-ключе. - Тема письма пользователю при отказе в API-ключе. + Тема листа користувачу при відмові в API-ключі. Email: тело решения - Email: тело решения + Email: тіло рішення HTML или текст письма пользователю при одобрении либо отказе в API-ключе. - HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML або текст листа користувачу при схваленні або відмові в API-ключі. Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Неофіційний REST/SDK API для DLE: ключі, OAuth2 Bearer, /api/v2 Главная - Главная + Головна API-ключи - API-ключи + API-ключі Синхронизация с группами - Синхронизация с группами + Синхронізація з групами Заявки на ключ - Заявки на ключ + Заявки на ключ OAuth-клиенты - OAuth-клиенты + OAuth-клієнти Настройки - Настройки + Налаштування Журнал изменений - Журнал изменений + Журнал змін Список API-ключей - Список API-ключей + Список API-ключів Активен - Активен + Активний Пользователь - Пользователь + Користувач Действия - Действия + Дії Да - Да + Так Права - Права + Права Отключить - Отключить + Вимкнути Удалить - Удалить + Видалити Ключей пока нет - Ключей пока нет + Ключів поки немає Создать ключ - Создать ключ + Створити ключ Показать форму - Показать форму + Показати форму Скрыть форму - Скрыть форму + Приховати форму Уровень доступа - Уровень доступа + Рівень доступу — вручную / без уровня — - — вручную / без уровня — + — вручну / без рівня — При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. - При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + Під час вибору рівня прапорці own_only/cheater беруться з рівня. Без рівня — матриця scopes нижче. Создать - Создать + Створити Сохранить - Сохранить + Зберегти Отмена - Отмена + Скасувати Права доступа к таблицам (если уровень не задан или для legacy-ключей) - Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Права доступу до таблиць (якщо рівень не заданий або для legacy-ключів) Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. - Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Читання — перегляд; Запис — створення; Правка — зміна; Видалення — видалення. За рівня з cheater матриця ігнорується. Таблица - Таблица + Таблиця Чтение - Чтение + Читання Включить все - Включить все + Увімкнути всі Запись - Запись + Запис Правка - Правка + Правка Удаление - Удаление + Видалення Список таблиц SchemaRegistry пуст - Список таблиц SchemaRegistry пуст + Список таблиць SchemaRegistry порожній Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. - Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + Якщо група не прив’язана — під час самогенерації використовується рівень за замовчуванням із налаштувань; на ключах рівень задається вручну. Группа DLE → уровень доступа - Группа DLE → уровень доступа + Група DLE → рівень доступу Группа - Группа + Група — не задано — - — не задано — + — не задано — Группы не найдены - Группы не найдены + Групи не знайдено Эндпоинты Authorization Server - Эндпоинты Authorization Server + Ендпоінти Authorization Server Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). - Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Скопіюйте URL для інтеграції зовнішніх OAuth-клієнтів (DLE = IdP). Сохраните client_secret сейчас - Сохраните client_secret сейчас + Збережіть client_secret зараз он показывается один раз и больше не будет доступен. - он показывается один раз и больше не будет доступен. + він показується один раз і більше не буде доступний. Скрыть - Скрыть + Приховати Имя - Имя + Ім’я Изменить - Изменить + Змінити Клиентов пока нет - Клиентов пока нет + Клієнтів поки немає Создать клиент - Создать клиент + Створити клієнта OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. - OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth-клієнт видає access_token для викликів /api/v2. Права запитів бере з обраного API-ключа (scopes). Після створення збережіть client_id та client_secret — секрет більше не показується. Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». - Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Редагування: назва, API-ключ, Redirect URI, grant types та активність. client_id не змінюється; секрет — лише через «Перестворити client_secret». Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. - Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Ідентифікатор клієнта не змінюється. Секрет можна перевипустити кнопкою нижче — старий відразу перестане працювати. Пересоздать client_secret - Пересоздать client_secret + Перестворити client_secret Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. - Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + Новий секрет покажеться один раз над таблицею. Оновіть його у всіх застосунках, які використовують цього клієнта. Название - Название + Назва Напр. Mobile app, CI, Postman - Напр. Mobile app, CI, Postman + Напр. Mobile app, CI, Postman Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. - Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Лише для списку в адмінці. На видачу токенів не впливає. Якщо порожньо — підставиться client_id. — выберите — - — выберите — + — оберіть — Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». - Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Обов’язково. Визначає, до яких таблиць і з якими правами (read/write/delete) зможе звертатися Bearer-токен цього клієнта. Ключ створюється на вкладці «Ключі». Redirect URI - Redirect URI + Redirect URI Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. - Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + Посилання http(s). Потрібна для grant authorization_code. Має точно збігатися з redirect_uri під час /oauth/authorize та обміну коду. Для password / client_credentials можна залишити порожнім. Grant types - Grant types + Grant types сервер-сервер без пользователя - сервер-сервер без пользователя + сервер-сервер без користувача логин/пароль пользователя DLE - логин/пароль пользователя DLE + логін/пароль користувача DLE браузерный OAuth-код (нужен Redirect URI) - браузерный OAuth-код (нужен Redirect URI) + браузерний OAuth-код (потрібен Redirect URI) обновление access_token - обновление access_token + оновлення access_token Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. - Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Які способи отримання токена дозволені цьому клієнту. Щонайменше один обов’язковий. Неактивный клиент не сможет получать новые токены. - Неактивный клиент не сможет получать новые токены. + Неактивний клієнт не зможе отримувати нові токени. Заявки на API-ключ - Заявки на API-ключ + Заявки на API-ключ Статус - Статус + Статус Дата - Дата + Дата Отклонить - Отклонить + Відхилити Заявок нет - Заявок нет + Заявок немає Сорт. - Сорт. + Сорт. Премод. - Премод. + Премод. Уровней пока нет - Уровней пока нет + Рівнів поки немає Создать уровень - Создать уровень + Створити рівень Сортировка - Сортировка + Сортування Премодерация заявок на ключ - Премодерация заявок на ключ + Премодерація заявок на ключ Только свои записи - Только свои записи + Тільки свої записи Полный доступ (cheater) - Полный доступ (cheater) + Повний доступ (cheater) Маскировать IP - Маскировать IP + Маскувати IP Маскировать пароли/хеши - Маскировать пароли/хеши + Маскувати паролі/хеші Маскировать лишние ПДн - Маскировать лишние ПДн + Маскувати зайві ПДн Scopes уровня (read / write / edit / delete) - Scopes уровня (read / write / edit / delete) + Scopes рівня (read / write / edit / delete) API v2 (/api/v2) на CycleORM из DevCraft Admin. - API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) на CycleORM із DevCraft Admin. OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. - OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; доступ лише через Bearer. credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. - credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; ресурси лише AuthToken; GET /me та /oauth/userinfo. OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. - OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS discovery, authorize за сесією DLE, копіювальні endpoint URL. Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). - Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Рівні доступу, синхронізація з групами, заявки на ключ, профіль (public AJAX). DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. - DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE з .env; email-шаблони через install.xml. Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). - Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent-біледери prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process та HTTP SDK). Каталог Schema таблиц DLE в api/includes/Schemas. - Каталог Schema таблиц DLE в api/includes/Schemas. + Каталог Schema таблиць DLE в api/includes/Schemas. OpenAPI (swagger-php) и документация OAD в mhdocs. - OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) та документація OAD у mhdocs. Загрузка файлов через штатный пайплайн DLE. - Загрузка файлов через штатный пайплайн DLE. + Завантаження файлів через штатний пайплайн DLE. Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). - Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Фільтр публікацій за однією категорією за наявності кількох (FIND_IN_SET / issue #12). Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). - Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Адмін-модуль DleApi для DevCraft Admin ≥ 200.4.0 (лише конфігурація). HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. - HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: інтроспекція таблиць поза SchemaRegistry + TableScopeGuard. SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). - SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK фасади: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). - Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD на AbstractTableSchema (з підтримкою / create / save / delete / filter / fromArray). GET-кэш TableQuery через CacheControl (dle_api_query, TTL). - GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET-кейш TableQuery через CacheControl (dle_api_query, TTL). Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. - Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Адмінка: multi отримувачі сповіщень, WYSIWYG для ЛС; panel-title через caption. Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). - Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Адмінка: FormPanel ключів/рівнів/OAuth згорнуто на вузькому екрані (Metro d-none / d-block-md). Совместимость с DLE 20.0 (xfields.json, dual category, conversations). - Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Сумісність із DLE 20.0 (xfields.json, dual category, conversations). Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. - Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Таблиці api_keys / api_scope / OAuth створюються Cycle-міграціями DevCraft (Models + AbstractEntity), а не DDL в install.xml. Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. - Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: колонка edit; own_only/cheater на рівні; trailing slash на всіх маршрутах v2. OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. - OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: опис ApiError без PHPDoc {@see}; Schema без позначки install.php. API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. - API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) повністю видалений. Приём сырого API-ключа как Bearer на ресурсах /table. - Приём сырого API-ключа как Bearer на ресурсах /table. + Прийом сирого API-ключа як Bearer на ресурсах /table. Оптимизация кода под PHP 8.2 - Оптимизация кода под PHP 8.2 + Оптимізація коду під PHP 8.2 Минимально поддерживаемая версия DLE - 16.0 - Минимально поддерживаемая версия DLE - 16.0 + Мінімально підтримувана версія DLE — 16.0 Изменён список алгоритмов на hash_hmac_algos - Изменён список алгоритмов на hash_hmac_algos + Змінено список алгоритмів на hash_hmac_algos Убрана процедура проверки атрибута в таблице - Убрана процедура проверки атрибута в таблице + Прибрано процедуру перевірки атрибута в таблиці Оптимизирован код - Оптимизирован код + Оптимізовано код Генерация ключа привязана к времени - Генерация ключа привязана к времени + Генерація ключа прив’язана до часу Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" - Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Додано можливість додавати ключі незалежно від користувача. Для цього потрібно обрати в меню користувача «Гість / Неавторизований» Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию - Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Додано можливість генерувати свої маршрути на основі бази даних. Читайте документацію Обновлены данные для таблиц базы данных - Обновлены данные для таблиц базы данных + Оновлено дані для таблиць бази даних Обновлена документация API - Обновлена документация API + Оновлено документацію API Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х - Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Мінімальні вимоги до сервера піднято до мінімально потрібної версії від DLE-News — 7.4. Можливо, не працюватиме на версіях нижче 15.x Безопасный вывод данных (IP, пароли и хэш суммы) - Безопасный вывод данных (IP, пароли и хэш суммы) + Безпечний вивід даних (IP, паролі та хеш-суми) Добавлена функция вывода только принадлежащих API-ключу записей - Добавлена функция вывода только принадлежащих API-ключу записей + Додано функцію виведення лише належних API-ключу записів Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) - Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Додано функцію масових дій (видалення, (де-)активація, зняття / додавання обмеження, зняття / видалення адміністраторських обмежень) Для удаления новостей была использована функция движка - Для удаления новостей была использована функция движка + Для видалення новин була використана функція рушія Для удаления комментариев была использована функция движка - Для удаления комментариев была использована функция движка + Для видалення коментарів була використана функція рушія Изменил нумерование версий - Изменил нумерование версий + Змінив нумерацію версій composer настроил под версию PHP 5.6 - composer настроил под версию PHP 5.6 + composer налаштовано під версію PHP 5.6 Были исправлены несколько багов, спасибо @jyarali - Были исправлены несколько багов, спасибо @jyarali + Було виправлено кілька багів, дякуємо @jyarali Исправлена проверка ключей в базе данных - Исправлена проверка ключей в базе данных + Виправлено перевірку ключів у базі даних Добавлена проверка по длине значения для типа "string" - Добавлена проверка по длине значения для типа "string" + Додано перевірку за довжиною значення для типу «string» Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) - Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Масиви з комірками таблиць були оновлені до значень DLE 14.1 (на ранні версії DLE це ніяк не впливає) Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей - Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Для користувачів було використано штатний API клас самої DLE, щоб авторизувати та реєструвати користувачів Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. - Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + Для авторизації користувачів потрібно за допомогою методу POST вказати наступний шлях URL: api/v1/users/auth. У заголовку обов’язково мають бути ім’я користувача та його пароль у незакодованому вигляді. Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. - Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + Для реєстрації користувача потрібно за допомогою методу POST вказати наступний шлях URL: api/v1/users/register. У заголовку потрібно вказати ім’я користувача, пароль, електронну пошту та ID групи користувачів. При регистрации и авторизации возвращается массив данных об этом пользователе - При регистрации и авторизации возвращается массив данных об этом пользователе + Під час реєстрації та авторизації повертається масив даних про цього користувача Первая стандартная версия - Первая стандартная версия + Перша стандартна версія гость - гость + гість DLE API - DLE API + DLE API Генерация ключа запрещена - Генерация ключа запрещена + Генерація ключа заборонена У вас уже есть активный API-ключ - У вас уже есть активный API-ключ + У вас уже є активний API-ключ Не задан уровень доступа по умолчанию - Не задан уровень доступа по умолчанию + Не задано рівень доступу за замовчуванням Заявка уже ожидает рассмотрения - Заявка уже ожидает рассмотрения + Заявка вже очікує розгляду Заявка отправлена на модерацию - Заявка отправлена на модерацию + Заявку надіслано на модерацію Ошибка - Ошибка + Помилка Некорректный идентификатор - Некорректный идентификатор + Некорректний ідентифікатор Заявка не найдена - Заявка не найдена + Заявку не знайдено Заявка уже обработана - Заявка уже обработана + Заявку вже оброблено Одобрено - Одобрено + Схвалено Отклонено - Отклонено + Відхилено Ключ создан - Ключ создан + Ключ створено Redirect URI должен быть ссылкой http(s) - Redirect URI должен быть ссылкой http(s) + Redirect URI має бути посиланням http(s) Выберите хотя бы один grant_type - Выберите хотя бы один grant_type + Оберіть хоча б один grant_type Укажите действующий API-ключ - Укажите действующий API-ключ + Вкажіть діючий API-ключ Клиент не найден - Клиент не найден + Клієнта не знайдено Клиент сохранён - Клиент сохранён + Клієнта збережено Синхронизация сохранена - Синхронизация сохранена + Синхронізацію збережено Ключ не найден - Ключ не найден + Ключ не знайдено Схема настроек недоступна - Схема настроек недоступна + Схему налаштувань недоступна Файл конфигурации недоступен для записи - Файл конфигурации недоступен для записи + Файл конфігурації недоступний для запису Каталог конфигурации недоступен для записи - Каталог конфигурации недоступен для записи + Каталог конфігурації недоступний для запису Все поля недействительны - Все поля недействительны + Усі поля недійсні Внимание - Внимание + Увага Частичное сохранение с ошибками - Частичное сохранение с ошибками + Часткове збереження з помилками Сохранено - Сохранено + Збережено Ключ сохранён - Ключ сохранён + Ключ збережено Ключ удалён - Ключ удалён + Ключ видалено client_secret пересоздан - client_secret пересоздан + client_secret перестворено Ключ включён - Ключ включён + Ключ увімкнено Ключ отключён - Ключ отключён + Ключ вимкнено Удалено - Удалено + Видалено Требуется авторизация - Требуется авторизация + Потрібна авторизація Недостаточно прав - Недостаточно прав + Недостатньо прав Нельзя запрашивать ключ за другого пользователя - Нельзя запрашивать ключ за другого пользователя + Неможливо запитати ключ за іншого користувача Не удалось - Не удалось + Не вдалося Недостаточно прав для модерации - Недостаточно прав для модерации + Недостатньо прав для модерації Заявка не найдена или уже обработана - Заявка не найдена или уже обработана + Заявку не знайдено або вже оброблено Уровень не найден - Уровень не найден + Рівень не знайдено Укажите название уровня - Укажите название уровня + Вкажіть назву рівня OAuth-клиент создан - OAuth-клиент создан + OAuth-клієнта створено Клиент удалён - Клиент удалён + Клієнта видалено История изменений - История изменений + Історія змін From 9c82e78195fcf7592f9fab79488d1be8e9261ba2 Mon Sep 17 00:00:00 2001 From: Maxim Harder Date: Wed, 19 Aug 2026 17:10:01 +0200 Subject: [PATCH 10/10] New translations dleapi.xliff (English) [ci skip] --- upload/devcraft/locales/en_US/dleapi.xliff | 590 ++++++++++----------- 1 file changed, 295 insertions(+), 295 deletions(-) diff --git a/upload/devcraft/locales/en_US/dleapi.xliff b/upload/devcraft/locales/en_US/dleapi.xliff index 2b59c5b7..d35e3fcc 100644 --- a/upload/devcraft/locales/en_US/dleapi.xliff +++ b/upload/devcraft/locales/en_US/dleapi.xliff @@ -4,1183 +4,1183 @@ API-ключ - API-ключ + API key Новый - Новый + New Загрузка… - Загрузка… + Loading… Ключ - Ключ + Key Копировать - Копировать + Copy Когда - Когда + When Истекает - Истекает + Expires Уровень - Уровень + Access level Запросить ключ - Запросить ключ + Request key Одобрить - Одобрить + Approve Отказать - Отказать + Reject Метод не разрешён - Метод не разрешён + Method not allowed Допустимо - Допустимо + Allowed Маршрут не найден - Маршрут не найден + Route not found Неверный или неактивный API-ключ - Неверный или неактивный API-ключ + Invalid or inactive API key Неверный логин или пароль - Неверный логин или пароль + Invalid login or password Нет API-ключа пользователя и гостевого ключа - Нет API-ключа пользователя и гостевого ключа + No user API key or guest key Неверный client_id или client_secret - Неверный client_id или client_secret + Invalid client_id or client_secret Клиент не разрешает grant_type=client_credentials - Клиент не разрешает grant_type=client_credentials + Client does not allow grant_type=client_credentials API-ключ клиента неактивен - API-ключ клиента неактивен + Client API key is inactive Нужны оба: client_id и client_secret - Нужны оба: client_id и client_secret + Both client_id and client_secret are required Клиент не разрешает grant_type=password - Клиент не разрешает grant_type=password + Client does not allow grant_type=password Неверный client - Неверный client + Invalid client Клиент не разрешает grant_type=authorization_code - Клиент не разрешает grant_type=authorization_code + Client does not allow grant_type=authorization_code Код недействителен - Код недействителен + Code is invalid redirect_uri не совпадает - redirect_uri не совпадает + redirect_uri does not match Ошибка проверки PKCE - Ошибка проверки PKCE + PKCE verification error API-ключ неактивен - API-ключ неактивен + API key is inactive Refresh token недействителен - Refresh token недействителен + Refresh token is invalid Связанный access token не найден - Связанный access token не найден + Associated access token not found Клиент или ключ неактивен - Клиент или ключ неактивен + Client or key is inactive Клиент не разрешает grant_type=refresh_token - Клиент не разрешает grant_type=refresh_token + Client does not allow grant_type=refresh_token Неизвестный или неактивный client_id - Неизвестный или неактивный client_id + Unknown or inactive client_id У клиента не задан redirect_uri - У клиента не задан redirect_uri + Client has no redirect_uri set redirect_uri не совпадает с зарегистрированным у клиента - redirect_uri не совпадает с зарегистрированным у клиента + redirect_uri does not match the one registered for the client Попытка взлома! - Попытка взлома! + Hack attempt detected! Неподдерживаемый credential_type - Неподдерживаемый credential_type + Unsupported credential_type Укажите credential_type или grant_type - Укажите credential_type или grant_type + Specify credential_type or grant_type Нужны client_id и redirect_uri - Нужны client_id и redirect_uri + client_id and redirect_uri are required Авторизация пройдена, но сброшена в демо-режиме - Авторизация пройдена, но сброшена в демо-режиме + Authorization successful, but demo mode is enabled Неизвестная таблица - Неизвестная таблица + Unknown table Запись не найдена - Запись не найдена + Entry not found Нужен fields{} или name+value - Нужен fields{} или name+value + fields{} or name+value is required Поле не найдено - Поле не найдено + Field not found Нужен multipart field file - Нужен multipart field file + multipart field file is required Новость не найдена - Новость не найдена + News not found Метод требует значение - Метод требует значение + Method requires a value Нельзя выполнить операцию: не задан первичный ключ. - Нельзя выполнить операцию: не задан первичный ключ. + Cannot perform operation: primary key is not specified. Неизвестная колонка «{column}» для таблицы {table} - Неизвестная колонка «{column}» для таблицы {table} + Unknown column «{column}» for table {table} Нет права «{action}» на таблицу «{table}» - Нет права «{action}» на таблицу «{table}» + No «{action}» permission on table «{table}» Неизвестный метод - Неизвестный метод + Unknown method Безопасность - Безопасность + Security Алгоритм HMAC - Алгоритм HMAC + HMAC algorithm Алгоритм для генерации API-ключей. - Алгоритм для генерации API-ключей. + Algorithm for generating API keys. Секрет - Секрет + Secret Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. - Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении. + HMAC secret string. Leave empty to auto-generate on save. Длина ключа - Длина ключа + Key length Длина генерируемого API-ключа. - Длина генерируемого API-ключа. + Length of the generated API key. Маскировать чувствительные поля - Маскировать чувствительные поля + Mask sensitive fields Задано DEMO_MODE в .env — маскирование принудительно включено. - Задано DEMO_MODE в .env — маскирование принудительно включено. + DEMO_MODE is set in .env — masking is forcibly enabled. Скрывать пароли, IP и хеши в ответах API (CRUD). - Скрывать пароли, IP и хеши в ответах API (CRUD). + Hide passwords, IP addresses, and hashes in API responses (CRUD). OAuth2 - OAuth2 + OAuth2 TTL access token (сек) - TTL access token (сек) + Access token TTL (sec) Время жизни access token в секундах. - Время жизни access token в секундах. + Lifetime of the access token in seconds. Уровни доступа - Уровни доступа + Access levels Уровень доступа по умолчанию - Уровень доступа по умолчанию + Default access level Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. - Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации. + Used for self-generation of keys and if the DLE group is not linked on the synchronization page. Профиль пользователя - Профиль пользователя + User profile Показывать блок API-ключа в профиле - Показывать блок API-ключа в профиле + Show API key block in profile Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. - Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys. + If disabled, the block is only visible when self-generation/application is enabled. The key is taken from the api_keys table. Разрешить пользователям генерировать ключ - Разрешить пользователям генерировать ключ + Allow users to generate keys Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. - Если выключено — кнопка запроса не показывается; ключ выдаёт администратор. + If disabled, the request button is not shown; the key is issued by the administrator. Уведомления о заявках - Уведомления о заявках + Key request notifications Уведомлять по почте при заявке на ключ - Уведомлять по почте при заявке на ключ + Notify by email when a key is requested ЛС на сайте при заявке на ключ - ЛС на сайте при заявке на ключ + PM on key request Группы DLE - Группы DLE + DLE groups Получатели уведомлений о заявках. - Получатели уведомлений о заявках. + Recipients of key request notifications. Пользователи - Пользователи + Users Дополнительные получатели уведомлений о заявках (по user_id). - Дополнительные получатели уведомлений о заявках (по user_id). + Additional recipients of key request notifications (by user_id). PM: тема заявки - PM: тема заявки + PM: Application subject Тема личного сообщения для администраторов о новой заявке на API-ключ. - Тема личного сообщения для администраторов о новой заявке на API-ключ. + Subject of the personal message to administrators about a new API key request. Плейсхолдеры заявки (PM) - Плейсхолдеры заявки (PM) + Application placeholders (PM) Заявка на API-ключ - Заявка на API-ключ + API key request PM: текст заявки - PM: текст заявки + PM: Application text Текст личного сообщения администраторам о новой заявке на API-ключ. - Текст личного сообщения администраторам о новой заявке на API-ключ. + Text of the personal message to administrators about a new API key request. Уведомления о решении - Уведомления о решении + Decision notifications Уведомлять по почте об одобрении / отказе - Уведомлять по почте об одобрении / отказе + Notify by email on approval/rejection ЛС об одобрении / отказе - ЛС об одобрении / отказе + PM on approval/rejection PM: тема одобрения - PM: тема одобрения + PM: Approval subject Тема личного сообщения пользователю при одобрении API-ключа. - Тема личного сообщения пользователю при одобрении API-ключа. + Subject of the personal message to the user upon API key approval. Плейсхолдеры одобрения (PM) - Плейсхолдеры одобрения (PM) + Approval placeholders (PM) API-ключ одобрен - API-ключ одобрен + API key approved PM: текст одобрения - PM: текст одобрения + PM: Approval text Текст личного сообщения пользователю при одобрении API-ключа. - Текст личного сообщения пользователю при одобрении API-ключа. + Text of the personal message to the user upon API key approval. PM: тема отказа - PM: тема отказа + PM: Rejection subject Тема личного сообщения пользователю при отказе в API-ключе. - Тема личного сообщения пользователю при отказе в API-ключе. + Subject of the personal message to the user upon API key rejection. Плейсхолдеры отказа (PM) - Плейсхолдеры отказа (PM) + Rejection placeholders (PM) API-ключ отклонён - API-ключ отклонён + API key rejected PM: текст отказа - PM: текст отказа + PM: Rejection text Текст личного сообщения пользователю при отказе в API-ключе. - Текст личного сообщения пользователю при отказе в API-ключе. + Text of the personal message to the user upon API key rejection. Ваша заявка на API-ключ отклонена. - Ваша заявка на API-ключ отклонена. + Your API key request has been rejected. Email-шаблоны - Email-шаблоны + Email templates Email: тема заявки - Email: тема заявки + Email: Application subject Тема письма администраторам о новой заявке на API-ключ. - Тема письма администраторам о новой заявке на API-ключ. + Subject of the email to administrators about a new API key request. Плейсхолдеры заявки (email) - Плейсхолдеры заявки (email) + Application placeholders (email) Email: тело заявки - Email: тело заявки + Email: Application body HTML или текст письма администраторам о новой заявке на API-ключ. - HTML или текст письма администраторам о новой заявке на API-ключ. + HTML or text of the email to administrators about a new API key request. Email: тема одобрения - Email: тема одобрения + Email: Approval subject Тема письма пользователю при одобрении API-ключа. - Тема письма пользователю при одобрении API-ключа. + Subject of the email to the user upon API key approval. Плейсхолдеры решения (email) - Плейсхолдеры решения (email) + Decision placeholders (email) Email: тема отказа - Email: тема отказа + Email: Rejection subject Тема письма пользователю при отказе в API-ключе. - Тема письма пользователю при отказе в API-ключе. + Subject of the email to the user upon API key rejection. Email: тело решения - Email: тело решения + Email: Decision body HTML или текст письма пользователю при одобрении либо отказе в API-ключе. - HTML или текст письма пользователю при одобрении либо отказе в API-ключе. + HTML or text of the email to the user upon approval or rejection of an API key request. Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 - Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2 + Unofficial REST/SDK API for DLE: keys, OAuth2 Bearer, /api/v2 Главная - Главная + Home API-ключи - API-ключи + API keys Синхронизация с группами - Синхронизация с группами + Synchronization with groups Заявки на ключ - Заявки на ключ + Key requests OAuth-клиенты - OAuth-клиенты + OAuth clients Настройки - Настройки + Settings Журнал изменений - Журнал изменений + Changelog Список API-ключей - Список API-ключей + List of API keys Активен - Активен + Active Пользователь - Пользователь + User Действия - Действия + Actions Да - Да + Yes Права - Права + Permissions Отключить - Отключить + Disable Удалить - Удалить + Delete Ключей пока нет - Ключей пока нет + No keys yet Создать ключ - Создать ключ + Create key Показать форму - Показать форму + Show form Скрыть форму - Скрыть форму + Hide form Уровень доступа - Уровень доступа + Access level — вручную / без уровня — - — вручную / без уровня — + — manual / no level — При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. - При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже. + When a level is selected, own_only/cheater flags are taken from the level. Without a level, the scopes matrix below is used. Создать - Создать + Create Сохранить - Сохранить + Save Отмена - Отмена + Cancel Права доступа к таблицам (если уровень не задан или для legacy-ключей) - Права доступа к таблицам (если уровень не задан или для legacy-ключей) + Table permissions (if no level is set or for legacy keys) Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. - Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется. + Read — view; Write — create; Edit — modify; Delete — delete. If the level has cheater, the matrix is ignored. Таблица - Таблица + Table Чтение - Чтение + Read Включить все - Включить все + Enable all Запись - Запись + Write Правка - Правка + Edit Удаление - Удаление + Delete Список таблиц SchemaRegistry пуст - Список таблиц SchemaRegistry пуст + SchemaRegistry tables list is empty Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. - Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную. + If the group is not linked, the default level from settings is used for self-generation; for keys, the level is set manually. Группа DLE → уровень доступа - Группа DLE → уровень доступа + DLE group → access level Группа - Группа + Group — не задано — - — не задано — + — not set — Группы не найдены - Группы не найдены + Groups not found Эндпоинты Authorization Server - Эндпоинты Authorization Server + Authorization Server endpoints Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). - Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP). + Copy the URL for integrating external OAuth clients (DLE = IdP). Сохраните client_secret сейчас - Сохраните client_secret сейчас + Save client_secret now он показывается один раз и больше не будет доступен. - он показывается один раз и больше не будет доступен. + it will be shown only once and will no longer be available. Скрыть - Скрыть + Hide Имя - Имя + Name Изменить - Изменить + Change Клиентов пока нет - Клиентов пока нет + No clients yet Создать клиент - Создать клиент + Create client OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. - OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается. + OAuth client issues access_token for /api/v2 calls. Request permissions are taken from the selected API key (scopes). After creation, save client_id and client_secret — the secret will no longer be shown. Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». - Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret». + Editing: name, API key, Redirect URI, grant types, and activity. client_id cannot be changed; secret can only be regenerated via "Regenerate client_secret". Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. - Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать. + Client ID cannot be changed. The secret can be regenerated using the button below — the old one will stop working immediately. Пересоздать client_secret - Пересоздать client_secret + Regenerate client_secret Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. - Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента. + The new secret will appear once above the table. Update it in all applications that use this client. Название - Название + Name Напр. Mobile app, CI, Postman - Напр. Mobile app, CI, Postman + E.g. Mobile app, CI, Postman Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. - Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id. + Only for the admin list. Does not affect token issuance. If empty, client_id will be used. — выберите — - — выберите — + — select — Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». - Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи». + Required. Defines which tables and with what permissions (read/write/delete) the Bearer token of this client can access. The key is created in the "Keys" tab. Redirect URI - Redirect URI + Redirect URI Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. - Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым. + HTTP(S) link. Required for grant authorization_code. Must exactly match the redirect_uri during /oauth/authorize and token exchange. Can be left empty for password / client_credentials. Grant types - Grant types + Grant types сервер-сервер без пользователя - сервер-сервер без пользователя + server-to-server without a user логин/пароль пользователя DLE - логин/пароль пользователя DLE + DLE user login/password браузерный OAuth-код (нужен Redirect URI) - браузерный OAuth-код (нужен Redirect URI) + browser OAuth code (requires Redirect URI) обновление access_token - обновление access_token + access_token refresh Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. - Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен. + Which token acquisition methods are allowed for this client. At least one is required. Неактивный клиент не сможет получать новые токены. - Неактивный клиент не сможет получать новые токены. + An inactive client cannot obtain new tokens. Заявки на API-ключ - Заявки на API-ключ + API key requests Статус - Статус + Status Дата - Дата + Date Отклонить - Отклонить + Reject Заявок нет - Заявок нет + No requests Сорт. - Сорт. + Sort. Премод. - Премод. + Pre-moderation. Уровней пока нет - Уровней пока нет + No levels yet Создать уровень - Создать уровень + Create level Сортировка - Сортировка + Sorting Премодерация заявок на ключ - Премодерация заявок на ключ + Pre-moderation of key requests Только свои записи - Только свои записи + Only own records Полный доступ (cheater) - Полный доступ (cheater) + Full access (cheater) Маскировать IP - Маскировать IP + Mask IP addresses Маскировать пароли/хеши - Маскировать пароли/хеши + Mask passwords/hashes Маскировать лишние ПДн - Маскировать лишние ПДн + Mask extra personal data Scopes уровня (read / write / edit / delete) - Scopes уровня (read / write / edit / delete) + Level scopes (read / write / edit / delete) API v2 (/api/v2) на CycleORM из DevCraft Admin. - API v2 (/api/v2) на CycleORM из DevCraft Admin. + API v2 (/api/v2) on CycleORM from DevCraft Admin. OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. - OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer. + OAuth2 Authorization Server: authorize, token, revoke; access only via Bearer. credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. - credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo. + credential_type api_key|auth|oauth_client; resources only AuthToken; GET /me and /oauth/userinfo. OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. - OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL. + OAuth AS discovery, authorize via DLE session, copyable endpoint URLs. Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). - Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX). + Access levels, synchronization with groups, key requests, profile (public AJAX). DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. - DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml. + DEMO_MODE / DLEAPI_SECURE from .env; email templates via install.xml. Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). - Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK). + Fluent builders prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process and HTTP SDK). Каталог Schema таблиц DLE в api/includes/Schemas. - Каталог Schema таблиц DLE в api/includes/Schemas. + DLE table schemas directory in api/includes/Schemas. OpenAPI (swagger-php) и документация OAD в mhdocs. - OpenAPI (swagger-php) и документация OAD в mhdocs. + OpenAPI (swagger-php) and OAD documentation in mhdocs. Загрузка файлов через штатный пайплайн DLE. - Загрузка файлов через штатный пайплайн DLE. + File uploads via DLE’s standard pipeline. Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). - Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12). + Filtering posts by one category when multiple are selected (FIND_IN_SET / issue #12). Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). - Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация). + Admin module DleApi for DevCraft Admin ≥ 200.4.0 (configuration only). HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. - HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard. + HTTP /table/{name}: table introspection outside SchemaRegistry + TableScopeGuard. SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). - SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). + SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema(). Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). - Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray). + Fluent CRUD on AbstractTableSchema (with / create / save / delete / filter / fromArray). GET-кэш TableQuery через CacheControl (dle_api_query, TTL). - GET-кэш TableQuery через CacheControl (dle_api_query, TTL). + GET cache for TableQuery via CacheControl (dle_api_query, TTL). Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. - Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption. + Admin: multi-recipients for notifications, WYSIWYG for PM; panel-title via caption. Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). - Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md). + Admin: Key/level/OAuth forms collapsed on narrow screens (Metro d-none / d-block-md). Совместимость с DLE 20.0 (xfields.json, dual category, conversations). - Совместимость с DLE 20.0 (xfields.json, dual category, conversations). + Compatibility with DLE 20.0 (xfields.json, dual category, conversations). Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. - Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml. + Tables api_keys / api_scope / OAuth are created by Cycle migrations from DevCraft (Models + AbstractEntity), not by DDL in install.xml. Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. - Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2. + Scopes: edit column; own_only/cheater at the level; trailing slash on all v2 routes. OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. - OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php. + OpenAPI: ApiError description without PHPDoc {@see}; Schema without install.php annotation. API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. - API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён. + API v1 (Slim + Illuminate Capsule, X-Api-Key) is completely removed. Приём сырого API-ключа как Bearer на ресурсах /table. - Приём сырого API-ключа как Bearer на ресурсах /table. + Accept raw API key as Bearer on /table resources. Оптимизация кода под PHP 8.2 - Оптимизация кода под PHP 8.2 + Code optimized for PHP 8.2 Минимально поддерживаемая версия DLE - 16.0 - Минимально поддерживаемая версия DLE - 16.0 + Minimum supported DLE version is 16.0 Изменён список алгоритмов на hash_hmac_algos - Изменён список алгоритмов на hash_hmac_algos + Algorithm list changed to hash_hmac_algos Убрана процедура проверки атрибута в таблице - Убрана процедура проверки атрибута в таблице + Removed table attribute validation procedure Оптимизирован код - Оптимизирован код + Code optimized Генерация ключа привязана к времени - Генерация ключа привязана к времени + Key generation tied to time Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" - Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный" + Added ability to add keys independently of the user. To do this, select "Guest / Unauthorized" in the user menu. Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию - Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию + Added ability to generate custom routers based on the database. Read the documentation. Обновлены данные для таблиц базы данных - Обновлены данные для таблиц базы данных + Database table data updated Обновлена документация API - Обновлена документация API + API documentation updated Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х - Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х + Minimum server requirements raised to DLE-News minimum required version → 7.4. May not work on versions below 15.x. Безопасный вывод данных (IP, пароли и хэш суммы) - Безопасный вывод данных (IP, пароли и хэш суммы) + Secure data output (IP, passwords, and hashes) Добавлена функция вывода только принадлежащих API-ключу записей - Добавлена функция вывода только принадлежащих API-ключу записей + Added function to output only records belonging to the API key Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) - Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений) + Added bulk actions (delete, (de-)activate, remove/add restrictions, remove/delete admin restrictions) Для удаления новостей была использована функция движка - Для удаления новостей была использована функция движка + Engine function was used for news deletion Для удаления комментариев была использована функция движка - Для удаления комментариев была использована функция движка + Engine function was used for comment deletion Изменил нумерование версий - Изменил нумерование версий + Changed version numbering composer настроил под версию PHP 5.6 - composer настроил под версию PHP 5.6 + Composer configured for PHP 5.6 Были исправлены несколько багов, спасибо @jyarali - Были исправлены несколько багов, спасибо @jyarali + Several bugs were fixed, thanks to @jyarali Исправлена проверка ключей в базе данных - Исправлена проверка ключей в базе данных + Fixed key validation in the database Добавлена проверка по длине значения для типа "string" - Добавлена проверка по длине значения для типа "string" + Added length check for string type values Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) - Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет) + Table cell arrays updated to DLE 14.1 values (does not affect earlier DLE versions). Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей - Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей + Standard DLE API class was used for users to authorize and register users Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. - Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде. + To authorize users, use POST method to the following URL: api/v1/users/auth. The header must contain the username and password in plain text. Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. - Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей. + To register a user, use POST method to the following URL: api/v1/users/register. The header must contain username, password, email, and user group ID. При регистрации и авторизации возвращается массив данных об этом пользователе - При регистрации и авторизации возвращается массив данных об этом пользователе + Authorization and registration return an array of user data Первая стандартная версия - Первая стандартная версия + First standard version гость - гость + guest DLE API - DLE API + DLE API Генерация ключа запрещена - Генерация ключа запрещена + Key generation disabled У вас уже есть активный API-ключ - У вас уже есть активный API-ключ + You already have an active API key Не задан уровень доступа по умолчанию - Не задан уровень доступа по умолчанию + Default access level not set Заявка уже ожидает рассмотрения - Заявка уже ожидает рассмотрения + Request already pending review Заявка отправлена на модерацию - Заявка отправлена на модерацию + Request sent for moderation Ошибка - Ошибка + Error Некорректный идентификатор - Некорректный идентификатор + Invalid identifier Заявка не найдена - Заявка не найдена + Request not found Заявка уже обработана - Заявка уже обработана + Request already processed Одобрено - Одобрено + Approved Отклонено - Отклонено + Rejected Ключ создан - Ключ создан + Key created Redirect URI должен быть ссылкой http(s) - Redirect URI должен быть ссылкой http(s) + Redirect URI must be an http(s) link Выберите хотя бы один grant_type - Выберите хотя бы один grant_type + Select at least one grant_type Укажите действующий API-ключ - Укажите действующий API-ключ + Specify a valid API key Клиент не найден - Клиент не найден + Client not found Клиент сохранён - Клиент сохранён + Client saved Синхронизация сохранена - Синхронизация сохранена + Synchronization saved Ключ не найден - Ключ не найден + Key not found Схема настроек недоступна - Схема настроек недоступна + Settings schema unavailable Файл конфигурации недоступен для записи - Файл конфигурации недоступен для записи + Configuration file is not writable Каталог конфигурации недоступен для записи - Каталог конфигурации недоступен для записи + Configuration directory is not writable Все поля недействительны - Все поля недействительны + All fields are invalid Внимание - Внимание + Warning Частичное сохранение с ошибками - Частичное сохранение с ошибками + Partial save completed with field errors Сохранено - Сохранено + Saved Ключ сохранён - Ключ сохранён + Key saved Ключ удалён - Ключ удалён + Key removed client_secret пересоздан - client_secret пересоздан + client_secret regenerated Ключ включён - Ключ включён + Key enabled Ключ отключён - Ключ отключён + Key disabled Удалено - Удалено + Removed Требуется авторизация - Требуется авторизация + Authorization required Недостаточно прав - Недостаточно прав + Insufficient permissions Нельзя запрашивать ключ за другого пользователя - Нельзя запрашивать ключ за другого пользователя + Cannot request a key for another user Не удалось - Не удалось + Failed Недостаточно прав для модерации - Недостаточно прав для модерации + Insufficient moderation permissions Заявка не найдена или уже обработана - Заявка не найдена или уже обработана + Request not found or already processed Уровень не найден - Уровень не найден + Level not found Укажите название уровня - Укажите название уровня + Specify level name OAuth-клиент создан - OAuth-клиент создан + OAuth client created Клиент удалён - Клиент удалён + Client removed История изменений - История изменений + History of changes