Skip to content

Коллектор переводов

Захватывает поиск переводов во время выполнения запроса — разрешённые переводы, отсутствующие ключи, использование локалей и категории.

Панель коллектора переводов

Собираемые данные

ПолеОписание
categoryКатегория/домен перевода
localeЦелевая локаль
messageКлюч перевода
translationРазрешённый перевод (или null, если отсутствует)
missingБыл ли перевод не найден
fallbackLocaleИспользованная резервная локаль (если есть)

Схема данных

json
{
    "translations": [
        {
            "category": "messages",
            "locale": "en",
            "message": "welcome.title",
            "translation": "Welcome to App",
            "missing": false,
            "fallbackLocale": null
        },
        {
            "category": "messages",
            "locale": "fr",
            "message": "missing.key",
            "translation": null,
            "missing": true,
            "fallbackLocale": "en"
        }
    ],
    "missingCount": 1,
    "totalCount": 2,
    "locales": ["en", "fr"],
    "categories": ["messages"]
}

Сводка (отображается в списке отладочных записей):

json
{
    "translator": {
        "total": 2,
        "missing": 1
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\TranslatorCollector;
use AppDevPanel\Kernel\Collector\TranslationRecord;

$collector->logTranslation(new TranslationRecord(
    category: 'messages',
    locale: 'en',
    message: 'welcome.title',
    translation: 'Welcome to App',
    missing: false,
));

Как это работает

Коллектор получает данные от TranslatorProxy, который перехватывает вызовы к сервису переводов. Каждый вызов trans() / translate() записывается вместе с результатом.

Подробные примеры интеграции для каждого фреймворка см. на странице Переводчик.

Панель отладки

  • Список переводов — все запросы с ключом, разрешённым значением и локалью
  • Обнаружение отсутствующих — отсутствующие переводы выделены красным
  • Разбивка по локалям — переводы сгруппированы по локали
  • Фильтрация по категории — фильтр по домену/категории перевода

Выпущено под лицензией MIT.