clusteramaryllis / gettext
Adds localization support to laravel applications with PoEdit and Gettext
Installs: 657
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 5
Open Issues: 0
pkg:composer/clusteramaryllis/gettext
Requires
- php: >=5.5.9
- illuminate/config: 5.2.*
- illuminate/view: 5.2.*
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
Suggests
- ext-gettext: *
README
Installation
Laravel 5.2 Installation
Add the composer repository to your composer.json file:
"require": { "clusteramaryllis/gettext": "1.3.x" }
- For Laravel 5.1, checkout 1.2 branch
- For Laravel 4.2, checkout 0.3 branch
And run composer update. Once finished, register via service provider in config/app.php in the providers array:
'providers' => [ // ... Clusteramaryllis\Gettext\GettextServiceProvider::class, ]
You can also provide static syntax via facade in the aliases array:
'aliases' => [ // ... 'Gettext' => Clusteramaryllis\Gettext\Facades\Gettext::class, ]
Publish the configuration file (optional) (will create on config/gettext.php) :
php artisan vendor:publish
Command
Available commands
gettext:create => Generate new .po file
gettext:update => Update existing .po file
Available options
Check with php artisan gettext:create --help or php artisan gettext:update --help
Example
php artisan gettext:create --sources="app/Http/Controllers, resources/views" --destination="resources/locale" --locale="en_US"
This will generate .po files in resources/locale/en_US/LC_MESSAGES/messages.po & will scan any string that utilize php-gettext function on app/Http/Controllers & resources/views
Once done, you can easily translate your application using tools such as PoEdit.
How To
Simple usage
- Prepare
viewwith strings wrapped withGettextmethod or helper
<!-- resources\views\welcome.blade.php -->
{!! __('Welcome to main page') !!}
- Add your language preferences via
config/gettext.phpon languages array
languages => [
// ...,
'sv' => [
'locale' => 'sv_SE',
'encoding' => 'utf-8',
'plural_forms' => "nplurals=2; plural=(n != 1);",
]
]
- Run
php artisan gettext:create. This will generate .po file in
resources\locale\sv_SE\LC_MESSAGES\messages.po
& ready to scan translated string in app\Http\Controllers & resources\views (Default option).
-
Open the .po file with PoEdit or any similar editors. In PoEdit you need to click update to populate the table with the scanned strings. After that, you can start begin translating.
-
Simple routes test
Route::get('/', function() { Gettext::bindTextDomain('messages', base_path('resources/locale')); Gettext::textDomain('messages'); Gettext::setLocale(LC_ALL, 'sv_SE.utf-8'); return view('welcome'); });
Available methods
| Methods | Helper shortcut |
|---|---|
| Gettext::setLocale | _setlocale |
| Gettext::bindTextDomain | _bindtextdomain |
| Gettext::bindTextDomainCodeset | _bind_text_domain_codeset |
| Gettext::textDomain | _textdomain |
| Gettext::getText | __ |
| Gettext::nGetText | _n |
| Gettext::dGetText | _d |
| Gettext::dNGetText | _dn |
| Gettext::dCGetText | _dc |
| Gettext::dCNGetText | _dcn |
| Gettext::pGetText | _p |
| Gettext::dPGetText | _dp |
| Gettext::dCPGetText | _dcp |
| Gettext::nPGetText | _np |
| Gettext::dNPGetText | _dnp |
| Gettext::dCNPGetText | _dcnp |
More detailed method & their parameters can be seen here.
Acknowledgements
This package is inspired by laravel-gettext by Nicolás Daniel Palumbo for .po files creation & utilize php-gettext package by Danilo Segan.