Dictionary (Database Translations)

Плагин переносит UI-строки из JSON-файлов в коллекцию Payload, которую редакторы правят в админке без деплоя.

Сообщество 2 255/нед MIT v1.0.0

Установка

pnpm add payload-plugin-dictionary

Описание

Плагин добавляет коллекцию translations в группу Dictionary в админке Payload. Каждый документ содержит namespace (выбирается из списка, который передаётся в опции плагина), ключ с точками, например auth.login_button, и локализованное поле value. Цель в том, чтобы вынести микрокопи, такое как подписи кнопок, пункты навигации и сообщения об ошибках, из файлов вроде en.json в админку, где редакторы могут менять тексты без деплоя. На стороне Next.js пакет экспортирует getTranslations и getDictionary из payload-plugin-dictionary/cache. Чтения обёрнуты в unstable_cache с тегом payload-translations, а хуки afterChange и afterDelete вызывают revalidateTag для этого тега, поэтому после правок кеш обновляется. Для Client Components есть DictionaryProvider и хук useTranslations из клиентского entry point. Функция t поддерживает интерполяцию переменных в формате {var} и строку-фолбэк, которая возвращается, если ключа нет. Плагин также регистрирует REST-эндпоинт GET /api/dictionary/:namespace?locale= с заголовками HTTP-кеширования, а CLI payload-dictionary generate создаёт TypeScript-типы по сохранённым ключам. Опция namespaces обязательна: при пустом списке плагин падает на этапе конфигурации. Уникальность ключа проверяется в двух местах: поле key помечено как unique, а хук beforeValidate сверяет пару (namespace, key). Ключи не могут содержать пробелы. Плагин работает с Payload 3.90 или новее, Next.js 15 или 16 и React 19. Зависимость react необязательна и нужна только для клиентских хелперов. Плагин управляет только строками и не заменяет библиотеку i18n на фронтенде.

О пакете

Имя пакета
payload-plugin-dictionary
Последняя версия
1.0.0
Размер
446 кБ
Лицензия
MIT
Загрузок в неделю
255
Последняя публикация
12 окт. 2026 г.

Ещё от Mhmod-Hsn

Профиль автора

Похожие плагины

Ещё в категории «i18n»