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.
Install the package using:
composer require hexters/logat --devThis package is meant for development use only and should not be required in production environments.
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.
To scan your application and generate/update translation files, run:
php artisan logat:collectThis command will:
- Search for all
__('...')keys in the specified source directories - Merge with any existing translation files
- Save the output in the
langdirectory as individual JSON files for each language
To remove unused keys that no longer exist in your source code, run:
php artisan logat:cleanThis command will:
- Scan your application for active translation keys
- Remove outdated keys from each language file
- Keep your JSON files clean and relevant
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
This package is licensed under the MIT License.