webnuvola/laravel-i18n
最新稳定版本:v2.2.0
Composer 安装命令:
composer require webnuvola/laravel-i18n
包简介
Laravel internationalization package
README 文档
README
This package allows you to register i18n routes for your Laravel app.
Installation
Install via composer:
composer require webnuvola/laravel-i18n
After the installation, you must publish the config file and set it up to your needs.
php artisan vendor:publish --provider="Webnuvola\Laravel\I18n\I18nServiceProvider" --tag="config"
Configuration
After publishing, the configuration will be located in config/i18n.php.
You must configure at least one region to use this package.
Example configuration:
<?php return [ /* |-------------------------------------------------------------------------- | Available regions |-------------------------------------------------------------------------- | | List of languages and countries to view your site in the format {language}-{country}. | Available languages: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes | Available countries: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 | Examples: en-us, en-gb, it-it, ... | */ 'regions' => [ 'en-us', 'en-gb', ], /* |-------------------------------------------------------------------------- | Default region |-------------------------------------------------------------------------- | | The default region that will be assigned if running from console or current | route is not i18n. If null, the first element of regions will be used | as default. | */ 'default' => null, ];
Usage
Define i18n routes in routes/web.php:
use Illuminate\Routing\Router; use Webnuvola\Laravel\I18n\Facades\I18nRoutes; I18nRoutes::group(static function (Router $router): void { Route::get('/', [HomeController::class, 'show'])->name('home'); Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show'); });
This will register the following routes (with the config file of previous step):
| Name | Url |
|---|---|
| en-us.home | /en-us |
| en-us.profile.show | /en-us/profile |
| en-gb.home | /en-gb |
| en-gb.profile.show | /en-gb/profile |
I18n functions
To set or get the current region, you can use the following methods:
use Webnuvola\Laravel\I18n\Facades\I18n; I18n::setRegion('en-us'); I18n::getRegion(); // en-us I18n::getCountry(); // us I18n::getLanguage(); // en
Helper functions
This package will extend this default Laravel helper functions by adding i18n support:
url() -> i18n_url()
I18n::setRegion('en-us'); url('page'); // /page i18n_url('page'); // /en-us/page
route() -> i18n_route()
I18n::setRegion('en-us'); route('profile.show'); // /profile i18n_route('profile.show'); // /en-us/profile // If you want a fixed region i18n url route('en-gb.profile.show'); // /en-gb/profile
redirect() -> i18n_redirect()
I18n::setRegion('en-us'); redirect('redirect-page'); // /redirect-page i18n_redirect('redirect-page'); // /en-us/redirect-page
Security
If you discover any security-related issues, please email fabio@webnuvola.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 7.07k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-01-24