hexters/logat

Extract locale keys from source code in seconds.

Maintainers

Details

github.com/hexters/logat

Source

Issues

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/hexters/logat

1.0.0 2025-05-18 23:55 UTC

This package is auto-updated.

Last update: 2025-11-08 05:45:49 UTC


README

Logat is a Laravel package that helps you extract all translation keys from your application’s source code into JSON language files. It scans your Blade and PHP files for __('...') calls and compiles the results automatically.

Designed to simplify your localization workflow, especially when managing multi-language projects.

Installation

Install the package using:

composer require hexters/logat --dev

This package is meant for development use only and should not be required in production environments.

Configuration

If you want to customize the behavior, you can publish the config file:

php artisan vendor:publish --provider="Hexters\Logat\LogatServiceProvider"

This will publish a file to config/logat.php with the following default contents:

return [

    'default' => 'id',

    'locales' => ['en', 'ms', 'id', 'ja'],

    'sources' => [
        'resources/views',
        'app',
    ],

];

You can adjust the default locale, supported languages, and which folders to scan for translation keys.

Usage

To scan your application and generate/update translation files, run:

php artisan logat:collect

This command will:

  • Search for all __('...') keys in the specified source directories
  • Merge with any existing translation files
  • Save the output in the lang directory as individual JSON files for each language

To remove unused keys that no longer exist in your source code, run:

php artisan logat:clean

This command will:

  • Scan your application for active translation keys
  • Remove outdated keys from each language file
  • Keep your JSON files clean and relevant

Output

After running the command, you’ll get files like:

lang/
├── en.json
├── id.json
├── ja.json
└── ms.json

Each file will contain the translation keys found in your app. Any untranslated key will have an empty string as its value.

Example:

{
    "Dashboard": "Dashboard",
    "User Account": "User Account"
}

You can use AI to change the value of the result generator

License

This package is licensed under the MIT License.