Passer au contenu principal

Laravel

El paquete neiderruiz/translate-projects-laravel extrae los textos de __(), trans() y @lang() a lang/<idioma base>.json, los traduce y escribe lang/en.json, lang/pt_BR.json, etc., que Laravel usa directamente.

Prérequis​

  • PHP 8.1 ou supérieur et Laravel 10, 11, 12 ou 13.
  • Un projet et un token API de Translate Projects. Consulte Premiers pas.

1. Installe le paquet​

Terminal
composer require neiderruiz/translate-projects-laravel
php artisan vendor:publish --tag=translate-config # Facultatif

2. Configura el .env​

.env
TRANSLATE_PROJECTS_API_KEY=tu_token
APP_LOCALE=es
TRANSLATE_PROJECTS_TARGET_LANGUAGES=en,pt-BR,fr
Clave en config/translate-projects.phpVariable de entornoPar défaut
api_keyTRANSLATE_PROJECTS_API_KEY—
api_urlTRANSLATE_PROJECTS_API_URLhttps://api.translateprojects.dev
default_localeTRANSLATE_PROJECTS_DEFAULT_LOCALE o APP_LOCALEen
target_languagesTRANSLATE_PROJECTS_TARGET_LANGUAGES (séparés par des virgules)es,fr,de,it
scan_paths—app, resources, routes

default_locale debe coincidir con el idioma por defecto del proyecto en Translate Projects. Los códigos se pueden escribir como pt-BR, pt_BR o pt-br: el paquete usa pt-BR con la API y pt_BR en el nombre del archivo, como espera Laravel. Si usas php artisan config:cache, ejecuta php artisan config:clear después de cambiar el .env.

3. Marca tus textos​

routes/web.php
Route::get('/', fn () => __('Bienvenido a mi aplicación'));
resources/views/welcome.blade.php
<h1>{{ __('Hola mundo') }}</h1>
<p>{{ __('Bienvenido, :name', ['name' => $user->name]) }}</p>
<p>@lang('Este texto también se traduce')</p>

4. Extrae y traduis​

Terminal
php artisan translate:scan        # Extrais les textes vers lang/es.json
php artisan translate # Traduis vers toutes les langues cibles
php artisan translate pt-BR # Une seule langue
php artisan translate --force # Traduis même s'il n'y a pas de changements
  • translate:scan recherche __('...'), trans('...'), trans_choice('...') et @lang('...') avec un texte littéral. Ajoute les nouveaux textes à lang/<idioma base>.json et conserve ceux qui existaient déjà. Ignore les clés de groupe (comme auth.failed) et celles des paquets (pkg::archivo.clave).
  • translate sube los textos solo si cambiaron, espera al backend y escribe lang/<idioma>.json. Conserva las entradas que ya había en ese archivo, por ejemplo traducciones hechas a mano.

Fichiers générés​

lang/
├── es.json ← idioma base (generado por translate:scan)
├── en.json
├── pt_BR.json
├── fr.json
└── .translate-projects.json ← cache

Cache et --force​

En lang/.translate-projects.json se guarda qué versión tiene cada idioma: una segunda ejecución sin cambios hace una sola petición y no traduce nada. Usa --force para traducir de nuevo aunque no haya cambios. Más detalles en Caché y errores.

Erreurs courantes​

El comando nunca deja un archivo a medias ni lo borra.

  • Il manque TRANSLATE_PROJECTS_API_KEY: échoue sans faire de requêtes. Si vous utilisez config:cache, exécutez config:clear.
  • No se encontró o no es válido lang/es.json: vous n'avez pas encore extrait les textos : exécutez php artisan translate:scan.
  • El idioma de origen no es el predeterminado o El idioma de destino no está activo en tu proyecto: vérifiez la langue par défaut du projet ou activez cette langue dans le panneau.
  • Jeton invalide ou erreur 4xx: affiche le code et le message de l'API et ne touche pas aux fichiers.
  • Erreur 429, 5xx ou réseau: réessaie 3 fois ; si cela échoue encore, laisse cette langue telle quelle et continue avec les autres.
  • Clé d'IA manquante (MISSING_API_KEY): écrit ce qui est arrivé, signale combien de textes manquent et les réessaie lors de la prochaine exécution.
  • Placeholders: si l'IA modifie un :placeholder, cette traduction est écartée et Laravel affiche le texte original.

Limitations​

  • Seuls les fichiers JSON sont traduits (textes utilisés comme clés). Les fichiers de groupe lang/<idioma>/*.php ne sont pas envoyés.
  • Les clés dynamiques comme __($variable) ne sont pas détectées.
Gratuit

🚀 Automatisez vos traductions gratuitement​

Translate Projects est gratuit. Vous créez votre projet, connectez la clé de votre fournisseur d'IA et ne lui payez que ce que vous dépensez.

  • Sans forfaits ni carte de crédit: Toutes les fonctionnalités sont disponibles dès le premier jour.
  • Utilisez votre propre IA: Claude, OpenAI, DeepSeek ou Gemini. Votre clé est stockée chiffrée.
  • Réseau de traductions partagé: Si un texte a déjà été traduit, vous le recevez instantanément sans dépenser votre clé.
  • Panneau d'administration: Vérifiez et modifiez toutes vos traductions depuis un seul endroit.

Créer un compte gratuitement →

Support

Nous sommes là pour vous aider​

Si vous avez des questions, besoin d'aide ou souhaitez contribuer, n'hésitez pas à me contacter. Je suis à votre disposition pour vous soutenir dans tout ce dont vous avez besoin.

Soutenez le projet​

Si ce projet vous a été utile, je vous invite à m'offrir un café. Votre soutien m'aide à continuer de m'améliorer et à créer du contenu de valeur. Merci d'être là ! ☕

Buy me a coffee