Skip to content

Translation Manager Overview

Translation Manager is a Capell admin package for managing Laravel language files from Filament.

The package is file-first. App language files are editable in place. Package and vendor files are treated as read-only source material unless explicitly configured otherwise; edits are written to Laravel override paths so package upgrades remain safe.

Phase one does not create Capell language records, database tables, jobs, or frontend output.

  • Composer package: capell-app/translation-manager
  • Hard dependencies: capell-app/admin, capell-app/core
  • Optional dependencies: capell-app/ai-orchestrator for AI translation drafting
  • Database impact: no migrations or settings tables owned by this package
  • Public frontend impact: none

The package registers TranslationManagerServiceProvider through Composer and declares AdminServiceProvider in capell.json. In the isolated harness, the extension installed successfully and exposed the admin/translation-manager Filament route.

  • Translation Manager page: Filament page at admin/translation-manager
  • Header action modal: Create locale
  • Header action modal: Duplicate locale
  • Header action: Save translations
  • Optional header action: Translate selected, visible only when an AI translator binding is available
  • Translation comparison grid with source selector, locale selectors, file selector, status filter, entry checkboxes, source text, and target textareas

See screenshots.json for the screenshot contract. The verified capture covers the no-results state, a populated comparison grid, the create locale modal, and the duplicate locale modal.

The optional Translate selected action is intentionally absent unless a TranslationAITranslator implementation is available, normally through capell-app/ai-orchestrator.

  • Install only the core Capell stack and capell-app/translation-manager for screenshots.
  • Remove unrelated extensions from the harness database before capture; the verified pass left only capell-app/translation-manager enabled.
  • Set capell-translation-manager.package_paths to [] in the harness config when the app sits beside capell-packages-4. Otherwise the source selector lists every local package repository, including packages that are not installed in the demo app.
  • Seed a small application translation fixture, such as lang/en/package.php and partial lang/fr/package.php, so the grid shows missing and changed rows without depending on another package.
  • vendor/bin/pest packages/translation-manager/tests --configuration=phpunit.xml
  • php artisan route:list | rg 'translation|Translation|translations' in the disposable harness
  • Browser capture at /admin/translation-manager with [email protected] / password