Extracción de texto
Extracción de cadenas de traducción en Laravel + Vue
En proyectos Laravel + Vue, es habitual envolver los textos traducibles con el helper:
{{ __("Texto a traducir") }}El objetivo es recorrer recursivamente el proyecto (Blade, PHP, JS, Vue) y generar un único fichero de traducción con el formato:
{
"Texto 1 a traducir": "",
"Texto 2 a traducir": ""
}Opción recomendada: laravel-json-translation-helper
Este paquete permite escanear automáticamente el proyecto y generar/actualizar los archivos JSON de traducción.
Instalación
composer require subotkevic/laravel-json-translation-helperPublicar configuración
php artisan vendor:publish --provider="JsonTranslationHelper\TranslationHelperServiceProvider"Configuración típica
Se puede personalizar a ficheros vue , jsx y otros formatos
Archivo config/translation-helper.php:
return [
'scan_directories' => [
app_path(),
resource_path('views'),
resource_path('js'),
],
'file_extensions' => [
'php',
'js',
'vue',
'jsx'
],
'translation_methods' => [
'__',
'lang',
],
];Ejecución del escaneo
php artisan translation:scanEste comando:
- Recorre los directorios configurados
- Detecta llamadas a
__(),lang(),@lang - Añade automáticamente las claves faltantes al JSON
- Evita duplicados
Resultado generado
Si en el proyecto existen textos como:
{{ __("Enviar") }}
{{ __("Cancelar") }}El archivo de traducción quedará así:
{
"Enviar": "",
"Cancelar": ""
}Conclusión
✔ Para la mayoría de proyectos Laravel + Vue, laravel-json-translation-helper es la solución óptima
✔ Soporta fichero de tipo
.vue, .js. .blade.php, ts, jsx, tsx
✔ Genera exactamente el formato "texto": "" requerido
Ideal para flujos de trabajo educativos y proyectos multi-idioma.