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-helper

Publicar 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:scan

Este 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.