Download the PHP package olek-php/auto-translator-bundle without Composer
On this page you can find all versions of the php package olek-php/auto-translator-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package auto-translator-bundle
Auto Translator Bundle
Перевод отсутствующих сообщений Symfony через OpenAI Responses API.
Зарегистрируйте бандл в config/bundles.php основного проекта:
Настройте config/packages/dev/auto_translator.yaml:
Ключ задайте в .env.local основного проекта (не добавляйте его в Git):
model и prompt можно опустить: бандл использует gpt-5-nano и встроенный промпт.
Для gpt-5-nano и его снимков автоматически устанавливается reasoning.effort: minimal,
чтобы сократить внутренние рассуждения. reasoning_effort позволяет переопределить этот выбор.
При смене модели выбирайте поддерживаемое ею значение; без настройки для других моделей
параметр не передаётся. Уменьшение effort не гарантирует фиксированный расход или качество перевода.
Расход смотрите в usage: reasoning_tokens уже входят в output_tokens и оплачиваются как выходные токены.
В промпте {source_locale} заменяется на исходную локаль, {target_locales} — на список целевых локалей.
Старый маркер {target_locale} также заменяется на список локалей. Если вы уже задали свой промпт,
обновите его по примеру выше: messages содержит строки без ID. Команда сама задаёт формат translations — массив объектов с кодом locale и массивом строк values. Старые инструкции про ID или позиционную привязку языков нужно удалить.
Модель должна поддерживать Responses API и Structured Outputs.
В YAML для буквальных % внутри промпта используйте %% (экранирование параметров Symfony).
Исходная локаль, целевые локали и путь берутся из настроек Symfony
framework.default_locale, framework.enabled_locales и framework.translator.default_path.
Сообщения отправляются пакетами до batch_size исходных сообщений сразу на все нужные языки
(по умолчанию 100; допустимо от 1 до 100).
Общий список target_locales задаётся один раз на пакет и содержит все локали, нужные в этом пакете.
Каждая строка переводится на все языки пакета. Входные сообщения передаются массивом строк без ID.
Ответ — массив объектов {"locale":"ru","values":["Перевод 1","Перевод 2"]}.
Язык определяется кодом locale, поэтому перестановка объектов не меняет назначение переводов.
Порядок строк внутри values соответствует порядку сообщений.
Схема перечисляет допустимые коды языков один раз и задаёт точные размеры массивов через minItems / maxItems.
Перед записью проверяются коды языков, отсутствие дублей, размеры массивов и типы всех переводов.
Это защищает от сдвига языков при разборе ответа, но не определяет язык самого текста.
Если предыдущий запуск уже записал перевод не в ту локаль, удалите ошибочные записи или восстановите их из резервной копии перед повторным запуском.
Используются только переводы для отсутствующих записей и заглушек; существующие записи не перезаписываются.
При частично заполненных каталогах это может увеличить число генерируемых переводов и время ответа.
Настроенный промпт отправляется один раз; команда добавляет обязательное правило формата и порядка элементов.
Готовые переводы сохраняются, в том числе совпадающие с исходным текстом (например, Promotion).
В пакет попадают только сообщения, отсутствующие хотя бы в одной локали или имеющие заглушку вида __исходный текст.
Чтобы перевести существующую запись заново, удалите её из целевого каталога или замените заглушкой.
timeout задаёт время ожидания без сетевой активности в секундах (по умолчанию 300, минимум 1).
Если возникает Idle timeout reached, увеличьте timeout или уменьшите batch_size, например до 20.
Чем больше языков, тем больше размер ответа. Ошибка API, отказ модели или некорректный
ответ прерывают команду до записи файлов всех локалей.
Реальные запросы используют API-ключ и оплачиваются в аккаунте OpenAI.
Документация API: Responses и генерация текста, Structured Outputs.
Локальные проверки без запросов к API: php tests/run.php.
All versions of auto-translator-bundle with dependencies
symfony/framework-bundle Version 7.*||8.*
symfony/translation Version 7.*||8.*
symfony/console Version 7.*||8.*
symfony/http-client Version 7.*||8.*
ext-dom Version *
ext-libxml Version *