Search by

cgv / localized-resource

cgarrido

Comando para crear recursos localizados de Filament

Package info

bitbucket.org/cgv415/localized-resource

pkg:composer/cgv/localized-resource

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

v1.0.0 2026-11-06 10:43 UTC

This package is not auto-updated.

Last update: 2026-11-07 02:47:03 UTC


README

Crea un recurso de Filament y los archivos de idioma de su nombre singular y plural. El recurso generado usa CGV\LocalizedResource\Filament\Resource, que lee esas traducciones en el panel.

Hace falta una aplicación Laravel con PHP 8.3 y Filament 5.

Instalación

composer require cgv/localized-resource

Los idiomas por defecto son es, en y fr. Para cambiarlos:

php artisan vendor:publish --tag=localized-resource-config

Eso copia config/localized-resource.php. Lo que edites ahí sustituye a los valores del paquete.

Comando

php artisan make:localized-resource {model?} {--label=} {--plural_label=}
EntradaQué hace
modelNombre del modelo. Si lo omites, el comando lo pregunta. Si no es el singular en Studly (Customer), propone ese nombre y pide confirmación.
--labelRespuesta de la etiqueta singular en cada idioma elegido. Si el inflector la cambia, pregunta si aceptas el cambio.
--plural_labelIgual para el plural. La sugerencia sale de la etiqueta singular ya aceptada.

--label y --plural_label son un solo valor para todos los idiomas de esa ejecución. Sirven cuando rellenas un idioma, o cuando la palabra es la misma en los que elijas.

El idioma marcado por defecto en la lista es config('app.locale').

Qué deja escrito

Para un modelo Customer con la tabla ya creada:

  • app/Filament/Resources/Customers/CustomerResource.php, con página de vista y borrado lógico. Si la tabla existe, Filament genera el formulario y la tabla a partir de las columnas.
  • lang/{locale}/filament/resources/customer.php por cada idioma elegido.
return array (
  'label' => 'Cliente',
  'plural_label' => 'Clientes',
);

En el panel, label y plural_label salen de ese archivo cuando la clave existe. Si no existe, Filament usa su propio nombre.

Casos de uso

El modelo y la tabla ya existen

php artisan make:localized-resource Customer

Comprueba app/Models/Customer.php y que su tabla esté en la base de datos. Después propone una columna de título, saltando id, created_at, updated_at y deleted_at. Puedes aceptar la primera, elegir otra de la lista o escribir el nombre. Esa columna se pasa a Filament como atributo del título del registro.

El nombre llega en plural o en minúsculas

php artisan make:localized-resource customers

Propone Customer. Si lo rechazas, sigue con el texto que escribiste.

La tabla no existe

El comando avisa y ofrece tres caminos:

  1. Crear el modelo con migración, factory y seeder, editar la migración y ejecutar migrate.
  2. Esperar y continuar cuando la tabla ya esté creada.
  3. Seguir sin tabla. En ese caso la columna de título queda en name y Filament no genera el formulario desde la base de datos.

Si migrate falla, el comando lo dice y espera a que la corrijas en otra terminal.

Etiquetas desde las opciones

php artisan make:localized-resource Customer --label=Cliente --plural_label=Clientes

No pregunta el texto de esas dos variables. Sigue preguntando el idioma y, si el inflector devuelve otra forma, si quieres sustituirla. El inflector usa español, inglés o francés según el idioma; en cualquier otro usa las reglas del inglés.

Varios idiomas

En la lista eliges uno o más de supported_locales. Por cada uno pide la etiqueta singular y la plural, muestra el resumen y pide confirmación antes de escribir el archivo.

El archivo de idioma ya existe

Pregunta si lo sobrescribe. Si dices que no, imprime el contenido para copiarlo a mano y no sigue con los idiomas que quedaran pendientes.