Package Data | |
---|---|
Maintainer Username: | thiagocordeiro |
Maintainer Contact: | thiagoguetten@gmail.com (Thiago Cordeiro) |
Package Create Date: | 2017-09-07 |
Package Last Update: | 2023-08-06 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2025-02-03 15:00:09 |
Package Statistics | |
---|---|
Total Downloads: | 164,242 |
Monthly Downloads: | 3,131 |
Daily Downloads: | 99 |
Total Stars: | 85 |
Total Watchers: | 4 |
Total Forks: | 22 |
Total Open Issues: | 8 |
Laravel-translator scans your project resources/view/
and app/
folder to find lang(...)
and __(...)
functions, then it create keys based on first parameter value and insert into json translation files.
You just have to require the package
$ composer require thiagocordeiro/laravel-translator
This package register the provider automatically, See laravel package discover.
After composer finish it's installation, you'll be able to update your project translation keys running the following command:
$ php artisan translator:update
if for any reason artisan can't find translator:update
command, you can register the provider manually on your config/app.php
file:
return [
...
'providers' => [
...
Translator\TranslatorServiceProvider::class,
...
]
]
First you have to create your json translation files:
app/
resources/
lang/
pt.json
es.json
fr.json
Keep working as you are used to, when laravel built-in translation funcion can't find given key, it'll return itself, so if you create english keys, you don't need to create an english translation
blade:
<html>
@lang('Hello World')
{{ lang('Hello World') }}
{{ __('Hello World') }}
</html>
controllers, models, etc.:
<?php
__('Hello World');
lang('Hello World');
also you can use params on translation keys
@lang('Welcome, :name', ['Arthur Dent'])
translator:update
command will scan your code to identify new translation keys, then it'll update all json files on app/resources/lang/
folder appending this keys.
{
"Hello World": "Hola Mundo",
"Welcome, :name": "Bienvenido, :name",
"Just scanned key": ""
}
You can change the default path of views to scan and the output of the json translation files.
First, publish the configuration file.
php artisan vendor:publish --provider="Translator\TranslatorServiceProvider"
On config/laravel-translator.php
you can change the default values of views_directories
and translations_output
return [
'views_directories' => [
app_path(),
resource_path('views'),
],
'translations_output' => resource_path('lang'),
];
trans(...)
function doesn't use json files for translation, so you'd better using __(...)
or it's alias lang(...)
on php files and @lang(...)
or {{ lang(...) }}
on blade files.