Searches for multilingual phrases in a Laravel project and automatically generates language files for you. You can search for new translation keys, delete unused keys, and quickly generate new language files.
You can start the installation through the composer using the command.
composer require glebsky/laravel-lang-generator
You can also select the required version to support older versions of Laravel
- v2.0.0 - For Laravel 11+. Using PHP >8.2
- v1.1.0 - For Laravel 8 and 9. Using PHP >7.3.
composer require glebsky/laravel-lang-generator:^1.1.0
To create configuration file of this package you can use command:
php artisan vendor:publish --tag=config
It will create configuration file in app/config
with name lang-generator
file_type: is responsible for the type of the generated file. It is possible to generate both a json and a php array files. Possible values: array
, json
file_name: is responsible for the name of the generated files. By default, it is lang
.
languages: is responsible for the generated languages and accepts an array. Language folders with the specified data will be created. By default, it just en
.
This command starts searching for translation keys in the resource/views
and app
folders according to the basic settings.
Existing keys will not be removed, only new ones will be added.
php artisan lang:generate
it will create new language files with found translation keys.
By default, name of lang file is lang
In addition, the command accepts several parameters that allow you to flexibly manage the package.
php artisan lang:generate --type= --name= --langs= --sync --clear --append --path=
--type=
or -T
:
is responsible for the type of the generated file. It is possible to generate both a json and a php array files. Possible values: array
, json
.
Example: php artisan lang:generate --type=json
--name=
or -N
:
is responsible for the name of the generated files. By default, it is lang
.
Example: php artisan lang:generate --name="pagination"
--langs=
or -L
:
is responsible for the generated languages and accepts an array. Language folders with the specified data will be created. By default, it just en
.
Example: php artisan lang:generate --langs="en" --langs="es"
--sync
or -S
:
If you specify this flag, then all unused already existing translation keys will be deleted.
Example: php artisan lang:generate --sync
--clear
or -C
:
If you specify this flag, existing language files are removed and new ones are created. All existing translations will be removed.
NOTE! That NOT all language files are deleted, but only with the name specified in the settings.
Example: php artisan lang:generate --clear
--append
or -A
:
If you specify this flag, new translations found will be added at the end of the JSON file, which might be useful for automation or version control. Only usable with JSON as type.
Example: php artisan lang:generate --type=json --append
lang:generate
will update your language files by writing them completely, meaning that any comments or special styling will be removed, so I recommend you backup your files.