pardalsalcap / linter-translations
Translation manager for Linter-based Laravel applications.
Package info
github.com/pardalsalcap/linter-translations
pkg:composer/pardalsalcap/linter-translations
Requires
- php: ^8.2
- filament/filament: ^5.0
- laravel/framework: ^12.0
- spatie/laravel-package-tools: ^1.92
- spatie/laravel-translation-loader: ^2.8
Requires (Dev)
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.5
This package is auto-updated.
Last update: 2026-03-18 12:51:24 UTC
README
pardalsalcap/linter-translations extrae a package reusable el gestor de traducciones para aplicaciones Laravel basadas en Linter / Filament.
v5 supports Filament 5
Qué resuelve
- Persistencia de traducciones en tabla
language_lines - Sincronización desde
lang/{locale}/*.php,lang/{locale}.jsonylang/vendor/*/{locale}/*.php - Prioridad de base de datos sobre ficheros en runtime
- Soporte para grupos locales y vendor namespace como
demo::panel - Recurso Filament reutilizable para editar traducciones
Instalación
composer require pardalsalcap/linter-translations php artisan migrate
Si quieres publicar la configuración:
php artisan vendor:publish --tag="linter-translations-config"
Registro en Filament
Registra el plugin en tu panel:
use Pardalsalcap\LinterTranslations\Filament\LinterTranslationsPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ LinterTranslationsPlugin::make(), ]); }
Configuración
Archivo: config/linter-translations.php
Opciones principales:
locales: lista explícita de idiomas. Acepta['en', 'es']o['en' => 'English', 'es' => 'Español'].locales_config: clave de config alternativa desde la que leer los idiomas silocalesestá vacío.navigation_group: grupo de navegación del recurso Filament.model: modelo usado porspatie/laravel-translation-loader.translation_manager: manager runtime que da prioridad a BD.export_command: comando opcional para exponer una acción de exportación en el recurso.export_role: rol requerido para ver la acción de exportación si está habilitada.
Sincronización
El package expone:
php artisan linter-translations:sync
También mantiene el alias:
php artisan app:translations-sync
Comportamiento por defecto:
- crea claves nuevas
- rellena idiomas faltantes
- no sobrescribe valores ya existentes en
language_lines
Para forzar sobreescritura:
php artisan linter-translations:sync --overwrite
Para limitar idiomas:
php artisan linter-translations:sync --locale=es --locale=en
Runtime
Cuando una traducción existe tanto en fichero como en language_lines, prevalece la de base de datos. Eso permite editar textos desde el CMS sin tocar el repositorio.
Testing
El package incluye tests de integración con orchestra/testbench para cubrir:
- sync desde ficheros PHP, JSON y vendor namespace
- comportamiento conservador sin
--overwrite - sobreescritura explícita con
--overwrite - prioridad de BD en runtime, incluyendo namespaces vendor
Ejecutar:
composer test