eii/locale-generator

A Laravel CLI to extract and translate Blade file strings to JSON language files

Installs: 48

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/eii/locale-generator

1.2.0 2026-01-26 08:34 UTC

This package is auto-updated.

Last update: 2026-01-26 08:42:53 UTC


README

Locale Generator is a Laravel Artisan command that simplifies multilingual development by automatically extracting __() strings from Blade templates and generating JSON language files.
It optionally integrates with Google Cloud Translate or DeepL to provide instant translations, helping you speed up localization workflows.

Updates

v1.2.0

Added dynamic source locale support

  • The source language for translations is now configurable.
  • The package automatically uses the application’s default locale as the source language.
  • This allows seamless translation workflows for projects that do not use English as the base language.

New Configuration Option

'source_locale' => env('APP_LOCALE', 'en'),

Installation

composer require eii/locale-generator

Setup

  1. Publish Configuration:

    php artisan vendor:publish --tag=config
  2. Configure Translation Providers:

    • Google Cloud Translate:
      • Create a Google Cloud service account and download the JSON key file.
      • Place the key file in storage/app/google-credentials.json or update the path in config/locale-generator.php.
      • Add to .env:
        GOOGLE_TRANSLATE_KEY_FILE=/path/to/google-credentials.json
        GOOGLE_PROJECT_ID=your-project-id
    • DeepL:
      • Obtain a DeepL API key (free tier available).
      • Add to .env:
        DEEPL_API_KEY=your-deepl-api-key

Usage

Run the lang:extract command:

php artisan lang:extract welcome --locales=ja,es,de --translate=google
php artisan lang:extract mail.notification --locales=fr,es --translate=deepl
  • file: Blade file name (e.g., welcome, mail.notification).
  • --locales: Comma-separated list of target locales (e.g., ja,es,de).
  • --translate: Translation provider (google or deepl).

Configuration

Edit config/locale-generator.php to customize:

  • views_path: Directory for Blade files (default: resources/views).
  • google_translate.key_file: Path to Google Cloud service account JSON key.
  • google_translate.project_id: Google Cloud project ID.
  • deepl_api_key: DeepL API key.

Requirements

  • PHP 8.1+
  • Laravel 9.0, 10.0, 11.0, 12.0
  • Google Cloud Translate API (for google provider)
  • DeepL API (for deepl provider)

License

This package is open-sourced software licensed under the MIT license.